Wireshark 4.5.0
The Wireshark network protocol analyzer
All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
x11-extension-implementation.h
1/* Do not modify this file. */
2/* It was automatically generated by ../../tools/process-x11-xcb.pl
3 using xcbproto version xcb-proto-1.17.0 */
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 <wsutil/ws_roundup.h>
15
16#include "x11-glx-render-enum.h"
17
18static void mesa_CallList(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19{
20 proto_tree_add_item(t, hf_x11_glx_render_CallList_list, tvb, *offsetp, 4, byte_order);
21 *offsetp += 4;
22}
23
24static void mesa_CallLists(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
25{
26 int n;
27 int type;
28 n = tvb_get_uint32(tvb, *offsetp, byte_order);
29 proto_tree_add_item(t, hf_x11_glx_render_CallLists_n, tvb, *offsetp, 4, byte_order);
30 *offsetp += 4;
31 type = tvb_get_uint32(tvb, *offsetp, byte_order);
32 proto_tree_add_item(t, hf_x11_glx_render_CallLists_type, tvb, *offsetp, 4, byte_order);
33 *offsetp += 4;
34 switch(type) {
35 case 0x1400: /* BYTE */
36 listOfByte(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists_signed, n, byte_order);
37 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - n), ENC_NA);
38 *offsetp += (length - 8 - n);
39 break;
40 case 0x1401: /* UNSIGNED_BYTE */
41 listOfByte(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists_unsigned, n, byte_order);
42 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - n), ENC_NA);
43 *offsetp += (length - 8 - n);
44 break;
45 case 0x1402: /* SHORT */
46 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_int16, n, byte_order);
47 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - 2 * n), ENC_NA);
48 *offsetp += (length - 8 - 2 * n);
49 break;
50 case 0x1403: /* UNSIGNED_SHORT */
51 listOfCard16(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_card16, n, byte_order);
52 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - 2 * n), ENC_NA);
53 *offsetp += (length - 8 - 2 * n);
54 break;
55 case 0x1404: /* INT */
56 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_int32, n, byte_order);
57 break;
58 case 0x1405: /* UNSIGNED_INT */
59 listOfCard32(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_card32, n, byte_order);
60 break;
61 case 0x1406: /* FLOAT */
62 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_float, n, byte_order);
63 break;
64 case 0x1407: /* 2_BYTES */
65 listOfCard16(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_card16, n, ENC_BIG_ENDIAN);
66 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - 2 * n), ENC_NA);
67 *offsetp += (length - 8 - 2 * n);
68 break;
69 case 0x1408: /* 3_BYTES */
70 UNDECODED(3 * n);
71 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - 3 * n), ENC_NA);
72 *offsetp += (length - 8 - 3 * n);
73 break;
74 case 0x1409: /* 4_BYTES */
75 listOfCard32(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, hf_x11_glx_render_CallLists_lists_item_card32, n, ENC_BIG_ENDIAN);
76 break;
77 case 0x140B: /* HALF_FLOAT */
78 UNDECODED(2 * n);
79 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, (length - 8 - 2 * n), ENC_NA);
80 *offsetp += (length - 8 - 2 * n);
81 break;
82 default: /* Unknown */
83 UNDECODED(length - 8);
84 break;
85 }
86}
87
88static void mesa_ListBase(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
89{
90 proto_tree_add_item(t, hf_x11_glx_render_ListBase_base, tvb, *offsetp, 4, byte_order);
91 *offsetp += 4;
92}
93
94static void mesa_Begin(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
95{
96 proto_tree_add_item(t, hf_x11_glx_render_Begin_mode, tvb, *offsetp, 4, byte_order);
97 *offsetp += 4;
98}
99
100static void mesa_Bitmap(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
101{
102 proto_tree_add_item(t, hf_x11_glx_render_Bitmap_swapbytes, tvb, *offsetp, 1, byte_order);
103 *offsetp += 1;
104 proto_tree_add_item(t, hf_x11_glx_render_Bitmap_lsbfirst, tvb, *offsetp, 1, byte_order);
105 *offsetp += 1;
106 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
107 *offsetp += 2;
108 proto_tree_add_item(t, hf_x11_glx_render_Bitmap_rowlength, tvb, *offsetp, 4, byte_order);
109 *offsetp += 4;
110 proto_tree_add_item(t, hf_x11_glx_render_Bitmap_skiprows, tvb, *offsetp, 4, byte_order);
111 *offsetp += 4;
112 proto_tree_add_item(t, hf_x11_glx_render_Bitmap_skippixels, tvb, *offsetp, 4, byte_order);
113 *offsetp += 4;
114 proto_tree_add_item(t, hf_x11_glx_render_Bitmap_alignment, tvb, *offsetp, 4, byte_order);
115 *offsetp += 4;
116 proto_tree_add_item(t, hf_x11_glx_render_Bitmap_width, tvb, *offsetp, 4, byte_order);
117 *offsetp += 4;
118 proto_tree_add_item(t, hf_x11_glx_render_Bitmap_height, tvb, *offsetp, 4, byte_order);
119 *offsetp += 4;
120 proto_tree_add_item(t, hf_x11_glx_render_Bitmap_xorig, tvb, *offsetp, 4, byte_order);
121 *offsetp += 4;
122 proto_tree_add_item(t, hf_x11_glx_render_Bitmap_yorig, tvb, *offsetp, 4, byte_order);
123 *offsetp += 4;
124 proto_tree_add_item(t, hf_x11_glx_render_Bitmap_xmove, tvb, *offsetp, 4, byte_order);
125 *offsetp += 4;
126 proto_tree_add_item(t, hf_x11_glx_render_Bitmap_ymove, tvb, *offsetp, 4, byte_order);
127 *offsetp += 4;
128 listOfByte(tvb, offsetp, t, hf_x11_glx_render_Bitmap_bitmap, (length - 44) / 1, byte_order);
129}
130
131static void mesa_Color3bv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
132{
133 listOfByte(tvb, offsetp, t, hf_x11_glx_render_Color3bv_v, 3, byte_order);
134}
135
136static void mesa_Color3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
137{
138 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Color3dv_v, hf_x11_glx_render_Color3dv_v_item, 3, byte_order);
139}
140
141static void mesa_Color3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
142{
143 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Color3fv_v, hf_x11_glx_render_Color3fv_v_item, 3, byte_order);
144}
145
146static void mesa_Color3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
147{
148 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Color3iv_v, hf_x11_glx_render_Color3iv_v_item, 3, byte_order);
149}
150
151static void mesa_Color3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
152{
153 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Color3sv_v, hf_x11_glx_render_Color3sv_v_item, 3, byte_order);
154}
155
156static void mesa_Color3ubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
157{
158 listOfByte(tvb, offsetp, t, hf_x11_glx_render_Color3ubv_v, 3, byte_order);
159}
160
161static void mesa_Color3uiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
162{
163 listOfCard32(tvb, offsetp, t, hf_x11_glx_render_Color3uiv_v, hf_x11_glx_render_Color3uiv_v_item, 3, byte_order);
164}
165
166static void mesa_Color3usv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
167{
168 listOfCard16(tvb, offsetp, t, hf_x11_glx_render_Color3usv_v, hf_x11_glx_render_Color3usv_v_item, 3, byte_order);
169}
170
171static void mesa_Color4bv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
172{
173 listOfByte(tvb, offsetp, t, hf_x11_glx_render_Color4bv_v, 4, byte_order);
174}
175
176static void mesa_Color4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
177{
178 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Color4dv_v, hf_x11_glx_render_Color4dv_v_item, 4, byte_order);
179}
180
181static void mesa_Color4fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
182{
183 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Color4fv_v, hf_x11_glx_render_Color4fv_v_item, 4, byte_order);
184}
185
186static void mesa_Color4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
187{
188 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Color4iv_v, hf_x11_glx_render_Color4iv_v_item, 4, byte_order);
189}
190
191static void mesa_Color4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
192{
193 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Color4sv_v, hf_x11_glx_render_Color4sv_v_item, 4, byte_order);
194}
195
196static void mesa_Color4ubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
197{
198 listOfByte(tvb, offsetp, t, hf_x11_glx_render_Color4ubv_v, 4, byte_order);
199}
200
201static void mesa_Color4uiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
202{
203 listOfCard32(tvb, offsetp, t, hf_x11_glx_render_Color4uiv_v, hf_x11_glx_render_Color4uiv_v_item, 4, byte_order);
204}
205
206static void mesa_Color4usv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
207{
208 listOfCard16(tvb, offsetp, t, hf_x11_glx_render_Color4usv_v, hf_x11_glx_render_Color4usv_v_item, 4, byte_order);
209}
210
211static void mesa_EdgeFlagv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
212{
213 listOfByte(tvb, offsetp, t, hf_x11_glx_render_EdgeFlagv_flag, 1, byte_order);
214}
215
216static void mesa_End(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
217{
218}
219
220static void mesa_Indexdv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
221{
222 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Indexdv_c, hf_x11_glx_render_Indexdv_c_item, 1, byte_order);
223}
224
225static void mesa_Indexfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
226{
227 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Indexfv_c, hf_x11_glx_render_Indexfv_c_item, 1, byte_order);
228}
229
230static void mesa_Indexiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
231{
232 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Indexiv_c, hf_x11_glx_render_Indexiv_c_item, 1, byte_order);
233}
234
235static void mesa_Indexsv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
236{
237 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Indexsv_c, hf_x11_glx_render_Indexsv_c_item, 1, byte_order);
238}
239
240static void mesa_Normal3bv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
241{
242 listOfByte(tvb, offsetp, t, hf_x11_glx_render_Normal3bv_v, 3, byte_order);
243}
244
245static void mesa_Normal3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
246{
247 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Normal3dv_v, hf_x11_glx_render_Normal3dv_v_item, 3, byte_order);
248}
249
250static void mesa_Normal3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
251{
252 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Normal3fv_v, hf_x11_glx_render_Normal3fv_v_item, 3, byte_order);
253}
254
255static void mesa_Normal3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
256{
257 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Normal3iv_v, hf_x11_glx_render_Normal3iv_v_item, 3, byte_order);
258}
259
260static void mesa_Normal3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
261{
262 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Normal3sv_v, hf_x11_glx_render_Normal3sv_v_item, 3, byte_order);
263}
264
265static void mesa_RasterPos2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
266{
267 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_RasterPos2dv_v, hf_x11_glx_render_RasterPos2dv_v_item, 2, byte_order);
268}
269
270static void mesa_RasterPos2fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
271{
272 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_RasterPos2fv_v, hf_x11_glx_render_RasterPos2fv_v_item, 2, byte_order);
273}
274
275static void mesa_RasterPos2iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
276{
277 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_RasterPos2iv_v, hf_x11_glx_render_RasterPos2iv_v_item, 2, byte_order);
278}
279
280static void mesa_RasterPos2sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
281{
282 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_RasterPos2sv_v, hf_x11_glx_render_RasterPos2sv_v_item, 2, byte_order);
283}
284
285static void mesa_RasterPos3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
286{
287 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_RasterPos3dv_v, hf_x11_glx_render_RasterPos3dv_v_item, 3, byte_order);
288}
289
290static void mesa_RasterPos3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
291{
292 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_RasterPos3fv_v, hf_x11_glx_render_RasterPos3fv_v_item, 3, byte_order);
293}
294
295static void mesa_RasterPos3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
296{
297 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_RasterPos3iv_v, hf_x11_glx_render_RasterPos3iv_v_item, 3, byte_order);
298}
299
300static void mesa_RasterPos3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
301{
302 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_RasterPos3sv_v, hf_x11_glx_render_RasterPos3sv_v_item, 3, byte_order);
303}
304
305static void mesa_RasterPos4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
306{
307 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_RasterPos4dv_v, hf_x11_glx_render_RasterPos4dv_v_item, 4, byte_order);
308}
309
310static void mesa_RasterPos4fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
311{
312 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_RasterPos4fv_v, hf_x11_glx_render_RasterPos4fv_v_item, 4, byte_order);
313}
314
315static void mesa_RasterPos4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
316{
317 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_RasterPos4iv_v, hf_x11_glx_render_RasterPos4iv_v_item, 4, byte_order);
318}
319
320static void mesa_RasterPos4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
321{
322 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_RasterPos4sv_v, hf_x11_glx_render_RasterPos4sv_v_item, 4, byte_order);
323}
324
325static void mesa_Rectdv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
326{
327 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Rectdv_v1, hf_x11_glx_render_Rectdv_v1_item, 2, byte_order);
328 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Rectdv_v2, hf_x11_glx_render_Rectdv_v2_item, 2, byte_order);
329}
330
331static void mesa_Rectfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
332{
333 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Rectfv_v1, hf_x11_glx_render_Rectfv_v1_item, 2, byte_order);
334 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Rectfv_v2, hf_x11_glx_render_Rectfv_v2_item, 2, byte_order);
335}
336
337static void mesa_Rectiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
338{
339 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Rectiv_v1, hf_x11_glx_render_Rectiv_v1_item, 2, byte_order);
340 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Rectiv_v2, hf_x11_glx_render_Rectiv_v2_item, 2, byte_order);
341}
342
343static void mesa_Rectsv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
344{
345 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Rectsv_v1, hf_x11_glx_render_Rectsv_v1_item, 2, byte_order);
346 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Rectsv_v2, hf_x11_glx_render_Rectsv_v2_item, 2, byte_order);
347}
348
349static void mesa_TexCoord1dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
350{
351 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexCoord1dv_v, hf_x11_glx_render_TexCoord1dv_v_item, 1, byte_order);
352}
353
354static void mesa_TexCoord1fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
355{
356 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexCoord1fv_v, hf_x11_glx_render_TexCoord1fv_v_item, 1, byte_order);
357}
358
359static void mesa_TexCoord1iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
360{
361 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexCoord1iv_v, hf_x11_glx_render_TexCoord1iv_v_item, 1, byte_order);
362}
363
364static void mesa_TexCoord1sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
365{
366 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_TexCoord1sv_v, hf_x11_glx_render_TexCoord1sv_v_item, 1, byte_order);
367}
368
369static void mesa_TexCoord2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
370{
371 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexCoord2dv_v, hf_x11_glx_render_TexCoord2dv_v_item, 2, byte_order);
372}
373
374static void mesa_TexCoord2fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
375{
376 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexCoord2fv_v, hf_x11_glx_render_TexCoord2fv_v_item, 2, byte_order);
377}
378
379static void mesa_TexCoord2iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
380{
381 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexCoord2iv_v, hf_x11_glx_render_TexCoord2iv_v_item, 2, byte_order);
382}
383
384static void mesa_TexCoord2sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
385{
386 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_TexCoord2sv_v, hf_x11_glx_render_TexCoord2sv_v_item, 2, byte_order);
387}
388
389static void mesa_TexCoord3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
390{
391 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexCoord3dv_v, hf_x11_glx_render_TexCoord3dv_v_item, 3, byte_order);
392}
393
394static void mesa_TexCoord3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
395{
396 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexCoord3fv_v, hf_x11_glx_render_TexCoord3fv_v_item, 3, byte_order);
397}
398
399static void mesa_TexCoord3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
400{
401 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexCoord3iv_v, hf_x11_glx_render_TexCoord3iv_v_item, 3, byte_order);
402}
403
404static void mesa_TexCoord3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
405{
406 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_TexCoord3sv_v, hf_x11_glx_render_TexCoord3sv_v_item, 3, byte_order);
407}
408
409static void mesa_TexCoord4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
410{
411 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexCoord4dv_v, hf_x11_glx_render_TexCoord4dv_v_item, 4, byte_order);
412}
413
414static void mesa_TexCoord4fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
415{
416 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexCoord4fv_v, hf_x11_glx_render_TexCoord4fv_v_item, 4, byte_order);
417}
418
419static void mesa_TexCoord4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
420{
421 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexCoord4iv_v, hf_x11_glx_render_TexCoord4iv_v_item, 4, byte_order);
422}
423
424static void mesa_TexCoord4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
425{
426 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_TexCoord4sv_v, hf_x11_glx_render_TexCoord4sv_v_item, 4, byte_order);
427}
428
429static void mesa_Vertex2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
430{
431 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Vertex2dv_v, hf_x11_glx_render_Vertex2dv_v_item, 2, byte_order);
432}
433
434static void mesa_Vertex2fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
435{
436 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Vertex2fv_v, hf_x11_glx_render_Vertex2fv_v_item, 2, byte_order);
437}
438
439static void mesa_Vertex2iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
440{
441 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Vertex2iv_v, hf_x11_glx_render_Vertex2iv_v_item, 2, byte_order);
442}
443
444static void mesa_Vertex2sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
445{
446 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Vertex2sv_v, hf_x11_glx_render_Vertex2sv_v_item, 2, byte_order);
447}
448
449static void mesa_Vertex3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
450{
451 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Vertex3dv_v, hf_x11_glx_render_Vertex3dv_v_item, 3, byte_order);
452}
453
454static void mesa_Vertex3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
455{
456 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Vertex3fv_v, hf_x11_glx_render_Vertex3fv_v_item, 3, byte_order);
457}
458
459static void mesa_Vertex3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
460{
461 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Vertex3iv_v, hf_x11_glx_render_Vertex3iv_v_item, 3, byte_order);
462}
463
464static void mesa_Vertex3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
465{
466 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Vertex3sv_v, hf_x11_glx_render_Vertex3sv_v_item, 3, byte_order);
467}
468
469static void mesa_Vertex4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
470{
471 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Vertex4dv_v, hf_x11_glx_render_Vertex4dv_v_item, 4, byte_order);
472}
473
474static void mesa_Vertex4fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
475{
476 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Vertex4fv_v, hf_x11_glx_render_Vertex4fv_v_item, 4, byte_order);
477}
478
479static void mesa_Vertex4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
480{
481 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Vertex4iv_v, hf_x11_glx_render_Vertex4iv_v_item, 4, byte_order);
482}
483
484static void mesa_Vertex4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
485{
486 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Vertex4sv_v, hf_x11_glx_render_Vertex4sv_v_item, 4, byte_order);
487}
488
489static void mesa_ClipPlane(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
490{
491 proto_tree_add_item(t, hf_x11_glx_render_ClipPlane_plane, tvb, *offsetp, 4, byte_order);
492 *offsetp += 4;
493 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ClipPlane_equation, hf_x11_glx_render_ClipPlane_equation_item, 4, byte_order);
494}
495
496static void mesa_ColorMaterial(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
497{
498 proto_tree_add_item(t, hf_x11_glx_render_ColorMaterial_face, tvb, *offsetp, 4, byte_order);
499 *offsetp += 4;
500 proto_tree_add_item(t, hf_x11_glx_render_ColorMaterial_mode, tvb, *offsetp, 4, byte_order);
501 *offsetp += 4;
502}
503
504static void mesa_CullFace(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
505{
506 proto_tree_add_item(t, hf_x11_glx_render_CullFace_mode, tvb, *offsetp, 4, byte_order);
507 *offsetp += 4;
508}
509
510static void mesa_Fogf(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
511{
512 proto_tree_add_item(t, hf_x11_glx_render_Fogf_pname, tvb, *offsetp, 4, byte_order);
513 *offsetp += 4;
514 proto_tree_add_item(t, hf_x11_glx_render_Fogf_param, tvb, *offsetp, 4, byte_order);
515 *offsetp += 4;
516}
517
518static void mesa_Fogfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
519{
520 proto_tree_add_item(t, hf_x11_glx_render_Fogfv_pname, tvb, *offsetp, 4, byte_order);
521 *offsetp += 4;
522 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Fogfv_params, hf_x11_glx_render_Fogfv_params_item, (length - 4) / 4, byte_order);
523}
524
525static void mesa_Fogi(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
526{
527 proto_tree_add_item(t, hf_x11_glx_render_Fogi_pname, tvb, *offsetp, 4, byte_order);
528 *offsetp += 4;
529 proto_tree_add_item(t, hf_x11_glx_render_Fogi_param, tvb, *offsetp, 4, byte_order);
530 *offsetp += 4;
531}
532
533static void mesa_Fogiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
534{
535 proto_tree_add_item(t, hf_x11_glx_render_Fogiv_pname, tvb, *offsetp, 4, byte_order);
536 *offsetp += 4;
537 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Fogiv_params, hf_x11_glx_render_Fogiv_params_item, (length - 4) / 4, byte_order);
538}
539
540static void mesa_FrontFace(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
541{
542 proto_tree_add_item(t, hf_x11_glx_render_FrontFace_mode, tvb, *offsetp, 4, byte_order);
543 *offsetp += 4;
544}
545
546static void mesa_Hint(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
547{
548 proto_tree_add_item(t, hf_x11_glx_render_Hint_target, tvb, *offsetp, 4, byte_order);
549 *offsetp += 4;
550 proto_tree_add_item(t, hf_x11_glx_render_Hint_mode, tvb, *offsetp, 4, byte_order);
551 *offsetp += 4;
552}
553
554static void mesa_Lightf(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
555{
556 proto_tree_add_item(t, hf_x11_glx_render_Lightf_light, tvb, *offsetp, 4, byte_order);
557 *offsetp += 4;
558 proto_tree_add_item(t, hf_x11_glx_render_Lightf_pname, tvb, *offsetp, 4, byte_order);
559 *offsetp += 4;
560 proto_tree_add_item(t, hf_x11_glx_render_Lightf_param, tvb, *offsetp, 4, byte_order);
561 *offsetp += 4;
562}
563
564static void mesa_Lightfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
565{
566 proto_tree_add_item(t, hf_x11_glx_render_Lightfv_light, tvb, *offsetp, 4, byte_order);
567 *offsetp += 4;
568 proto_tree_add_item(t, hf_x11_glx_render_Lightfv_pname, tvb, *offsetp, 4, byte_order);
569 *offsetp += 4;
570 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Lightfv_params, hf_x11_glx_render_Lightfv_params_item, (length - 8) / 4, byte_order);
571}
572
573static void mesa_Lighti(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
574{
575 proto_tree_add_item(t, hf_x11_glx_render_Lighti_light, tvb, *offsetp, 4, byte_order);
576 *offsetp += 4;
577 proto_tree_add_item(t, hf_x11_glx_render_Lighti_pname, tvb, *offsetp, 4, byte_order);
578 *offsetp += 4;
579 proto_tree_add_item(t, hf_x11_glx_render_Lighti_param, tvb, *offsetp, 4, byte_order);
580 *offsetp += 4;
581}
582
583static void mesa_Lightiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
584{
585 proto_tree_add_item(t, hf_x11_glx_render_Lightiv_light, tvb, *offsetp, 4, byte_order);
586 *offsetp += 4;
587 proto_tree_add_item(t, hf_x11_glx_render_Lightiv_pname, tvb, *offsetp, 4, byte_order);
588 *offsetp += 4;
589 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Lightiv_params, hf_x11_glx_render_Lightiv_params_item, (length - 8) / 4, byte_order);
590}
591
592static void mesa_LightModelf(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
593{
594 proto_tree_add_item(t, hf_x11_glx_render_LightModelf_pname, tvb, *offsetp, 4, byte_order);
595 *offsetp += 4;
596 proto_tree_add_item(t, hf_x11_glx_render_LightModelf_param, tvb, *offsetp, 4, byte_order);
597 *offsetp += 4;
598}
599
600static void mesa_LightModelfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
601{
602 proto_tree_add_item(t, hf_x11_glx_render_LightModelfv_pname, tvb, *offsetp, 4, byte_order);
603 *offsetp += 4;
604 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_LightModelfv_params, hf_x11_glx_render_LightModelfv_params_item, (length - 4) / 4, byte_order);
605}
606
607static void mesa_LightModeli(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
608{
609 proto_tree_add_item(t, hf_x11_glx_render_LightModeli_pname, tvb, *offsetp, 4, byte_order);
610 *offsetp += 4;
611 proto_tree_add_item(t, hf_x11_glx_render_LightModeli_param, tvb, *offsetp, 4, byte_order);
612 *offsetp += 4;
613}
614
615static void mesa_LightModeliv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
616{
617 proto_tree_add_item(t, hf_x11_glx_render_LightModeliv_pname, tvb, *offsetp, 4, byte_order);
618 *offsetp += 4;
619 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_LightModeliv_params, hf_x11_glx_render_LightModeliv_params_item, (length - 4) / 4, byte_order);
620}
621
622static void mesa_LineStipple(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
623{
624 proto_tree_add_item(t, hf_x11_glx_render_LineStipple_factor, tvb, *offsetp, 4, byte_order);
625 *offsetp += 4;
626 proto_tree_add_item(t, hf_x11_glx_render_LineStipple_pattern, tvb, *offsetp, 2, byte_order);
627 *offsetp += 2;
628}
629
630static void mesa_LineWidth(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
631{
632 proto_tree_add_item(t, hf_x11_glx_render_LineWidth_width, tvb, *offsetp, 4, byte_order);
633 *offsetp += 4;
634}
635
636static void mesa_Materialf(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
637{
638 proto_tree_add_item(t, hf_x11_glx_render_Materialf_face, tvb, *offsetp, 4, byte_order);
639 *offsetp += 4;
640 proto_tree_add_item(t, hf_x11_glx_render_Materialf_pname, tvb, *offsetp, 4, byte_order);
641 *offsetp += 4;
642 proto_tree_add_item(t, hf_x11_glx_render_Materialf_param, tvb, *offsetp, 4, byte_order);
643 *offsetp += 4;
644}
645
646static void mesa_Materialfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
647{
648 proto_tree_add_item(t, hf_x11_glx_render_Materialfv_face, tvb, *offsetp, 4, byte_order);
649 *offsetp += 4;
650 proto_tree_add_item(t, hf_x11_glx_render_Materialfv_pname, tvb, *offsetp, 4, byte_order);
651 *offsetp += 4;
652 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Materialfv_params, hf_x11_glx_render_Materialfv_params_item, (length - 8) / 4, byte_order);
653}
654
655static void mesa_Materiali(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
656{
657 proto_tree_add_item(t, hf_x11_glx_render_Materiali_face, tvb, *offsetp, 4, byte_order);
658 *offsetp += 4;
659 proto_tree_add_item(t, hf_x11_glx_render_Materiali_pname, tvb, *offsetp, 4, byte_order);
660 *offsetp += 4;
661 proto_tree_add_item(t, hf_x11_glx_render_Materiali_param, tvb, *offsetp, 4, byte_order);
662 *offsetp += 4;
663}
664
665static void mesa_Materialiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
666{
667 proto_tree_add_item(t, hf_x11_glx_render_Materialiv_face, tvb, *offsetp, 4, byte_order);
668 *offsetp += 4;
669 proto_tree_add_item(t, hf_x11_glx_render_Materialiv_pname, tvb, *offsetp, 4, byte_order);
670 *offsetp += 4;
671 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Materialiv_params, hf_x11_glx_render_Materialiv_params_item, (length - 8) / 4, byte_order);
672}
673
674static void mesa_PointSize(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
675{
676 proto_tree_add_item(t, hf_x11_glx_render_PointSize_size, tvb, *offsetp, 4, byte_order);
677 *offsetp += 4;
678}
679
680static void mesa_PolygonMode(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
681{
682 proto_tree_add_item(t, hf_x11_glx_render_PolygonMode_face, tvb, *offsetp, 4, byte_order);
683 *offsetp += 4;
684 proto_tree_add_item(t, hf_x11_glx_render_PolygonMode_mode, tvb, *offsetp, 4, byte_order);
685 *offsetp += 4;
686}
687
688static void mesa_PolygonStipple(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
689{
690 proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_swapbytes, tvb, *offsetp, 1, byte_order);
691 *offsetp += 1;
692 proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_lsbfirst, tvb, *offsetp, 1, byte_order);
693 *offsetp += 1;
694 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
695 *offsetp += 2;
696 proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_rowlength, tvb, *offsetp, 4, byte_order);
697 *offsetp += 4;
698 proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_skiprows, tvb, *offsetp, 4, byte_order);
699 *offsetp += 4;
700 proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_skippixels, tvb, *offsetp, 4, byte_order);
701 *offsetp += 4;
702 proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_alignment, tvb, *offsetp, 4, byte_order);
703 *offsetp += 4;
704 listOfByte(tvb, offsetp, t, hf_x11_glx_render_PolygonStipple_mask, (length - 20) / 1, byte_order);
705}
706
707static void mesa_Scissor(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
708{
709 proto_tree_add_item(t, hf_x11_glx_render_Scissor_x, tvb, *offsetp, 4, byte_order);
710 *offsetp += 4;
711 proto_tree_add_item(t, hf_x11_glx_render_Scissor_y, tvb, *offsetp, 4, byte_order);
712 *offsetp += 4;
713 proto_tree_add_item(t, hf_x11_glx_render_Scissor_width, tvb, *offsetp, 4, byte_order);
714 *offsetp += 4;
715 proto_tree_add_item(t, hf_x11_glx_render_Scissor_height, tvb, *offsetp, 4, byte_order);
716 *offsetp += 4;
717}
718
719static void mesa_ShadeModel(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
720{
721 proto_tree_add_item(t, hf_x11_glx_render_ShadeModel_mode, tvb, *offsetp, 4, byte_order);
722 *offsetp += 4;
723}
724
725static void mesa_TexParameterf(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
726{
727 proto_tree_add_item(t, hf_x11_glx_render_TexParameterf_target, tvb, *offsetp, 4, byte_order);
728 *offsetp += 4;
729 proto_tree_add_item(t, hf_x11_glx_render_TexParameterf_pname, tvb, *offsetp, 4, byte_order);
730 *offsetp += 4;
731 proto_tree_add_item(t, hf_x11_glx_render_TexParameterf_param, tvb, *offsetp, 4, byte_order);
732 *offsetp += 4;
733}
734
735static void mesa_TexParameterfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
736{
737 proto_tree_add_item(t, hf_x11_glx_render_TexParameterfv_target, tvb, *offsetp, 4, byte_order);
738 *offsetp += 4;
739 proto_tree_add_item(t, hf_x11_glx_render_TexParameterfv_pname, tvb, *offsetp, 4, byte_order);
740 *offsetp += 4;
741 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexParameterfv_params, hf_x11_glx_render_TexParameterfv_params_item, (length - 8) / 4, byte_order);
742}
743
744static void mesa_TexParameteri(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
745{
746 proto_tree_add_item(t, hf_x11_glx_render_TexParameteri_target, tvb, *offsetp, 4, byte_order);
747 *offsetp += 4;
748 proto_tree_add_item(t, hf_x11_glx_render_TexParameteri_pname, tvb, *offsetp, 4, byte_order);
749 *offsetp += 4;
750 proto_tree_add_item(t, hf_x11_glx_render_TexParameteri_param, tvb, *offsetp, 4, byte_order);
751 *offsetp += 4;
752}
753
754static void mesa_TexParameteriv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
755{
756 proto_tree_add_item(t, hf_x11_glx_render_TexParameteriv_target, tvb, *offsetp, 4, byte_order);
757 *offsetp += 4;
758 proto_tree_add_item(t, hf_x11_glx_render_TexParameteriv_pname, tvb, *offsetp, 4, byte_order);
759 *offsetp += 4;
760 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexParameteriv_params, hf_x11_glx_render_TexParameteriv_params_item, (length - 8) / 4, byte_order);
761}
762
763static void mesa_TexImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
764{
765 proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_swapbytes, tvb, *offsetp, 1, byte_order);
766 *offsetp += 1;
767 proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_lsbfirst, tvb, *offsetp, 1, byte_order);
768 *offsetp += 1;
769 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
770 *offsetp += 2;
771 proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_rowlength, tvb, *offsetp, 4, byte_order);
772 *offsetp += 4;
773 proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_skiprows, tvb, *offsetp, 4, byte_order);
774 *offsetp += 4;
775 proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_skippixels, tvb, *offsetp, 4, byte_order);
776 *offsetp += 4;
777 proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_alignment, tvb, *offsetp, 4, byte_order);
778 *offsetp += 4;
779 proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_target, tvb, *offsetp, 4, byte_order);
780 *offsetp += 4;
781 proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_level, tvb, *offsetp, 4, byte_order);
782 *offsetp += 4;
783 proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_internalformat, tvb, *offsetp, 4, byte_order);
784 *offsetp += 4;
785 proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_width, tvb, *offsetp, 4, byte_order);
786 *offsetp += 4;
787 proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_border, tvb, *offsetp, 4, byte_order);
788 *offsetp += 4;
789 proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_format, tvb, *offsetp, 4, byte_order);
790 *offsetp += 4;
791 proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_type, tvb, *offsetp, 4, byte_order);
792 *offsetp += 4;
793 listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexImage1D_pixels, (length - 48) / 1, byte_order);
794}
795
796static void mesa_TexImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
797{
798 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_swapbytes, tvb, *offsetp, 1, byte_order);
799 *offsetp += 1;
800 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_lsbfirst, tvb, *offsetp, 1, byte_order);
801 *offsetp += 1;
802 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
803 *offsetp += 2;
804 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_rowlength, tvb, *offsetp, 4, byte_order);
805 *offsetp += 4;
806 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_skiprows, tvb, *offsetp, 4, byte_order);
807 *offsetp += 4;
808 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_skippixels, tvb, *offsetp, 4, byte_order);
809 *offsetp += 4;
810 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_alignment, tvb, *offsetp, 4, byte_order);
811 *offsetp += 4;
812 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_target, tvb, *offsetp, 4, byte_order);
813 *offsetp += 4;
814 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_level, tvb, *offsetp, 4, byte_order);
815 *offsetp += 4;
816 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_internalformat, tvb, *offsetp, 4, byte_order);
817 *offsetp += 4;
818 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_width, tvb, *offsetp, 4, byte_order);
819 *offsetp += 4;
820 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_height, tvb, *offsetp, 4, byte_order);
821 *offsetp += 4;
822 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_border, tvb, *offsetp, 4, byte_order);
823 *offsetp += 4;
824 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_format, tvb, *offsetp, 4, byte_order);
825 *offsetp += 4;
826 proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_type, tvb, *offsetp, 4, byte_order);
827 *offsetp += 4;
828 listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexImage2D_pixels, (length - 52) / 1, byte_order);
829}
830
831static void mesa_TexEnvf(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
832{
833 proto_tree_add_item(t, hf_x11_glx_render_TexEnvf_target, tvb, *offsetp, 4, byte_order);
834 *offsetp += 4;
835 proto_tree_add_item(t, hf_x11_glx_render_TexEnvf_pname, tvb, *offsetp, 4, byte_order);
836 *offsetp += 4;
837 proto_tree_add_item(t, hf_x11_glx_render_TexEnvf_param, tvb, *offsetp, 4, byte_order);
838 *offsetp += 4;
839}
840
841static void mesa_TexEnvfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
842{
843 proto_tree_add_item(t, hf_x11_glx_render_TexEnvfv_target, tvb, *offsetp, 4, byte_order);
844 *offsetp += 4;
845 proto_tree_add_item(t, hf_x11_glx_render_TexEnvfv_pname, tvb, *offsetp, 4, byte_order);
846 *offsetp += 4;
847 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexEnvfv_params, hf_x11_glx_render_TexEnvfv_params_item, (length - 8) / 4, byte_order);
848}
849
850static void mesa_TexEnvi(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
851{
852 proto_tree_add_item(t, hf_x11_glx_render_TexEnvi_target, tvb, *offsetp, 4, byte_order);
853 *offsetp += 4;
854 proto_tree_add_item(t, hf_x11_glx_render_TexEnvi_pname, tvb, *offsetp, 4, byte_order);
855 *offsetp += 4;
856 proto_tree_add_item(t, hf_x11_glx_render_TexEnvi_param, tvb, *offsetp, 4, byte_order);
857 *offsetp += 4;
858}
859
860static void mesa_TexEnviv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
861{
862 proto_tree_add_item(t, hf_x11_glx_render_TexEnviv_target, tvb, *offsetp, 4, byte_order);
863 *offsetp += 4;
864 proto_tree_add_item(t, hf_x11_glx_render_TexEnviv_pname, tvb, *offsetp, 4, byte_order);
865 *offsetp += 4;
866 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexEnviv_params, hf_x11_glx_render_TexEnviv_params_item, (length - 8) / 4, byte_order);
867}
868
869static void mesa_TexGend(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
870{
871 proto_tree_add_item(t, hf_x11_glx_render_TexGend_coord, tvb, *offsetp, 4, byte_order);
872 *offsetp += 4;
873 proto_tree_add_item(t, hf_x11_glx_render_TexGend_pname, tvb, *offsetp, 4, byte_order);
874 *offsetp += 4;
875 proto_tree_add_item(t, hf_x11_glx_render_TexGend_param, tvb, *offsetp, 8, byte_order);
876 *offsetp += 8;
877}
878
879static void mesa_TexGendv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
880{
881 proto_tree_add_item(t, hf_x11_glx_render_TexGendv_coord, tvb, *offsetp, 4, byte_order);
882 *offsetp += 4;
883 proto_tree_add_item(t, hf_x11_glx_render_TexGendv_pname, tvb, *offsetp, 4, byte_order);
884 *offsetp += 4;
885 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexGendv_params, hf_x11_glx_render_TexGendv_params_item, (length - 8) / 8, byte_order);
886}
887
888static void mesa_TexGenf(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
889{
890 proto_tree_add_item(t, hf_x11_glx_render_TexGenf_coord, tvb, *offsetp, 4, byte_order);
891 *offsetp += 4;
892 proto_tree_add_item(t, hf_x11_glx_render_TexGenf_pname, tvb, *offsetp, 4, byte_order);
893 *offsetp += 4;
894 proto_tree_add_item(t, hf_x11_glx_render_TexGenf_param, tvb, *offsetp, 4, byte_order);
895 *offsetp += 4;
896}
897
898static void mesa_TexGenfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
899{
900 proto_tree_add_item(t, hf_x11_glx_render_TexGenfv_coord, tvb, *offsetp, 4, byte_order);
901 *offsetp += 4;
902 proto_tree_add_item(t, hf_x11_glx_render_TexGenfv_pname, tvb, *offsetp, 4, byte_order);
903 *offsetp += 4;
904 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexGenfv_params, hf_x11_glx_render_TexGenfv_params_item, (length - 8) / 4, byte_order);
905}
906
907static void mesa_TexGeni(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
908{
909 proto_tree_add_item(t, hf_x11_glx_render_TexGeni_coord, tvb, *offsetp, 4, byte_order);
910 *offsetp += 4;
911 proto_tree_add_item(t, hf_x11_glx_render_TexGeni_pname, tvb, *offsetp, 4, byte_order);
912 *offsetp += 4;
913 proto_tree_add_item(t, hf_x11_glx_render_TexGeni_param, tvb, *offsetp, 4, byte_order);
914 *offsetp += 4;
915}
916
917static void mesa_TexGeniv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
918{
919 proto_tree_add_item(t, hf_x11_glx_render_TexGeniv_coord, tvb, *offsetp, 4, byte_order);
920 *offsetp += 4;
921 proto_tree_add_item(t, hf_x11_glx_render_TexGeniv_pname, tvb, *offsetp, 4, byte_order);
922 *offsetp += 4;
923 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexGeniv_params, hf_x11_glx_render_TexGeniv_params_item, (length - 8) / 4, byte_order);
924}
925
926static void mesa_InitNames(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
927{
928}
929
930static void mesa_LoadName(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
931{
932 proto_tree_add_item(t, hf_x11_glx_render_LoadName_name, tvb, *offsetp, 4, byte_order);
933 *offsetp += 4;
934}
935
936static void mesa_PassThrough(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
937{
938 proto_tree_add_item(t, hf_x11_glx_render_PassThrough_token, tvb, *offsetp, 4, byte_order);
939 *offsetp += 4;
940}
941
942static void mesa_PopName(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
943{
944}
945
946static void mesa_PushName(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
947{
948 proto_tree_add_item(t, hf_x11_glx_render_PushName_name, tvb, *offsetp, 4, byte_order);
949 *offsetp += 4;
950}
951
952static void mesa_DrawBuffer(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
953{
954 proto_tree_add_item(t, hf_x11_glx_render_DrawBuffer_mode, tvb, *offsetp, 4, byte_order);
955 *offsetp += 4;
956}
957
958static void mesa_Clear(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
959{
960 proto_tree_add_item(t, hf_x11_glx_render_Clear_mask, tvb, *offsetp, 4, byte_order);
961 *offsetp += 4;
962}
963
964static void mesa_ClearAccum(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
965{
966 proto_tree_add_item(t, hf_x11_glx_render_ClearAccum_red, tvb, *offsetp, 4, byte_order);
967 *offsetp += 4;
968 proto_tree_add_item(t, hf_x11_glx_render_ClearAccum_green, tvb, *offsetp, 4, byte_order);
969 *offsetp += 4;
970 proto_tree_add_item(t, hf_x11_glx_render_ClearAccum_blue, tvb, *offsetp, 4, byte_order);
971 *offsetp += 4;
972 proto_tree_add_item(t, hf_x11_glx_render_ClearAccum_alpha, tvb, *offsetp, 4, byte_order);
973 *offsetp += 4;
974}
975
976static void mesa_ClearIndex(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
977{
978 proto_tree_add_item(t, hf_x11_glx_render_ClearIndex_c, tvb, *offsetp, 4, byte_order);
979 *offsetp += 4;
980}
981
982static void mesa_ClearColor(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
983{
984 proto_tree_add_item(t, hf_x11_glx_render_ClearColor_red, tvb, *offsetp, 4, byte_order);
985 *offsetp += 4;
986 proto_tree_add_item(t, hf_x11_glx_render_ClearColor_green, tvb, *offsetp, 4, byte_order);
987 *offsetp += 4;
988 proto_tree_add_item(t, hf_x11_glx_render_ClearColor_blue, tvb, *offsetp, 4, byte_order);
989 *offsetp += 4;
990 proto_tree_add_item(t, hf_x11_glx_render_ClearColor_alpha, tvb, *offsetp, 4, byte_order);
991 *offsetp += 4;
992}
993
994static void mesa_ClearStencil(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
995{
996 proto_tree_add_item(t, hf_x11_glx_render_ClearStencil_s, tvb, *offsetp, 4, byte_order);
997 *offsetp += 4;
998}
999
1000static void mesa_ClearDepth(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1001{
1002 proto_tree_add_item(t, hf_x11_glx_render_ClearDepth_depth, tvb, *offsetp, 8, byte_order);
1003 *offsetp += 8;
1004}
1005
1006static void mesa_StencilMask(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1007{
1008 proto_tree_add_item(t, hf_x11_glx_render_StencilMask_mask, tvb, *offsetp, 4, byte_order);
1009 *offsetp += 4;
1010}
1011
1012static void mesa_ColorMask(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1013{
1014 proto_tree_add_item(t, hf_x11_glx_render_ColorMask_red, tvb, *offsetp, 1, byte_order);
1015 *offsetp += 1;
1016 proto_tree_add_item(t, hf_x11_glx_render_ColorMask_green, tvb, *offsetp, 1, byte_order);
1017 *offsetp += 1;
1018 proto_tree_add_item(t, hf_x11_glx_render_ColorMask_blue, tvb, *offsetp, 1, byte_order);
1019 *offsetp += 1;
1020 proto_tree_add_item(t, hf_x11_glx_render_ColorMask_alpha, tvb, *offsetp, 1, byte_order);
1021 *offsetp += 1;
1022}
1023
1024static void mesa_DepthMask(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1025{
1026 proto_tree_add_item(t, hf_x11_glx_render_DepthMask_flag, tvb, *offsetp, 1, byte_order);
1027 *offsetp += 1;
1028}
1029
1030static void mesa_IndexMask(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1031{
1032 proto_tree_add_item(t, hf_x11_glx_render_IndexMask_mask, tvb, *offsetp, 4, byte_order);
1033 *offsetp += 4;
1034}
1035
1036static void mesa_Accum(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1037{
1038 proto_tree_add_item(t, hf_x11_glx_render_Accum_op, tvb, *offsetp, 4, byte_order);
1039 *offsetp += 4;
1040 proto_tree_add_item(t, hf_x11_glx_render_Accum_value, tvb, *offsetp, 4, byte_order);
1041 *offsetp += 4;
1042}
1043
1044static void mesa_Disable(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1045{
1046 proto_tree_add_item(t, hf_x11_glx_render_Disable_cap, tvb, *offsetp, 4, byte_order);
1047 *offsetp += 4;
1048}
1049
1050static void mesa_Enable(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1051{
1052 proto_tree_add_item(t, hf_x11_glx_render_Enable_cap, tvb, *offsetp, 4, byte_order);
1053 *offsetp += 4;
1054}
1055
1056static void mesa_PopAttrib(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
1057{
1058}
1059
1060static void mesa_PushAttrib(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1061{
1062 proto_tree_add_item(t, hf_x11_glx_render_PushAttrib_mask, tvb, *offsetp, 4, byte_order);
1063 *offsetp += 4;
1064}
1065
1066static void mesa_Map1d(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1067{
1068 proto_tree_add_item(t, hf_x11_glx_render_Map1d_target, tvb, *offsetp, 4, byte_order);
1069 *offsetp += 4;
1070 proto_tree_add_item(t, hf_x11_glx_render_Map1d_u1, tvb, *offsetp, 8, byte_order);
1071 *offsetp += 8;
1072 proto_tree_add_item(t, hf_x11_glx_render_Map1d_u2, tvb, *offsetp, 8, byte_order);
1073 *offsetp += 8;
1074 proto_tree_add_item(t, hf_x11_glx_render_Map1d_stride, tvb, *offsetp, 4, byte_order);
1075 *offsetp += 4;
1076 proto_tree_add_item(t, hf_x11_glx_render_Map1d_order, tvb, *offsetp, 4, byte_order);
1077 *offsetp += 4;
1078 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Map1d_points, hf_x11_glx_render_Map1d_points_item, (length - 28) / 8, byte_order);
1079}
1080
1081static void mesa_Map1f(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1082{
1083 proto_tree_add_item(t, hf_x11_glx_render_Map1f_target, tvb, *offsetp, 4, byte_order);
1084 *offsetp += 4;
1085 proto_tree_add_item(t, hf_x11_glx_render_Map1f_u1, tvb, *offsetp, 4, byte_order);
1086 *offsetp += 4;
1087 proto_tree_add_item(t, hf_x11_glx_render_Map1f_u2, tvb, *offsetp, 4, byte_order);
1088 *offsetp += 4;
1089 proto_tree_add_item(t, hf_x11_glx_render_Map1f_stride, tvb, *offsetp, 4, byte_order);
1090 *offsetp += 4;
1091 proto_tree_add_item(t, hf_x11_glx_render_Map1f_order, tvb, *offsetp, 4, byte_order);
1092 *offsetp += 4;
1093 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Map1f_points, hf_x11_glx_render_Map1f_points_item, (length - 20) / 4, byte_order);
1094}
1095
1096static void mesa_Map2d(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1097{
1098 proto_tree_add_item(t, hf_x11_glx_render_Map2d_target, tvb, *offsetp, 4, byte_order);
1099 *offsetp += 4;
1100 proto_tree_add_item(t, hf_x11_glx_render_Map2d_u1, tvb, *offsetp, 8, byte_order);
1101 *offsetp += 8;
1102 proto_tree_add_item(t, hf_x11_glx_render_Map2d_u2, tvb, *offsetp, 8, byte_order);
1103 *offsetp += 8;
1104 proto_tree_add_item(t, hf_x11_glx_render_Map2d_ustride, tvb, *offsetp, 4, byte_order);
1105 *offsetp += 4;
1106 proto_tree_add_item(t, hf_x11_glx_render_Map2d_uorder, tvb, *offsetp, 4, byte_order);
1107 *offsetp += 4;
1108 proto_tree_add_item(t, hf_x11_glx_render_Map2d_v1, tvb, *offsetp, 8, byte_order);
1109 *offsetp += 8;
1110 proto_tree_add_item(t, hf_x11_glx_render_Map2d_v2, tvb, *offsetp, 8, byte_order);
1111 *offsetp += 8;
1112 proto_tree_add_item(t, hf_x11_glx_render_Map2d_vstride, tvb, *offsetp, 4, byte_order);
1113 *offsetp += 4;
1114 proto_tree_add_item(t, hf_x11_glx_render_Map2d_vorder, tvb, *offsetp, 4, byte_order);
1115 *offsetp += 4;
1116 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Map2d_points, hf_x11_glx_render_Map2d_points_item, (length - 52) / 8, byte_order);
1117}
1118
1119static void mesa_Map2f(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1120{
1121 proto_tree_add_item(t, hf_x11_glx_render_Map2f_target, tvb, *offsetp, 4, byte_order);
1122 *offsetp += 4;
1123 proto_tree_add_item(t, hf_x11_glx_render_Map2f_u1, tvb, *offsetp, 4, byte_order);
1124 *offsetp += 4;
1125 proto_tree_add_item(t, hf_x11_glx_render_Map2f_u2, tvb, *offsetp, 4, byte_order);
1126 *offsetp += 4;
1127 proto_tree_add_item(t, hf_x11_glx_render_Map2f_ustride, tvb, *offsetp, 4, byte_order);
1128 *offsetp += 4;
1129 proto_tree_add_item(t, hf_x11_glx_render_Map2f_uorder, tvb, *offsetp, 4, byte_order);
1130 *offsetp += 4;
1131 proto_tree_add_item(t, hf_x11_glx_render_Map2f_v1, tvb, *offsetp, 4, byte_order);
1132 *offsetp += 4;
1133 proto_tree_add_item(t, hf_x11_glx_render_Map2f_v2, tvb, *offsetp, 4, byte_order);
1134 *offsetp += 4;
1135 proto_tree_add_item(t, hf_x11_glx_render_Map2f_vstride, tvb, *offsetp, 4, byte_order);
1136 *offsetp += 4;
1137 proto_tree_add_item(t, hf_x11_glx_render_Map2f_vorder, tvb, *offsetp, 4, byte_order);
1138 *offsetp += 4;
1139 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Map2f_points, hf_x11_glx_render_Map2f_points_item, (length - 36) / 4, byte_order);
1140}
1141
1142static void mesa_MapGrid1d(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1143{
1144 proto_tree_add_item(t, hf_x11_glx_render_MapGrid1d_un, tvb, *offsetp, 4, byte_order);
1145 *offsetp += 4;
1146 proto_tree_add_item(t, hf_x11_glx_render_MapGrid1d_u1, tvb, *offsetp, 8, byte_order);
1147 *offsetp += 8;
1148 proto_tree_add_item(t, hf_x11_glx_render_MapGrid1d_u2, tvb, *offsetp, 8, byte_order);
1149 *offsetp += 8;
1150}
1151
1152static void mesa_MapGrid1f(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1153{
1154 proto_tree_add_item(t, hf_x11_glx_render_MapGrid1f_un, tvb, *offsetp, 4, byte_order);
1155 *offsetp += 4;
1156 proto_tree_add_item(t, hf_x11_glx_render_MapGrid1f_u1, tvb, *offsetp, 4, byte_order);
1157 *offsetp += 4;
1158 proto_tree_add_item(t, hf_x11_glx_render_MapGrid1f_u2, tvb, *offsetp, 4, byte_order);
1159 *offsetp += 4;
1160}
1161
1162static void mesa_MapGrid2d(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1163{
1164 proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_un, tvb, *offsetp, 4, byte_order);
1165 *offsetp += 4;
1166 proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_u1, tvb, *offsetp, 8, byte_order);
1167 *offsetp += 8;
1168 proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_u2, tvb, *offsetp, 8, byte_order);
1169 *offsetp += 8;
1170 proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_vn, tvb, *offsetp, 4, byte_order);
1171 *offsetp += 4;
1172 proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_v1, tvb, *offsetp, 8, byte_order);
1173 *offsetp += 8;
1174 proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_v2, tvb, *offsetp, 8, byte_order);
1175 *offsetp += 8;
1176}
1177
1178static void mesa_MapGrid2f(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1179{
1180 proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_un, tvb, *offsetp, 4, byte_order);
1181 *offsetp += 4;
1182 proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_u1, tvb, *offsetp, 4, byte_order);
1183 *offsetp += 4;
1184 proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_u2, tvb, *offsetp, 4, byte_order);
1185 *offsetp += 4;
1186 proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_vn, tvb, *offsetp, 4, byte_order);
1187 *offsetp += 4;
1188 proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_v1, tvb, *offsetp, 4, byte_order);
1189 *offsetp += 4;
1190 proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_v2, tvb, *offsetp, 4, byte_order);
1191 *offsetp += 4;
1192}
1193
1194static void mesa_EvalCoord1dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1195{
1196 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_EvalCoord1dv_u, hf_x11_glx_render_EvalCoord1dv_u_item, 1, byte_order);
1197}
1198
1199static void mesa_EvalCoord1fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1200{
1201 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_EvalCoord1fv_u, hf_x11_glx_render_EvalCoord1fv_u_item, 1, byte_order);
1202}
1203
1204static void mesa_EvalCoord2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1205{
1206 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_EvalCoord2dv_u, hf_x11_glx_render_EvalCoord2dv_u_item, 2, byte_order);
1207}
1208
1209static void mesa_EvalCoord2fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1210{
1211 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_EvalCoord2fv_u, hf_x11_glx_render_EvalCoord2fv_u_item, 2, byte_order);
1212}
1213
1214static void mesa_EvalMesh1(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1215{
1216 proto_tree_add_item(t, hf_x11_glx_render_EvalMesh1_mode, tvb, *offsetp, 4, byte_order);
1217 *offsetp += 4;
1218 proto_tree_add_item(t, hf_x11_glx_render_EvalMesh1_i1, tvb, *offsetp, 4, byte_order);
1219 *offsetp += 4;
1220 proto_tree_add_item(t, hf_x11_glx_render_EvalMesh1_i2, tvb, *offsetp, 4, byte_order);
1221 *offsetp += 4;
1222}
1223
1224static void mesa_EvalPoint1(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1225{
1226 proto_tree_add_item(t, hf_x11_glx_render_EvalPoint1_i, tvb, *offsetp, 4, byte_order);
1227 *offsetp += 4;
1228}
1229
1230static void mesa_EvalMesh2(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1231{
1232 proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_mode, tvb, *offsetp, 4, byte_order);
1233 *offsetp += 4;
1234 proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_i1, tvb, *offsetp, 4, byte_order);
1235 *offsetp += 4;
1236 proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_i2, tvb, *offsetp, 4, byte_order);
1237 *offsetp += 4;
1238 proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_j1, tvb, *offsetp, 4, byte_order);
1239 *offsetp += 4;
1240 proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_j2, tvb, *offsetp, 4, byte_order);
1241 *offsetp += 4;
1242}
1243
1244static void mesa_EvalPoint2(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1245{
1246 proto_tree_add_item(t, hf_x11_glx_render_EvalPoint2_i, tvb, *offsetp, 4, byte_order);
1247 *offsetp += 4;
1248 proto_tree_add_item(t, hf_x11_glx_render_EvalPoint2_j, tvb, *offsetp, 4, byte_order);
1249 *offsetp += 4;
1250}
1251
1252static void mesa_AlphaFunc(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1253{
1254 proto_tree_add_item(t, hf_x11_glx_render_AlphaFunc_func, tvb, *offsetp, 4, byte_order);
1255 *offsetp += 4;
1256 proto_tree_add_item(t, hf_x11_glx_render_AlphaFunc_ref, tvb, *offsetp, 4, byte_order);
1257 *offsetp += 4;
1258}
1259
1260static void mesa_BlendFunc(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1261{
1262 proto_tree_add_item(t, hf_x11_glx_render_BlendFunc_sfactor, tvb, *offsetp, 4, byte_order);
1263 *offsetp += 4;
1264 proto_tree_add_item(t, hf_x11_glx_render_BlendFunc_dfactor, tvb, *offsetp, 4, byte_order);
1265 *offsetp += 4;
1266}
1267
1268static void mesa_LogicOp(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1269{
1270 proto_tree_add_item(t, hf_x11_glx_render_LogicOp_opcode, tvb, *offsetp, 4, byte_order);
1271 *offsetp += 4;
1272}
1273
1274static void mesa_StencilFunc(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1275{
1276 proto_tree_add_item(t, hf_x11_glx_render_StencilFunc_func, tvb, *offsetp, 4, byte_order);
1277 *offsetp += 4;
1278 proto_tree_add_item(t, hf_x11_glx_render_StencilFunc_ref, tvb, *offsetp, 4, byte_order);
1279 *offsetp += 4;
1280 proto_tree_add_item(t, hf_x11_glx_render_StencilFunc_mask, tvb, *offsetp, 4, byte_order);
1281 *offsetp += 4;
1282}
1283
1284static void mesa_StencilOp(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1285{
1286 proto_tree_add_item(t, hf_x11_glx_render_StencilOp_fail, tvb, *offsetp, 4, byte_order);
1287 *offsetp += 4;
1288 proto_tree_add_item(t, hf_x11_glx_render_StencilOp_zfail, tvb, *offsetp, 4, byte_order);
1289 *offsetp += 4;
1290 proto_tree_add_item(t, hf_x11_glx_render_StencilOp_zpass, tvb, *offsetp, 4, byte_order);
1291 *offsetp += 4;
1292}
1293
1294static void mesa_DepthFunc(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1295{
1296 proto_tree_add_item(t, hf_x11_glx_render_DepthFunc_func, tvb, *offsetp, 4, byte_order);
1297 *offsetp += 4;
1298}
1299
1300static void mesa_PixelZoom(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1301{
1302 proto_tree_add_item(t, hf_x11_glx_render_PixelZoom_xfactor, tvb, *offsetp, 4, byte_order);
1303 *offsetp += 4;
1304 proto_tree_add_item(t, hf_x11_glx_render_PixelZoom_yfactor, tvb, *offsetp, 4, byte_order);
1305 *offsetp += 4;
1306}
1307
1308static void mesa_PixelTransferf(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1309{
1310 proto_tree_add_item(t, hf_x11_glx_render_PixelTransferf_pname, tvb, *offsetp, 4, byte_order);
1311 *offsetp += 4;
1312 proto_tree_add_item(t, hf_x11_glx_render_PixelTransferf_param, tvb, *offsetp, 4, byte_order);
1313 *offsetp += 4;
1314}
1315
1316static void mesa_PixelTransferi(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1317{
1318 proto_tree_add_item(t, hf_x11_glx_render_PixelTransferi_pname, tvb, *offsetp, 4, byte_order);
1319 *offsetp += 4;
1320 proto_tree_add_item(t, hf_x11_glx_render_PixelTransferi_param, tvb, *offsetp, 4, byte_order);
1321 *offsetp += 4;
1322}
1323
1324static void mesa_PixelMapfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1325{
1326 int mapsize;
1327 proto_tree_add_item(t, hf_x11_glx_render_PixelMapfv_map, tvb, *offsetp, 4, byte_order);
1328 *offsetp += 4;
1329 mapsize = tvb_get_uint32(tvb, *offsetp, byte_order);
1330 proto_tree_add_item(t, hf_x11_glx_render_PixelMapfv_mapsize, tvb, *offsetp, 4, byte_order);
1331 *offsetp += 4;
1332 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_PixelMapfv_values, hf_x11_glx_render_PixelMapfv_values_item, mapsize, byte_order);
1333}
1334
1335static void mesa_PixelMapuiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1336{
1337 int mapsize;
1338 proto_tree_add_item(t, hf_x11_glx_render_PixelMapuiv_map, tvb, *offsetp, 4, byte_order);
1339 *offsetp += 4;
1340 mapsize = tvb_get_uint32(tvb, *offsetp, byte_order);
1341 proto_tree_add_item(t, hf_x11_glx_render_PixelMapuiv_mapsize, tvb, *offsetp, 4, byte_order);
1342 *offsetp += 4;
1343 listOfCard32(tvb, offsetp, t, hf_x11_glx_render_PixelMapuiv_values, hf_x11_glx_render_PixelMapuiv_values_item, mapsize, byte_order);
1344}
1345
1346static void mesa_PixelMapusv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1347{
1348 int mapsize;
1349 proto_tree_add_item(t, hf_x11_glx_render_PixelMapusv_map, tvb, *offsetp, 4, byte_order);
1350 *offsetp += 4;
1351 mapsize = tvb_get_uint32(tvb, *offsetp, byte_order);
1352 proto_tree_add_item(t, hf_x11_glx_render_PixelMapusv_mapsize, tvb, *offsetp, 4, byte_order);
1353 *offsetp += 4;
1354 listOfCard16(tvb, offsetp, t, hf_x11_glx_render_PixelMapusv_values, hf_x11_glx_render_PixelMapusv_values_item, mapsize, byte_order);
1355}
1356
1357static void mesa_ReadBuffer(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1358{
1359 proto_tree_add_item(t, hf_x11_glx_render_ReadBuffer_mode, tvb, *offsetp, 4, byte_order);
1360 *offsetp += 4;
1361}
1362
1363static void mesa_CopyPixels(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1364{
1365 proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_x, tvb, *offsetp, 4, byte_order);
1366 *offsetp += 4;
1367 proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_y, tvb, *offsetp, 4, byte_order);
1368 *offsetp += 4;
1369 proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_width, tvb, *offsetp, 4, byte_order);
1370 *offsetp += 4;
1371 proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_height, tvb, *offsetp, 4, byte_order);
1372 *offsetp += 4;
1373 proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_type, tvb, *offsetp, 4, byte_order);
1374 *offsetp += 4;
1375}
1376
1377static void mesa_DrawPixels(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1378{
1379 proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_swapbytes, tvb, *offsetp, 1, byte_order);
1380 *offsetp += 1;
1381 proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_lsbfirst, tvb, *offsetp, 1, byte_order);
1382 *offsetp += 1;
1383 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1384 *offsetp += 2;
1385 proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_rowlength, tvb, *offsetp, 4, byte_order);
1386 *offsetp += 4;
1387 proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_skiprows, tvb, *offsetp, 4, byte_order);
1388 *offsetp += 4;
1389 proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_skippixels, tvb, *offsetp, 4, byte_order);
1390 *offsetp += 4;
1391 proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_alignment, tvb, *offsetp, 4, byte_order);
1392 *offsetp += 4;
1393 proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_width, tvb, *offsetp, 4, byte_order);
1394 *offsetp += 4;
1395 proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_height, tvb, *offsetp, 4, byte_order);
1396 *offsetp += 4;
1397 proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_format, tvb, *offsetp, 4, byte_order);
1398 *offsetp += 4;
1399 proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_type, tvb, *offsetp, 4, byte_order);
1400 *offsetp += 4;
1401 listOfByte(tvb, offsetp, t, hf_x11_glx_render_DrawPixels_pixels, (length - 36) / 1, byte_order);
1402}
1403
1404static void mesa_DepthRange(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1405{
1406 proto_tree_add_item(t, hf_x11_glx_render_DepthRange_zNear, tvb, *offsetp, 8, byte_order);
1407 *offsetp += 8;
1408 proto_tree_add_item(t, hf_x11_glx_render_DepthRange_zFar, tvb, *offsetp, 8, byte_order);
1409 *offsetp += 8;
1410}
1411
1412static void mesa_Frustum(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1413{
1414 proto_tree_add_item(t, hf_x11_glx_render_Frustum_left, tvb, *offsetp, 8, byte_order);
1415 *offsetp += 8;
1416 proto_tree_add_item(t, hf_x11_glx_render_Frustum_right, tvb, *offsetp, 8, byte_order);
1417 *offsetp += 8;
1418 proto_tree_add_item(t, hf_x11_glx_render_Frustum_bottom, tvb, *offsetp, 8, byte_order);
1419 *offsetp += 8;
1420 proto_tree_add_item(t, hf_x11_glx_render_Frustum_top, tvb, *offsetp, 8, byte_order);
1421 *offsetp += 8;
1422 proto_tree_add_item(t, hf_x11_glx_render_Frustum_zNear, tvb, *offsetp, 8, byte_order);
1423 *offsetp += 8;
1424 proto_tree_add_item(t, hf_x11_glx_render_Frustum_zFar, tvb, *offsetp, 8, byte_order);
1425 *offsetp += 8;
1426}
1427
1428static void mesa_LoadIdentity(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
1429{
1430}
1431
1432static void mesa_LoadMatrixf(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1433{
1434 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_LoadMatrixf_m, hf_x11_glx_render_LoadMatrixf_m_item, 16, byte_order);
1435}
1436
1437static void mesa_LoadMatrixd(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1438{
1439 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_LoadMatrixd_m, hf_x11_glx_render_LoadMatrixd_m_item, 16, byte_order);
1440}
1441
1442static void mesa_MatrixMode(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1443{
1444 proto_tree_add_item(t, hf_x11_glx_render_MatrixMode_mode, tvb, *offsetp, 4, byte_order);
1445 *offsetp += 4;
1446}
1447
1448static void mesa_MultMatrixf(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1449{
1450 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultMatrixf_m, hf_x11_glx_render_MultMatrixf_m_item, 16, byte_order);
1451}
1452
1453static void mesa_MultMatrixd(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1454{
1455 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultMatrixd_m, hf_x11_glx_render_MultMatrixd_m_item, 16, byte_order);
1456}
1457
1458static void mesa_Ortho(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1459{
1460 proto_tree_add_item(t, hf_x11_glx_render_Ortho_left, tvb, *offsetp, 8, byte_order);
1461 *offsetp += 8;
1462 proto_tree_add_item(t, hf_x11_glx_render_Ortho_right, tvb, *offsetp, 8, byte_order);
1463 *offsetp += 8;
1464 proto_tree_add_item(t, hf_x11_glx_render_Ortho_bottom, tvb, *offsetp, 8, byte_order);
1465 *offsetp += 8;
1466 proto_tree_add_item(t, hf_x11_glx_render_Ortho_top, tvb, *offsetp, 8, byte_order);
1467 *offsetp += 8;
1468 proto_tree_add_item(t, hf_x11_glx_render_Ortho_zNear, tvb, *offsetp, 8, byte_order);
1469 *offsetp += 8;
1470 proto_tree_add_item(t, hf_x11_glx_render_Ortho_zFar, tvb, *offsetp, 8, byte_order);
1471 *offsetp += 8;
1472}
1473
1474static void mesa_PopMatrix(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
1475{
1476}
1477
1478static void mesa_PushMatrix(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
1479{
1480}
1481
1482static void mesa_Rotated(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1483{
1484 proto_tree_add_item(t, hf_x11_glx_render_Rotated_angle, tvb, *offsetp, 8, byte_order);
1485 *offsetp += 8;
1486 proto_tree_add_item(t, hf_x11_glx_render_Rotated_x, tvb, *offsetp, 8, byte_order);
1487 *offsetp += 8;
1488 proto_tree_add_item(t, hf_x11_glx_render_Rotated_y, tvb, *offsetp, 8, byte_order);
1489 *offsetp += 8;
1490 proto_tree_add_item(t, hf_x11_glx_render_Rotated_z, tvb, *offsetp, 8, byte_order);
1491 *offsetp += 8;
1492}
1493
1494static void mesa_Rotatef(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1495{
1496 proto_tree_add_item(t, hf_x11_glx_render_Rotatef_angle, tvb, *offsetp, 4, byte_order);
1497 *offsetp += 4;
1498 proto_tree_add_item(t, hf_x11_glx_render_Rotatef_x, tvb, *offsetp, 4, byte_order);
1499 *offsetp += 4;
1500 proto_tree_add_item(t, hf_x11_glx_render_Rotatef_y, tvb, *offsetp, 4, byte_order);
1501 *offsetp += 4;
1502 proto_tree_add_item(t, hf_x11_glx_render_Rotatef_z, tvb, *offsetp, 4, byte_order);
1503 *offsetp += 4;
1504}
1505
1506static void mesa_Scaled(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1507{
1508 proto_tree_add_item(t, hf_x11_glx_render_Scaled_x, tvb, *offsetp, 8, byte_order);
1509 *offsetp += 8;
1510 proto_tree_add_item(t, hf_x11_glx_render_Scaled_y, tvb, *offsetp, 8, byte_order);
1511 *offsetp += 8;
1512 proto_tree_add_item(t, hf_x11_glx_render_Scaled_z, tvb, *offsetp, 8, byte_order);
1513 *offsetp += 8;
1514}
1515
1516static void mesa_Scalef(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1517{
1518 proto_tree_add_item(t, hf_x11_glx_render_Scalef_x, tvb, *offsetp, 4, byte_order);
1519 *offsetp += 4;
1520 proto_tree_add_item(t, hf_x11_glx_render_Scalef_y, tvb, *offsetp, 4, byte_order);
1521 *offsetp += 4;
1522 proto_tree_add_item(t, hf_x11_glx_render_Scalef_z, tvb, *offsetp, 4, byte_order);
1523 *offsetp += 4;
1524}
1525
1526static void mesa_Translated(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1527{
1528 proto_tree_add_item(t, hf_x11_glx_render_Translated_x, tvb, *offsetp, 8, byte_order);
1529 *offsetp += 8;
1530 proto_tree_add_item(t, hf_x11_glx_render_Translated_y, tvb, *offsetp, 8, byte_order);
1531 *offsetp += 8;
1532 proto_tree_add_item(t, hf_x11_glx_render_Translated_z, tvb, *offsetp, 8, byte_order);
1533 *offsetp += 8;
1534}
1535
1536static void mesa_Translatef(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1537{
1538 proto_tree_add_item(t, hf_x11_glx_render_Translatef_x, tvb, *offsetp, 4, byte_order);
1539 *offsetp += 4;
1540 proto_tree_add_item(t, hf_x11_glx_render_Translatef_y, tvb, *offsetp, 4, byte_order);
1541 *offsetp += 4;
1542 proto_tree_add_item(t, hf_x11_glx_render_Translatef_z, tvb, *offsetp, 4, byte_order);
1543 *offsetp += 4;
1544}
1545
1546static void mesa_Viewport(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1547{
1548 proto_tree_add_item(t, hf_x11_glx_render_Viewport_x, tvb, *offsetp, 4, byte_order);
1549 *offsetp += 4;
1550 proto_tree_add_item(t, hf_x11_glx_render_Viewport_y, tvb, *offsetp, 4, byte_order);
1551 *offsetp += 4;
1552 proto_tree_add_item(t, hf_x11_glx_render_Viewport_width, tvb, *offsetp, 4, byte_order);
1553 *offsetp += 4;
1554 proto_tree_add_item(t, hf_x11_glx_render_Viewport_height, tvb, *offsetp, 4, byte_order);
1555 *offsetp += 4;
1556}
1557
1558static void mesa_DrawArrays(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1559{
1560 proto_tree_add_item(t, hf_x11_glx_render_DrawArrays_mode, tvb, *offsetp, 4, byte_order);
1561 *offsetp += 4;
1562 proto_tree_add_item(t, hf_x11_glx_render_DrawArrays_first, tvb, *offsetp, 4, byte_order);
1563 *offsetp += 4;
1564 proto_tree_add_item(t, hf_x11_glx_render_DrawArrays_count, tvb, *offsetp, 4, byte_order);
1565 *offsetp += 4;
1566}
1567
1568static void mesa_PolygonOffset(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1569{
1570 proto_tree_add_item(t, hf_x11_glx_render_PolygonOffset_factor, tvb, *offsetp, 4, byte_order);
1571 *offsetp += 4;
1572 proto_tree_add_item(t, hf_x11_glx_render_PolygonOffset_units, tvb, *offsetp, 4, byte_order);
1573 *offsetp += 4;
1574}
1575
1576static void mesa_CopyTexImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1577{
1578 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_target, tvb, *offsetp, 4, byte_order);
1579 *offsetp += 4;
1580 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_level, tvb, *offsetp, 4, byte_order);
1581 *offsetp += 4;
1582 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_internalformat, tvb, *offsetp, 4, byte_order);
1583 *offsetp += 4;
1584 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_x, tvb, *offsetp, 4, byte_order);
1585 *offsetp += 4;
1586 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_y, tvb, *offsetp, 4, byte_order);
1587 *offsetp += 4;
1588 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_width, tvb, *offsetp, 4, byte_order);
1589 *offsetp += 4;
1590 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_border, tvb, *offsetp, 4, byte_order);
1591 *offsetp += 4;
1592}
1593
1594static void mesa_CopyTexImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1595{
1596 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_target, tvb, *offsetp, 4, byte_order);
1597 *offsetp += 4;
1598 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_level, tvb, *offsetp, 4, byte_order);
1599 *offsetp += 4;
1600 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_internalformat, tvb, *offsetp, 4, byte_order);
1601 *offsetp += 4;
1602 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_x, tvb, *offsetp, 4, byte_order);
1603 *offsetp += 4;
1604 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_y, tvb, *offsetp, 4, byte_order);
1605 *offsetp += 4;
1606 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_width, tvb, *offsetp, 4, byte_order);
1607 *offsetp += 4;
1608 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_height, tvb, *offsetp, 4, byte_order);
1609 *offsetp += 4;
1610 proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_border, tvb, *offsetp, 4, byte_order);
1611 *offsetp += 4;
1612}
1613
1614static void mesa_CopyTexSubImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1615{
1616 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_target, tvb, *offsetp, 4, byte_order);
1617 *offsetp += 4;
1618 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_level, tvb, *offsetp, 4, byte_order);
1619 *offsetp += 4;
1620 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_xoffset, tvb, *offsetp, 4, byte_order);
1621 *offsetp += 4;
1622 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_x, tvb, *offsetp, 4, byte_order);
1623 *offsetp += 4;
1624 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_y, tvb, *offsetp, 4, byte_order);
1625 *offsetp += 4;
1626 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_width, tvb, *offsetp, 4, byte_order);
1627 *offsetp += 4;
1628}
1629
1630static void mesa_CopyTexSubImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1631{
1632 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_target, tvb, *offsetp, 4, byte_order);
1633 *offsetp += 4;
1634 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_level, tvb, *offsetp, 4, byte_order);
1635 *offsetp += 4;
1636 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_xoffset, tvb, *offsetp, 4, byte_order);
1637 *offsetp += 4;
1638 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_yoffset, tvb, *offsetp, 4, byte_order);
1639 *offsetp += 4;
1640 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_x, tvb, *offsetp, 4, byte_order);
1641 *offsetp += 4;
1642 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_y, tvb, *offsetp, 4, byte_order);
1643 *offsetp += 4;
1644 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_width, tvb, *offsetp, 4, byte_order);
1645 *offsetp += 4;
1646 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_height, tvb, *offsetp, 4, byte_order);
1647 *offsetp += 4;
1648}
1649
1650static void mesa_TexSubImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1651{
1652 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_swapbytes, tvb, *offsetp, 1, byte_order);
1653 *offsetp += 1;
1654 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_lsbfirst, tvb, *offsetp, 1, byte_order);
1655 *offsetp += 1;
1656 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1657 *offsetp += 2;
1658 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_rowlength, tvb, *offsetp, 4, byte_order);
1659 *offsetp += 4;
1660 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_skiprows, tvb, *offsetp, 4, byte_order);
1661 *offsetp += 4;
1662 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_skippixels, tvb, *offsetp, 4, byte_order);
1663 *offsetp += 4;
1664 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_alignment, tvb, *offsetp, 4, byte_order);
1665 *offsetp += 4;
1666 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_target, tvb, *offsetp, 4, byte_order);
1667 *offsetp += 4;
1668 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_level, tvb, *offsetp, 4, byte_order);
1669 *offsetp += 4;
1670 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_xoffset, tvb, *offsetp, 4, byte_order);
1671 *offsetp += 4;
1672 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_width, tvb, *offsetp, 4, byte_order);
1673 *offsetp += 4;
1674 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_format, tvb, *offsetp, 4, byte_order);
1675 *offsetp += 4;
1676 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_type, tvb, *offsetp, 4, byte_order);
1677 *offsetp += 4;
1678 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_UNUSED, tvb, *offsetp, 4, byte_order);
1679 *offsetp += 4;
1680 listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexSubImage1D_pixels, (length - 48) / 1, byte_order);
1681}
1682
1683static void mesa_TexSubImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1684{
1685 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_swapbytes, tvb, *offsetp, 1, byte_order);
1686 *offsetp += 1;
1687 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_lsbfirst, tvb, *offsetp, 1, byte_order);
1688 *offsetp += 1;
1689 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1690 *offsetp += 2;
1691 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_rowlength, tvb, *offsetp, 4, byte_order);
1692 *offsetp += 4;
1693 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_skiprows, tvb, *offsetp, 4, byte_order);
1694 *offsetp += 4;
1695 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_skippixels, tvb, *offsetp, 4, byte_order);
1696 *offsetp += 4;
1697 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_alignment, tvb, *offsetp, 4, byte_order);
1698 *offsetp += 4;
1699 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_target, tvb, *offsetp, 4, byte_order);
1700 *offsetp += 4;
1701 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_level, tvb, *offsetp, 4, byte_order);
1702 *offsetp += 4;
1703 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_xoffset, tvb, *offsetp, 4, byte_order);
1704 *offsetp += 4;
1705 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_yoffset, tvb, *offsetp, 4, byte_order);
1706 *offsetp += 4;
1707 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_width, tvb, *offsetp, 4, byte_order);
1708 *offsetp += 4;
1709 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_height, tvb, *offsetp, 4, byte_order);
1710 *offsetp += 4;
1711 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_format, tvb, *offsetp, 4, byte_order);
1712 *offsetp += 4;
1713 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_type, tvb, *offsetp, 4, byte_order);
1714 *offsetp += 4;
1715 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_UNUSED, tvb, *offsetp, 4, byte_order);
1716 *offsetp += 4;
1717 listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexSubImage2D_pixels, (length - 56) / 1, byte_order);
1718}
1719
1720static void mesa_BindTexture(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1721{
1722 proto_tree_add_item(t, hf_x11_glx_render_BindTexture_target, tvb, *offsetp, 4, byte_order);
1723 *offsetp += 4;
1724 proto_tree_add_item(t, hf_x11_glx_render_BindTexture_texture, tvb, *offsetp, 4, byte_order);
1725 *offsetp += 4;
1726}
1727
1728static void mesa_PrioritizeTextures(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1729{
1730 int n;
1731 n = tvb_get_uint32(tvb, *offsetp, byte_order);
1732 proto_tree_add_item(t, hf_x11_glx_render_PrioritizeTextures_n, tvb, *offsetp, 4, byte_order);
1733 *offsetp += 4;
1734 listOfCard32(tvb, offsetp, t, hf_x11_glx_render_PrioritizeTextures_textures, hf_x11_glx_render_PrioritizeTextures_textures_item, n, byte_order);
1735 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_PrioritizeTextures_priorities, hf_x11_glx_render_PrioritizeTextures_priorities_item, n, byte_order);
1736}
1737
1738static void mesa_Indexubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1739{
1740 listOfByte(tvb, offsetp, t, hf_x11_glx_render_Indexubv_c, 1, byte_order);
1741}
1742
1743static void mesa_BlendColor(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1744{
1745 proto_tree_add_item(t, hf_x11_glx_render_BlendColor_red, tvb, *offsetp, 4, byte_order);
1746 *offsetp += 4;
1747 proto_tree_add_item(t, hf_x11_glx_render_BlendColor_green, tvb, *offsetp, 4, byte_order);
1748 *offsetp += 4;
1749 proto_tree_add_item(t, hf_x11_glx_render_BlendColor_blue, tvb, *offsetp, 4, byte_order);
1750 *offsetp += 4;
1751 proto_tree_add_item(t, hf_x11_glx_render_BlendColor_alpha, tvb, *offsetp, 4, byte_order);
1752 *offsetp += 4;
1753}
1754
1755static void mesa_BlendEquation(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1756{
1757 proto_tree_add_item(t, hf_x11_glx_render_BlendEquation_mode, tvb, *offsetp, 4, byte_order);
1758 *offsetp += 4;
1759}
1760
1761static void mesa_ColorTable(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1762{
1763 proto_tree_add_item(t, hf_x11_glx_render_ColorTable_swapbytes, tvb, *offsetp, 1, byte_order);
1764 *offsetp += 1;
1765 proto_tree_add_item(t, hf_x11_glx_render_ColorTable_lsbfirst, tvb, *offsetp, 1, byte_order);
1766 *offsetp += 1;
1767 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1768 *offsetp += 2;
1769 proto_tree_add_item(t, hf_x11_glx_render_ColorTable_rowlength, tvb, *offsetp, 4, byte_order);
1770 *offsetp += 4;
1771 proto_tree_add_item(t, hf_x11_glx_render_ColorTable_skiprows, tvb, *offsetp, 4, byte_order);
1772 *offsetp += 4;
1773 proto_tree_add_item(t, hf_x11_glx_render_ColorTable_skippixels, tvb, *offsetp, 4, byte_order);
1774 *offsetp += 4;
1775 proto_tree_add_item(t, hf_x11_glx_render_ColorTable_alignment, tvb, *offsetp, 4, byte_order);
1776 *offsetp += 4;
1777 proto_tree_add_item(t, hf_x11_glx_render_ColorTable_target, tvb, *offsetp, 4, byte_order);
1778 *offsetp += 4;
1779 proto_tree_add_item(t, hf_x11_glx_render_ColorTable_internalformat, tvb, *offsetp, 4, byte_order);
1780 *offsetp += 4;
1781 proto_tree_add_item(t, hf_x11_glx_render_ColorTable_width, tvb, *offsetp, 4, byte_order);
1782 *offsetp += 4;
1783 proto_tree_add_item(t, hf_x11_glx_render_ColorTable_format, tvb, *offsetp, 4, byte_order);
1784 *offsetp += 4;
1785 proto_tree_add_item(t, hf_x11_glx_render_ColorTable_type, tvb, *offsetp, 4, byte_order);
1786 *offsetp += 4;
1787 listOfByte(tvb, offsetp, t, hf_x11_glx_render_ColorTable_table, (length - 40) / 1, byte_order);
1788}
1789
1790static void mesa_ColorTableParameterfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1791{
1792 proto_tree_add_item(t, hf_x11_glx_render_ColorTableParameterfv_target, tvb, *offsetp, 4, byte_order);
1793 *offsetp += 4;
1794 proto_tree_add_item(t, hf_x11_glx_render_ColorTableParameterfv_pname, tvb, *offsetp, 4, byte_order);
1795 *offsetp += 4;
1796 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ColorTableParameterfv_params, hf_x11_glx_render_ColorTableParameterfv_params_item, (length - 8) / 4, byte_order);
1797}
1798
1799static void mesa_ColorTableParameteriv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1800{
1801 proto_tree_add_item(t, hf_x11_glx_render_ColorTableParameteriv_target, tvb, *offsetp, 4, byte_order);
1802 *offsetp += 4;
1803 proto_tree_add_item(t, hf_x11_glx_render_ColorTableParameteriv_pname, tvb, *offsetp, 4, byte_order);
1804 *offsetp += 4;
1805 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_ColorTableParameteriv_params, hf_x11_glx_render_ColorTableParameteriv_params_item, (length - 8) / 4, byte_order);
1806}
1807
1808static void mesa_CopyColorTable(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1809{
1810 proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_target, tvb, *offsetp, 4, byte_order);
1811 *offsetp += 4;
1812 proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_internalformat, tvb, *offsetp, 4, byte_order);
1813 *offsetp += 4;
1814 proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_x, tvb, *offsetp, 4, byte_order);
1815 *offsetp += 4;
1816 proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_y, tvb, *offsetp, 4, byte_order);
1817 *offsetp += 4;
1818 proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_width, tvb, *offsetp, 4, byte_order);
1819 *offsetp += 4;
1820}
1821
1822static void mesa_ColorSubTable(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1823{
1824 proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_swapbytes, tvb, *offsetp, 1, byte_order);
1825 *offsetp += 1;
1826 proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_lsbfirst, tvb, *offsetp, 1, byte_order);
1827 *offsetp += 1;
1828 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1829 *offsetp += 2;
1830 proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_rowlength, tvb, *offsetp, 4, byte_order);
1831 *offsetp += 4;
1832 proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_skiprows, tvb, *offsetp, 4, byte_order);
1833 *offsetp += 4;
1834 proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_skippixels, tvb, *offsetp, 4, byte_order);
1835 *offsetp += 4;
1836 proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_alignment, tvb, *offsetp, 4, byte_order);
1837 *offsetp += 4;
1838 proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_target, tvb, *offsetp, 4, byte_order);
1839 *offsetp += 4;
1840 proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_start, tvb, *offsetp, 4, byte_order);
1841 *offsetp += 4;
1842 proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_count, tvb, *offsetp, 4, byte_order);
1843 *offsetp += 4;
1844 proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_format, tvb, *offsetp, 4, byte_order);
1845 *offsetp += 4;
1846 proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_type, tvb, *offsetp, 4, byte_order);
1847 *offsetp += 4;
1848 listOfByte(tvb, offsetp, t, hf_x11_glx_render_ColorSubTable_data, (length - 40) / 1, byte_order);
1849}
1850
1851static void mesa_CopyColorSubTable(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1852{
1853 proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_target, tvb, *offsetp, 4, byte_order);
1854 *offsetp += 4;
1855 proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_start, tvb, *offsetp, 4, byte_order);
1856 *offsetp += 4;
1857 proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_x, tvb, *offsetp, 4, byte_order);
1858 *offsetp += 4;
1859 proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_y, tvb, *offsetp, 4, byte_order);
1860 *offsetp += 4;
1861 proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_width, tvb, *offsetp, 4, byte_order);
1862 *offsetp += 4;
1863}
1864
1865static void mesa_ConvolutionFilter1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1866{
1867 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_swapbytes, tvb, *offsetp, 1, byte_order);
1868 *offsetp += 1;
1869 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_lsbfirst, tvb, *offsetp, 1, byte_order);
1870 *offsetp += 1;
1871 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1872 *offsetp += 2;
1873 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_rowlength, tvb, *offsetp, 4, byte_order);
1874 *offsetp += 4;
1875 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_skiprows, tvb, *offsetp, 4, byte_order);
1876 *offsetp += 4;
1877 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_skippixels, tvb, *offsetp, 4, byte_order);
1878 *offsetp += 4;
1879 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_alignment, tvb, *offsetp, 4, byte_order);
1880 *offsetp += 4;
1881 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_target, tvb, *offsetp, 4, byte_order);
1882 *offsetp += 4;
1883 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_internalformat, tvb, *offsetp, 4, byte_order);
1884 *offsetp += 4;
1885 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_width, tvb, *offsetp, 4, byte_order);
1886 *offsetp += 4;
1887 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_format, tvb, *offsetp, 4, byte_order);
1888 *offsetp += 4;
1889 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_type, tvb, *offsetp, 4, byte_order);
1890 *offsetp += 4;
1891 listOfByte(tvb, offsetp, t, hf_x11_glx_render_ConvolutionFilter1D_image, (length - 40) / 1, byte_order);
1892}
1893
1894static void mesa_ConvolutionFilter2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1895{
1896 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_swapbytes, tvb, *offsetp, 1, byte_order);
1897 *offsetp += 1;
1898 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_lsbfirst, tvb, *offsetp, 1, byte_order);
1899 *offsetp += 1;
1900 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
1901 *offsetp += 2;
1902 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_rowlength, tvb, *offsetp, 4, byte_order);
1903 *offsetp += 4;
1904 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_skiprows, tvb, *offsetp, 4, byte_order);
1905 *offsetp += 4;
1906 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_skippixels, tvb, *offsetp, 4, byte_order);
1907 *offsetp += 4;
1908 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_alignment, tvb, *offsetp, 4, byte_order);
1909 *offsetp += 4;
1910 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_target, tvb, *offsetp, 4, byte_order);
1911 *offsetp += 4;
1912 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_internalformat, tvb, *offsetp, 4, byte_order);
1913 *offsetp += 4;
1914 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_width, tvb, *offsetp, 4, byte_order);
1915 *offsetp += 4;
1916 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_height, tvb, *offsetp, 4, byte_order);
1917 *offsetp += 4;
1918 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_format, tvb, *offsetp, 4, byte_order);
1919 *offsetp += 4;
1920 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_type, tvb, *offsetp, 4, byte_order);
1921 *offsetp += 4;
1922 listOfByte(tvb, offsetp, t, hf_x11_glx_render_ConvolutionFilter2D_image, (length - 44) / 1, byte_order);
1923}
1924
1925static void mesa_ConvolutionParameterf(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1926{
1927 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterf_target, tvb, *offsetp, 4, byte_order);
1928 *offsetp += 4;
1929 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterf_pname, tvb, *offsetp, 4, byte_order);
1930 *offsetp += 4;
1931 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterf_params, tvb, *offsetp, 4, byte_order);
1932 *offsetp += 4;
1933}
1934
1935static void mesa_ConvolutionParameterfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1936{
1937 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterfv_target, tvb, *offsetp, 4, byte_order);
1938 *offsetp += 4;
1939 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterfv_pname, tvb, *offsetp, 4, byte_order);
1940 *offsetp += 4;
1941 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ConvolutionParameterfv_params, hf_x11_glx_render_ConvolutionParameterfv_params_item, (length - 8) / 4, byte_order);
1942}
1943
1944static void mesa_ConvolutionParameteri(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1945{
1946 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteri_target, tvb, *offsetp, 4, byte_order);
1947 *offsetp += 4;
1948 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteri_pname, tvb, *offsetp, 4, byte_order);
1949 *offsetp += 4;
1950 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteri_params, tvb, *offsetp, 4, byte_order);
1951 *offsetp += 4;
1952}
1953
1954static void mesa_ConvolutionParameteriv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1955{
1956 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteriv_target, tvb, *offsetp, 4, byte_order);
1957 *offsetp += 4;
1958 proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteriv_pname, tvb, *offsetp, 4, byte_order);
1959 *offsetp += 4;
1960 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_ConvolutionParameteriv_params, hf_x11_glx_render_ConvolutionParameteriv_params_item, (length - 8) / 4, byte_order);
1961}
1962
1963static void mesa_CopyConvolutionFilter1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1964{
1965 proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_target, tvb, *offsetp, 4, byte_order);
1966 *offsetp += 4;
1967 proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_internalformat, tvb, *offsetp, 4, byte_order);
1968 *offsetp += 4;
1969 proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_x, tvb, *offsetp, 4, byte_order);
1970 *offsetp += 4;
1971 proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_y, tvb, *offsetp, 4, byte_order);
1972 *offsetp += 4;
1973 proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_width, tvb, *offsetp, 4, byte_order);
1974 *offsetp += 4;
1975}
1976
1977static void mesa_CopyConvolutionFilter2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1978{
1979 proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_target, tvb, *offsetp, 4, byte_order);
1980 *offsetp += 4;
1981 proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_internalformat, tvb, *offsetp, 4, byte_order);
1982 *offsetp += 4;
1983 proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_x, tvb, *offsetp, 4, byte_order);
1984 *offsetp += 4;
1985 proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_y, tvb, *offsetp, 4, byte_order);
1986 *offsetp += 4;
1987 proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_width, tvb, *offsetp, 4, byte_order);
1988 *offsetp += 4;
1989 proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_height, tvb, *offsetp, 4, byte_order);
1990 *offsetp += 4;
1991}
1992
1993static void mesa_SeparableFilter2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
1994{
1995 proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_target, tvb, *offsetp, 4, byte_order);
1996 *offsetp += 4;
1997 proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_internalformat, tvb, *offsetp, 4, byte_order);
1998 *offsetp += 4;
1999 proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_width, tvb, *offsetp, 4, byte_order);
2000 *offsetp += 4;
2001 proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_height, tvb, *offsetp, 4, byte_order);
2002 *offsetp += 4;
2003 proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_format, tvb, *offsetp, 4, byte_order);
2004 *offsetp += 4;
2005 proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_type, tvb, *offsetp, 4, byte_order);
2006 *offsetp += 4;
2007 listOfByte(tvb, offsetp, t, hf_x11_glx_render_SeparableFilter2D_row, (length - 24) / 1, byte_order);
2008 listOfByte(tvb, offsetp, t, hf_x11_glx_render_SeparableFilter2D_column, (length - 24) / 1, byte_order);
2009}
2010
2011static void mesa_Histogram(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2012{
2013 proto_tree_add_item(t, hf_x11_glx_render_Histogram_target, tvb, *offsetp, 4, byte_order);
2014 *offsetp += 4;
2015 proto_tree_add_item(t, hf_x11_glx_render_Histogram_width, tvb, *offsetp, 4, byte_order);
2016 *offsetp += 4;
2017 proto_tree_add_item(t, hf_x11_glx_render_Histogram_internalformat, tvb, *offsetp, 4, byte_order);
2018 *offsetp += 4;
2019 proto_tree_add_item(t, hf_x11_glx_render_Histogram_sink, tvb, *offsetp, 1, byte_order);
2020 *offsetp += 1;
2021}
2022
2023static void mesa_Minmax(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2024{
2025 proto_tree_add_item(t, hf_x11_glx_render_Minmax_target, tvb, *offsetp, 4, byte_order);
2026 *offsetp += 4;
2027 proto_tree_add_item(t, hf_x11_glx_render_Minmax_internalformat, tvb, *offsetp, 4, byte_order);
2028 *offsetp += 4;
2029 proto_tree_add_item(t, hf_x11_glx_render_Minmax_sink, tvb, *offsetp, 1, byte_order);
2030 *offsetp += 1;
2031}
2032
2033static void mesa_ResetHistogram(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2034{
2035 proto_tree_add_item(t, hf_x11_glx_render_ResetHistogram_target, tvb, *offsetp, 4, byte_order);
2036 *offsetp += 4;
2037}
2038
2039static void mesa_ResetMinmax(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2040{
2041 proto_tree_add_item(t, hf_x11_glx_render_ResetMinmax_target, tvb, *offsetp, 4, byte_order);
2042 *offsetp += 4;
2043}
2044
2045static void mesa_TexImage3D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2046{
2047 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_swapbytes, tvb, *offsetp, 1, byte_order);
2048 *offsetp += 1;
2049 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_lsbfirst, tvb, *offsetp, 1, byte_order);
2050 *offsetp += 1;
2051 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
2052 *offsetp += 2;
2053 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_rowlength, tvb, *offsetp, 4, byte_order);
2054 *offsetp += 4;
2055 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_skiprows, tvb, *offsetp, 4, byte_order);
2056 *offsetp += 4;
2057 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_skippixels, tvb, *offsetp, 4, byte_order);
2058 *offsetp += 4;
2059 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_alignment, tvb, *offsetp, 4, byte_order);
2060 *offsetp += 4;
2061 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_target, tvb, *offsetp, 4, byte_order);
2062 *offsetp += 4;
2063 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_level, tvb, *offsetp, 4, byte_order);
2064 *offsetp += 4;
2065 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_internalformat, tvb, *offsetp, 4, byte_order);
2066 *offsetp += 4;
2067 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_width, tvb, *offsetp, 4, byte_order);
2068 *offsetp += 4;
2069 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_height, tvb, *offsetp, 4, byte_order);
2070 *offsetp += 4;
2071 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_depth, tvb, *offsetp, 4, byte_order);
2072 *offsetp += 4;
2073 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_border, tvb, *offsetp, 4, byte_order);
2074 *offsetp += 4;
2075 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_format, tvb, *offsetp, 4, byte_order);
2076 *offsetp += 4;
2077 proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_type, tvb, *offsetp, 4, byte_order);
2078 *offsetp += 4;
2079 listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexImage3D_pixels, (length - 56) / 1, byte_order);
2080}
2081
2082static void mesa_TexSubImage3D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2083{
2084 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_swapbytes, tvb, *offsetp, 1, byte_order);
2085 *offsetp += 1;
2086 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_lsbfirst, tvb, *offsetp, 1, byte_order);
2087 *offsetp += 1;
2088 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
2089 *offsetp += 2;
2090 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_rowlength, tvb, *offsetp, 4, byte_order);
2091 *offsetp += 4;
2092 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_skiprows, tvb, *offsetp, 4, byte_order);
2093 *offsetp += 4;
2094 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_skippixels, tvb, *offsetp, 4, byte_order);
2095 *offsetp += 4;
2096 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_alignment, tvb, *offsetp, 4, byte_order);
2097 *offsetp += 4;
2098 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_target, tvb, *offsetp, 4, byte_order);
2099 *offsetp += 4;
2100 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_level, tvb, *offsetp, 4, byte_order);
2101 *offsetp += 4;
2102 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_xoffset, tvb, *offsetp, 4, byte_order);
2103 *offsetp += 4;
2104 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_yoffset, tvb, *offsetp, 4, byte_order);
2105 *offsetp += 4;
2106 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_zoffset, tvb, *offsetp, 4, byte_order);
2107 *offsetp += 4;
2108 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_width, tvb, *offsetp, 4, byte_order);
2109 *offsetp += 4;
2110 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_height, tvb, *offsetp, 4, byte_order);
2111 *offsetp += 4;
2112 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_depth, tvb, *offsetp, 4, byte_order);
2113 *offsetp += 4;
2114 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_format, tvb, *offsetp, 4, byte_order);
2115 *offsetp += 4;
2116 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_type, tvb, *offsetp, 4, byte_order);
2117 *offsetp += 4;
2118 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_UNUSED, tvb, *offsetp, 4, byte_order);
2119 *offsetp += 4;
2120 listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexSubImage3D_pixels, (length - 64) / 1, byte_order);
2121}
2122
2123static void mesa_CopyTexSubImage3D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2124{
2125 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_target, tvb, *offsetp, 4, byte_order);
2126 *offsetp += 4;
2127 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_level, tvb, *offsetp, 4, byte_order);
2128 *offsetp += 4;
2129 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_xoffset, tvb, *offsetp, 4, byte_order);
2130 *offsetp += 4;
2131 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_yoffset, tvb, *offsetp, 4, byte_order);
2132 *offsetp += 4;
2133 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_zoffset, tvb, *offsetp, 4, byte_order);
2134 *offsetp += 4;
2135 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_x, tvb, *offsetp, 4, byte_order);
2136 *offsetp += 4;
2137 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_y, tvb, *offsetp, 4, byte_order);
2138 *offsetp += 4;
2139 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_width, tvb, *offsetp, 4, byte_order);
2140 *offsetp += 4;
2141 proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_height, tvb, *offsetp, 4, byte_order);
2142 *offsetp += 4;
2143}
2144
2145static void mesa_ActiveTexture(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2146{
2147 proto_tree_add_item(t, hf_x11_glx_render_ActiveTexture_texture, tvb, *offsetp, 4, byte_order);
2148 *offsetp += 4;
2149}
2150
2151static void mesa_MultiTexCoord1dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2152{
2153 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord1dv_target, tvb, *offsetp, 4, byte_order);
2154 *offsetp += 4;
2155 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord1dv_v, hf_x11_glx_render_MultiTexCoord1dv_v_item, 1, byte_order);
2156}
2157
2158static void mesa_MultiTexCoord1iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2159{
2160 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord1iv_target, tvb, *offsetp, 4, byte_order);
2161 *offsetp += 4;
2162 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord1iv_v, hf_x11_glx_render_MultiTexCoord1iv_v_item, 1, byte_order);
2163}
2164
2165static void mesa_MultiTexCoord1sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2166{
2167 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord1sv_target, tvb, *offsetp, 4, byte_order);
2168 *offsetp += 4;
2169 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord1sv_v, hf_x11_glx_render_MultiTexCoord1sv_v_item, 1, byte_order);
2170}
2171
2172static void mesa_MultiTexCoord2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2173{
2174 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord2dv_target, tvb, *offsetp, 4, byte_order);
2175 *offsetp += 4;
2176 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord2dv_v, hf_x11_glx_render_MultiTexCoord2dv_v_item, 2, byte_order);
2177}
2178
2179static void mesa_MultiTexCoord2iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2180{
2181 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord2iv_target, tvb, *offsetp, 4, byte_order);
2182 *offsetp += 4;
2183 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord2iv_v, hf_x11_glx_render_MultiTexCoord2iv_v_item, 2, byte_order);
2184}
2185
2186static void mesa_MultiTexCoord2sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2187{
2188 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord2sv_target, tvb, *offsetp, 4, byte_order);
2189 *offsetp += 4;
2190 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord2sv_v, hf_x11_glx_render_MultiTexCoord2sv_v_item, 2, byte_order);
2191}
2192
2193static void mesa_MultiTexCoord3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2194{
2195 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord3dv_target, tvb, *offsetp, 4, byte_order);
2196 *offsetp += 4;
2197 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord3dv_v, hf_x11_glx_render_MultiTexCoord3dv_v_item, 3, byte_order);
2198}
2199
2200static void mesa_MultiTexCoord3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2201{
2202 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord3iv_target, tvb, *offsetp, 4, byte_order);
2203 *offsetp += 4;
2204 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord3iv_v, hf_x11_glx_render_MultiTexCoord3iv_v_item, 3, byte_order);
2205}
2206
2207static void mesa_MultiTexCoord3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2208{
2209 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord3sv_target, tvb, *offsetp, 4, byte_order);
2210 *offsetp += 4;
2211 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord3sv_v, hf_x11_glx_render_MultiTexCoord3sv_v_item, 3, byte_order);
2212}
2213
2214static void mesa_MultiTexCoord4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2215{
2216 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord4dv_target, tvb, *offsetp, 4, byte_order);
2217 *offsetp += 4;
2218 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord4dv_v, hf_x11_glx_render_MultiTexCoord4dv_v_item, 4, byte_order);
2219}
2220
2221static void mesa_MultiTexCoord4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2222{
2223 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord4iv_target, tvb, *offsetp, 4, byte_order);
2224 *offsetp += 4;
2225 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord4iv_v, hf_x11_glx_render_MultiTexCoord4iv_v_item, 4, byte_order);
2226}
2227
2228static void mesa_MultiTexCoord4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2229{
2230 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord4sv_target, tvb, *offsetp, 4, byte_order);
2231 *offsetp += 4;
2232 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord4sv_v, hf_x11_glx_render_MultiTexCoord4sv_v_item, 4, byte_order);
2233}
2234
2235static void mesa_SampleCoverage(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2236{
2237 proto_tree_add_item(t, hf_x11_glx_render_SampleCoverage_value, tvb, *offsetp, 4, byte_order);
2238 *offsetp += 4;
2239 proto_tree_add_item(t, hf_x11_glx_render_SampleCoverage_invert, tvb, *offsetp, 1, byte_order);
2240 *offsetp += 1;
2241}
2242
2243static void mesa_CompressedTexImage3D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2244{
2245 int imageSize;
2246 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_target, tvb, *offsetp, 4, byte_order);
2247 *offsetp += 4;
2248 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_level, tvb, *offsetp, 4, byte_order);
2249 *offsetp += 4;
2250 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_internalformat, tvb, *offsetp, 4, byte_order);
2251 *offsetp += 4;
2252 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_width, tvb, *offsetp, 4, byte_order);
2253 *offsetp += 4;
2254 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_height, tvb, *offsetp, 4, byte_order);
2255 *offsetp += 4;
2256 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_depth, tvb, *offsetp, 4, byte_order);
2257 *offsetp += 4;
2258 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_border, tvb, *offsetp, 4, byte_order);
2259 *offsetp += 4;
2260 imageSize = tvb_get_uint32(tvb, *offsetp, byte_order);
2261 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3D_imageSize, tvb, *offsetp, 4, byte_order);
2262 *offsetp += 4;
2263 listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexImage3D_data, imageSize, byte_order);
2264}
2265
2266static void mesa_CompressedTexImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2267{
2268 int imageSize;
2269 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_target, tvb, *offsetp, 4, byte_order);
2270 *offsetp += 4;
2271 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_level, tvb, *offsetp, 4, byte_order);
2272 *offsetp += 4;
2273 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_internalformat, tvb, *offsetp, 4, byte_order);
2274 *offsetp += 4;
2275 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_width, tvb, *offsetp, 4, byte_order);
2276 *offsetp += 4;
2277 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_height, tvb, *offsetp, 4, byte_order);
2278 *offsetp += 4;
2279 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_border, tvb, *offsetp, 4, byte_order);
2280 *offsetp += 4;
2281 imageSize = tvb_get_uint32(tvb, *offsetp, byte_order);
2282 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2D_imageSize, tvb, *offsetp, 4, byte_order);
2283 *offsetp += 4;
2284 listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexImage2D_data, imageSize, byte_order);
2285}
2286
2287static void mesa_CompressedTexImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2288{
2289 int imageSize;
2290 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1D_target, tvb, *offsetp, 4, byte_order);
2291 *offsetp += 4;
2292 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1D_level, tvb, *offsetp, 4, byte_order);
2293 *offsetp += 4;
2294 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1D_internalformat, tvb, *offsetp, 4, byte_order);
2295 *offsetp += 4;
2296 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1D_width, tvb, *offsetp, 4, byte_order);
2297 *offsetp += 4;
2298 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1D_border, tvb, *offsetp, 4, byte_order);
2299 *offsetp += 4;
2300 imageSize = tvb_get_uint32(tvb, *offsetp, byte_order);
2301 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1D_imageSize, tvb, *offsetp, 4, byte_order);
2302 *offsetp += 4;
2303 listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexImage1D_data, imageSize, byte_order);
2304}
2305
2306static void mesa_CompressedTexSubImage3D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2307{
2308 int imageSize;
2309 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_target, tvb, *offsetp, 4, byte_order);
2310 *offsetp += 4;
2311 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_level, tvb, *offsetp, 4, byte_order);
2312 *offsetp += 4;
2313 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_xoffset, tvb, *offsetp, 4, byte_order);
2314 *offsetp += 4;
2315 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_yoffset, tvb, *offsetp, 4, byte_order);
2316 *offsetp += 4;
2317 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_zoffset, tvb, *offsetp, 4, byte_order);
2318 *offsetp += 4;
2319 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_width, tvb, *offsetp, 4, byte_order);
2320 *offsetp += 4;
2321 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_height, tvb, *offsetp, 4, byte_order);
2322 *offsetp += 4;
2323 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_depth, tvb, *offsetp, 4, byte_order);
2324 *offsetp += 4;
2325 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_format, tvb, *offsetp, 4, byte_order);
2326 *offsetp += 4;
2327 imageSize = tvb_get_uint32(tvb, *offsetp, byte_order);
2328 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3D_imageSize, tvb, *offsetp, 4, byte_order);
2329 *offsetp += 4;
2330 listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexSubImage3D_data, imageSize, byte_order);
2331}
2332
2333static void mesa_CompressedTexSubImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2334{
2335 int imageSize;
2336 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_target, tvb, *offsetp, 4, byte_order);
2337 *offsetp += 4;
2338 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_level, tvb, *offsetp, 4, byte_order);
2339 *offsetp += 4;
2340 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_xoffset, tvb, *offsetp, 4, byte_order);
2341 *offsetp += 4;
2342 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_yoffset, tvb, *offsetp, 4, byte_order);
2343 *offsetp += 4;
2344 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_width, tvb, *offsetp, 4, byte_order);
2345 *offsetp += 4;
2346 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_height, tvb, *offsetp, 4, byte_order);
2347 *offsetp += 4;
2348 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_format, tvb, *offsetp, 4, byte_order);
2349 *offsetp += 4;
2350 imageSize = tvb_get_uint32(tvb, *offsetp, byte_order);
2351 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2D_imageSize, tvb, *offsetp, 4, byte_order);
2352 *offsetp += 4;
2353 listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexSubImage2D_data, imageSize, byte_order);
2354}
2355
2356static void mesa_CompressedTexSubImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2357{
2358 int imageSize;
2359 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1D_target, tvb, *offsetp, 4, byte_order);
2360 *offsetp += 4;
2361 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1D_level, tvb, *offsetp, 4, byte_order);
2362 *offsetp += 4;
2363 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1D_xoffset, tvb, *offsetp, 4, byte_order);
2364 *offsetp += 4;
2365 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1D_width, tvb, *offsetp, 4, byte_order);
2366 *offsetp += 4;
2367 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1D_format, tvb, *offsetp, 4, byte_order);
2368 *offsetp += 4;
2369 imageSize = tvb_get_uint32(tvb, *offsetp, byte_order);
2370 proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1D_imageSize, tvb, *offsetp, 4, byte_order);
2371 *offsetp += 4;
2372 listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexSubImage1D_data, imageSize, byte_order);
2373}
2374
2375static void mesa_BlendFuncSeparate(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2376{
2377 proto_tree_add_item(t, hf_x11_glx_render_BlendFuncSeparate_sfactorRGB, tvb, *offsetp, 4, byte_order);
2378 *offsetp += 4;
2379 proto_tree_add_item(t, hf_x11_glx_render_BlendFuncSeparate_dfactorRGB, tvb, *offsetp, 4, byte_order);
2380 *offsetp += 4;
2381 proto_tree_add_item(t, hf_x11_glx_render_BlendFuncSeparate_sfactorAlpha, tvb, *offsetp, 4, byte_order);
2382 *offsetp += 4;
2383 proto_tree_add_item(t, hf_x11_glx_render_BlendFuncSeparate_dfactorAlpha, tvb, *offsetp, 4, byte_order);
2384 *offsetp += 4;
2385}
2386
2387static void mesa_FogCoorddv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2388{
2389 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_FogCoorddv_coord, hf_x11_glx_render_FogCoorddv_coord_item, 1, byte_order);
2390}
2391
2392static void mesa_PointParameterf(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2393{
2394 proto_tree_add_item(t, hf_x11_glx_render_PointParameterf_pname, tvb, *offsetp, 4, byte_order);
2395 *offsetp += 4;
2396 proto_tree_add_item(t, hf_x11_glx_render_PointParameterf_param, tvb, *offsetp, 4, byte_order);
2397 *offsetp += 4;
2398}
2399
2400static void mesa_PointParameterfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2401{
2402 proto_tree_add_item(t, hf_x11_glx_render_PointParameterfv_pname, tvb, *offsetp, 4, byte_order);
2403 *offsetp += 4;
2404 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_PointParameterfv_params, hf_x11_glx_render_PointParameterfv_params_item, (length - 4) / 4, byte_order);
2405}
2406
2407static void mesa_PointParameteri(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2408{
2409 proto_tree_add_item(t, hf_x11_glx_render_PointParameteri_pname, tvb, *offsetp, 4, byte_order);
2410 *offsetp += 4;
2411 proto_tree_add_item(t, hf_x11_glx_render_PointParameteri_param, tvb, *offsetp, 4, byte_order);
2412 *offsetp += 4;
2413}
2414
2415static void mesa_PointParameteriv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2416{
2417 proto_tree_add_item(t, hf_x11_glx_render_PointParameteriv_pname, tvb, *offsetp, 4, byte_order);
2418 *offsetp += 4;
2419 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_PointParameteriv_params, hf_x11_glx_render_PointParameteriv_params_item, (length - 4) / 4, byte_order);
2420}
2421
2422static void mesa_SecondaryColor3bv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2423{
2424 listOfByte(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3bv_v, 3, byte_order);
2425}
2426
2427static void mesa_SecondaryColor3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2428{
2429 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3dv_v, hf_x11_glx_render_SecondaryColor3dv_v_item, 3, byte_order);
2430}
2431
2432static void mesa_SecondaryColor3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2433{
2434 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3iv_v, hf_x11_glx_render_SecondaryColor3iv_v_item, 3, byte_order);
2435}
2436
2437static void mesa_SecondaryColor3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2438{
2439 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3sv_v, hf_x11_glx_render_SecondaryColor3sv_v_item, 3, byte_order);
2440}
2441
2442static void mesa_SecondaryColor3ubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2443{
2444 listOfByte(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3ubv_v, 3, byte_order);
2445}
2446
2447static void mesa_SecondaryColor3uiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2448{
2449 listOfCard32(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3uiv_v, hf_x11_glx_render_SecondaryColor3uiv_v_item, 3, byte_order);
2450}
2451
2452static void mesa_SecondaryColor3usv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2453{
2454 listOfCard16(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3usv_v, hf_x11_glx_render_SecondaryColor3usv_v_item, 3, byte_order);
2455}
2456
2457static void mesa_WindowPos3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2458{
2459 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_WindowPos3fv_v, hf_x11_glx_render_WindowPos3fv_v_item, 3, byte_order);
2460}
2461
2462static void mesa_BeginQuery(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2463{
2464 proto_tree_add_item(t, hf_x11_glx_render_BeginQuery_target, tvb, *offsetp, 4, byte_order);
2465 *offsetp += 4;
2466 proto_tree_add_item(t, hf_x11_glx_render_BeginQuery_id, tvb, *offsetp, 4, byte_order);
2467 *offsetp += 4;
2468}
2469
2470static void mesa_EndQuery(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2471{
2472 proto_tree_add_item(t, hf_x11_glx_render_EndQuery_target, tvb, *offsetp, 4, byte_order);
2473 *offsetp += 4;
2474}
2475
2476static void mesa_BlendEquationSeparate(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2477{
2478 proto_tree_add_item(t, hf_x11_glx_render_BlendEquationSeparate_modeRGB, tvb, *offsetp, 4, byte_order);
2479 *offsetp += 4;
2480 proto_tree_add_item(t, hf_x11_glx_render_BlendEquationSeparate_modeA, tvb, *offsetp, 4, byte_order);
2481 *offsetp += 4;
2482}
2483
2484static void mesa_DrawBuffers(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2485{
2486 int n;
2487 n = tvb_get_uint32(tvb, *offsetp, byte_order);
2488 proto_tree_add_item(t, hf_x11_glx_render_DrawBuffers_n, tvb, *offsetp, 4, byte_order);
2489 *offsetp += 4;
2490 listOfCard32(tvb, offsetp, t, hf_x11_glx_render_DrawBuffers_bufs, hf_x11_glx_render_DrawBuffers_bufs_item, n, byte_order);
2491}
2492
2493static void mesa_VertexAttrib1dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2494{
2495 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1dv_index, tvb, *offsetp, 4, byte_order);
2496 *offsetp += 4;
2497 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1dv_v, hf_x11_glx_render_VertexAttrib1dv_v_item, 1, byte_order);
2498}
2499
2500static void mesa_VertexAttrib1sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2501{
2502 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1sv_index, tvb, *offsetp, 4, byte_order);
2503 *offsetp += 4;
2504 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1sv_v, hf_x11_glx_render_VertexAttrib1sv_v_item, 1, byte_order);
2505}
2506
2507static void mesa_VertexAttrib2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2508{
2509 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2dv_index, tvb, *offsetp, 4, byte_order);
2510 *offsetp += 4;
2511 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2dv_v, hf_x11_glx_render_VertexAttrib2dv_v_item, 2, byte_order);
2512}
2513
2514static void mesa_VertexAttrib2sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2515{
2516 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2sv_index, tvb, *offsetp, 4, byte_order);
2517 *offsetp += 4;
2518 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2sv_v, hf_x11_glx_render_VertexAttrib2sv_v_item, 2, byte_order);
2519}
2520
2521static void mesa_VertexAttrib3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2522{
2523 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3dv_index, tvb, *offsetp, 4, byte_order);
2524 *offsetp += 4;
2525 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3dv_v, hf_x11_glx_render_VertexAttrib3dv_v_item, 3, byte_order);
2526}
2527
2528static void mesa_VertexAttrib3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2529{
2530 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3sv_index, tvb, *offsetp, 4, byte_order);
2531 *offsetp += 4;
2532 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3sv_v, hf_x11_glx_render_VertexAttrib3sv_v_item, 3, byte_order);
2533}
2534
2535static void mesa_VertexAttrib4Nbv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2536{
2537 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4Nbv_index, tvb, *offsetp, 4, byte_order);
2538 *offsetp += 4;
2539 listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4Nbv_v, 4, byte_order);
2540}
2541
2542static void mesa_VertexAttrib4Niv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2543{
2544 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4Niv_index, tvb, *offsetp, 4, byte_order);
2545 *offsetp += 4;
2546 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4Niv_v, hf_x11_glx_render_VertexAttrib4Niv_v_item, 4, byte_order);
2547}
2548
2549static void mesa_VertexAttrib4Nsv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2550{
2551 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4Nsv_index, tvb, *offsetp, 4, byte_order);
2552 *offsetp += 4;
2553 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4Nsv_v, hf_x11_glx_render_VertexAttrib4Nsv_v_item, 4, byte_order);
2554}
2555
2556static void mesa_VertexAttrib4Nubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2557{
2558 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4Nubv_index, tvb, *offsetp, 4, byte_order);
2559 *offsetp += 4;
2560 listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4Nubv_v, 4, byte_order);
2561}
2562
2563static void mesa_VertexAttrib4Nuiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2564{
2565 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4Nuiv_index, tvb, *offsetp, 4, byte_order);
2566 *offsetp += 4;
2567 listOfCard32(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4Nuiv_v, hf_x11_glx_render_VertexAttrib4Nuiv_v_item, 4, byte_order);
2568}
2569
2570static void mesa_VertexAttrib4Nusv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2571{
2572 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4Nusv_index, tvb, *offsetp, 4, byte_order);
2573 *offsetp += 4;
2574 listOfCard16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4Nusv_v, hf_x11_glx_render_VertexAttrib4Nusv_v_item, 4, byte_order);
2575}
2576
2577static void mesa_VertexAttrib4bv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2578{
2579 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4bv_index, tvb, *offsetp, 4, byte_order);
2580 *offsetp += 4;
2581 listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4bv_v, 4, byte_order);
2582}
2583
2584static void mesa_VertexAttrib4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2585{
2586 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4dv_index, tvb, *offsetp, 4, byte_order);
2587 *offsetp += 4;
2588 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4dv_v, hf_x11_glx_render_VertexAttrib4dv_v_item, 4, byte_order);
2589}
2590
2591static void mesa_VertexAttrib4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2592{
2593 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4iv_index, tvb, *offsetp, 4, byte_order);
2594 *offsetp += 4;
2595 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4iv_v, hf_x11_glx_render_VertexAttrib4iv_v_item, 4, byte_order);
2596}
2597
2598static void mesa_VertexAttrib4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2599{
2600 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4sv_index, tvb, *offsetp, 4, byte_order);
2601 *offsetp += 4;
2602 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4sv_v, hf_x11_glx_render_VertexAttrib4sv_v_item, 4, byte_order);
2603}
2604
2605static void mesa_VertexAttrib4ubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2606{
2607 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4ubv_index, tvb, *offsetp, 4, byte_order);
2608 *offsetp += 4;
2609 listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4ubv_v, 4, byte_order);
2610}
2611
2612static void mesa_VertexAttrib4uiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2613{
2614 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4uiv_index, tvb, *offsetp, 4, byte_order);
2615 *offsetp += 4;
2616 listOfCard32(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4uiv_v, hf_x11_glx_render_VertexAttrib4uiv_v_item, 4, byte_order);
2617}
2618
2619static void mesa_VertexAttrib4usv(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2620{
2621 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4usv_index, tvb, *offsetp, 4, byte_order);
2622 *offsetp += 4;
2623 listOfCard16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4usv_v, hf_x11_glx_render_VertexAttrib4usv_v_item, 4, byte_order);
2624}
2625
2626static void mesa_MultiTexCoord1fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2627{
2628 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord1fvARB_target, tvb, *offsetp, 4, byte_order);
2629 *offsetp += 4;
2630 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord1fvARB_v, hf_x11_glx_render_MultiTexCoord1fvARB_v_item, 1, byte_order);
2631}
2632
2633static void mesa_MultiTexCoord2fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2634{
2635 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord2fvARB_target, tvb, *offsetp, 4, byte_order);
2636 *offsetp += 4;
2637 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord2fvARB_v, hf_x11_glx_render_MultiTexCoord2fvARB_v_item, 2, byte_order);
2638}
2639
2640static void mesa_MultiTexCoord3fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2641{
2642 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord3fvARB_target, tvb, *offsetp, 4, byte_order);
2643 *offsetp += 4;
2644 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord3fvARB_v, hf_x11_glx_render_MultiTexCoord3fvARB_v_item, 3, byte_order);
2645}
2646
2647static void mesa_MultiTexCoord4fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2648{
2649 proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord4fvARB_target, tvb, *offsetp, 4, byte_order);
2650 *offsetp += 4;
2651 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord4fvARB_v, hf_x11_glx_render_MultiTexCoord4fvARB_v_item, 4, byte_order);
2652}
2653
2654static void mesa_CurrentPaletteMatrixARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2655{
2656 proto_tree_add_item(t, hf_x11_glx_render_CurrentPaletteMatrixARB_index, tvb, *offsetp, 4, byte_order);
2657 *offsetp += 4;
2658}
2659
2660static void mesa_MatrixIndexubvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2661{
2662 int size;
2663 size = tvb_get_uint32(tvb, *offsetp, byte_order);
2664 proto_tree_add_item(t, hf_x11_glx_render_MatrixIndexubvARB_size, tvb, *offsetp, 4, byte_order);
2665 *offsetp += 4;
2666 listOfByte(tvb, offsetp, t, hf_x11_glx_render_MatrixIndexubvARB_indices, size, byte_order);
2667}
2668
2669static void mesa_MatrixIndexusvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2670{
2671 int size;
2672 size = tvb_get_uint32(tvb, *offsetp, byte_order);
2673 proto_tree_add_item(t, hf_x11_glx_render_MatrixIndexusvARB_size, tvb, *offsetp, 4, byte_order);
2674 *offsetp += 4;
2675 listOfCard16(tvb, offsetp, t, hf_x11_glx_render_MatrixIndexusvARB_indices, hf_x11_glx_render_MatrixIndexusvARB_indices_item, size, byte_order);
2676}
2677
2678static void mesa_MatrixIndexuivARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2679{
2680 int size;
2681 size = tvb_get_uint32(tvb, *offsetp, byte_order);
2682 proto_tree_add_item(t, hf_x11_glx_render_MatrixIndexuivARB_size, tvb, *offsetp, 4, byte_order);
2683 *offsetp += 4;
2684 listOfCard32(tvb, offsetp, t, hf_x11_glx_render_MatrixIndexuivARB_indices, hf_x11_glx_render_MatrixIndexuivARB_indices_item, size, byte_order);
2685}
2686
2687static void mesa_VertexAttrib1fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2688{
2689 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1fvARB_index, tvb, *offsetp, 4, byte_order);
2690 *offsetp += 4;
2691 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1fvARB_v, hf_x11_glx_render_VertexAttrib1fvARB_v_item, 1, byte_order);
2692}
2693
2694static void mesa_VertexAttrib2fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2695{
2696 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2fvARB_index, tvb, *offsetp, 4, byte_order);
2697 *offsetp += 4;
2698 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2fvARB_v, hf_x11_glx_render_VertexAttrib2fvARB_v_item, 2, byte_order);
2699}
2700
2701static void mesa_VertexAttrib3fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2702{
2703 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3fvARB_index, tvb, *offsetp, 4, byte_order);
2704 *offsetp += 4;
2705 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3fvARB_v, hf_x11_glx_render_VertexAttrib3fvARB_v_item, 3, byte_order);
2706}
2707
2708static void mesa_VertexAttrib4fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2709{
2710 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4fvARB_index, tvb, *offsetp, 4, byte_order);
2711 *offsetp += 4;
2712 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4fvARB_v, hf_x11_glx_render_VertexAttrib4fvARB_v_item, 4, byte_order);
2713}
2714
2715static void mesa_ProgramStringARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2716{
2717 int len;
2718 proto_tree_add_item(t, hf_x11_glx_render_ProgramStringARB_target, tvb, *offsetp, 4, byte_order);
2719 *offsetp += 4;
2720 proto_tree_add_item(t, hf_x11_glx_render_ProgramStringARB_format, tvb, *offsetp, 4, byte_order);
2721 *offsetp += 4;
2722 len = tvb_get_uint32(tvb, *offsetp, byte_order);
2723 proto_tree_add_item(t, hf_x11_glx_render_ProgramStringARB_len, tvb, *offsetp, 4, byte_order);
2724 *offsetp += 4;
2725 listOfByte(tvb, offsetp, t, hf_x11_glx_render_ProgramStringARB_string, len, byte_order);
2726}
2727
2728static void mesa_BindProgramARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2729{
2730 proto_tree_add_item(t, hf_x11_glx_render_BindProgramARB_target, tvb, *offsetp, 4, byte_order);
2731 *offsetp += 4;
2732 proto_tree_add_item(t, hf_x11_glx_render_BindProgramARB_program, tvb, *offsetp, 4, byte_order);
2733 *offsetp += 4;
2734}
2735
2736static void mesa_ProgramEnvParameter4dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2737{
2738 proto_tree_add_item(t, hf_x11_glx_render_ProgramEnvParameter4dvARB_target, tvb, *offsetp, 4, byte_order);
2739 *offsetp += 4;
2740 proto_tree_add_item(t, hf_x11_glx_render_ProgramEnvParameter4dvARB_index, tvb, *offsetp, 4, byte_order);
2741 *offsetp += 4;
2742 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramEnvParameter4dvARB_params, hf_x11_glx_render_ProgramEnvParameter4dvARB_params_item, 4, byte_order);
2743}
2744
2745static void mesa_ProgramEnvParameter4fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2746{
2747 proto_tree_add_item(t, hf_x11_glx_render_ProgramEnvParameter4fvARB_target, tvb, *offsetp, 4, byte_order);
2748 *offsetp += 4;
2749 proto_tree_add_item(t, hf_x11_glx_render_ProgramEnvParameter4fvARB_index, tvb, *offsetp, 4, byte_order);
2750 *offsetp += 4;
2751 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramEnvParameter4fvARB_params, hf_x11_glx_render_ProgramEnvParameter4fvARB_params_item, 4, byte_order);
2752}
2753
2754static void mesa_ProgramLocalParameter4dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2755{
2756 proto_tree_add_item(t, hf_x11_glx_render_ProgramLocalParameter4dvARB_target, tvb, *offsetp, 4, byte_order);
2757 *offsetp += 4;
2758 proto_tree_add_item(t, hf_x11_glx_render_ProgramLocalParameter4dvARB_index, tvb, *offsetp, 4, byte_order);
2759 *offsetp += 4;
2760 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramLocalParameter4dvARB_params, hf_x11_glx_render_ProgramLocalParameter4dvARB_params_item, 4, byte_order);
2761}
2762
2763static void mesa_ProgramLocalParameter4fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2764{
2765 proto_tree_add_item(t, hf_x11_glx_render_ProgramLocalParameter4fvARB_target, tvb, *offsetp, 4, byte_order);
2766 *offsetp += 4;
2767 proto_tree_add_item(t, hf_x11_glx_render_ProgramLocalParameter4fvARB_index, tvb, *offsetp, 4, byte_order);
2768 *offsetp += 4;
2769 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramLocalParameter4fvARB_params, hf_x11_glx_render_ProgramLocalParameter4fvARB_params_item, 4, byte_order);
2770}
2771
2772static void mesa_TexFilterFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2773{
2774 int n;
2775 proto_tree_add_item(t, hf_x11_glx_render_TexFilterFuncSGIS_target, tvb, *offsetp, 4, byte_order);
2776 *offsetp += 4;
2777 proto_tree_add_item(t, hf_x11_glx_render_TexFilterFuncSGIS_filter, tvb, *offsetp, 4, byte_order);
2778 *offsetp += 4;
2779 n = tvb_get_uint32(tvb, *offsetp, byte_order);
2780 proto_tree_add_item(t, hf_x11_glx_render_TexFilterFuncSGIS_n, tvb, *offsetp, 4, byte_order);
2781 *offsetp += 4;
2782 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexFilterFuncSGIS_weights, hf_x11_glx_render_TexFilterFuncSGIS_weights_item, n, byte_order);
2783}
2784
2785static void mesa_TexImage4DSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2786{
2787 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_swapbytes, tvb, *offsetp, 1, byte_order);
2788 *offsetp += 1;
2789 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_lsbfirst, tvb, *offsetp, 1, byte_order);
2790 *offsetp += 1;
2791 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
2792 *offsetp += 2;
2793 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_rowlength, tvb, *offsetp, 4, byte_order);
2794 *offsetp += 4;
2795 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_skiprows, tvb, *offsetp, 4, byte_order);
2796 *offsetp += 4;
2797 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_skippixels, tvb, *offsetp, 4, byte_order);
2798 *offsetp += 4;
2799 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_alignment, tvb, *offsetp, 4, byte_order);
2800 *offsetp += 4;
2801 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_target, tvb, *offsetp, 4, byte_order);
2802 *offsetp += 4;
2803 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_level, tvb, *offsetp, 4, byte_order);
2804 *offsetp += 4;
2805 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_internalformat, tvb, *offsetp, 4, byte_order);
2806 *offsetp += 4;
2807 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_width, tvb, *offsetp, 4, byte_order);
2808 *offsetp += 4;
2809 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_height, tvb, *offsetp, 4, byte_order);
2810 *offsetp += 4;
2811 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_depth, tvb, *offsetp, 4, byte_order);
2812 *offsetp += 4;
2813 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_size4d, tvb, *offsetp, 4, byte_order);
2814 *offsetp += 4;
2815 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_border, tvb, *offsetp, 4, byte_order);
2816 *offsetp += 4;
2817 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_format, tvb, *offsetp, 4, byte_order);
2818 *offsetp += 4;
2819 proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_type, tvb, *offsetp, 4, byte_order);
2820 *offsetp += 4;
2821 listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexImage4DSGIS_pixels, (length - 60) / 1, byte_order);
2822}
2823
2824static void mesa_TexSubImage4DSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2825{
2826 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_swapbytes, tvb, *offsetp, 1, byte_order);
2827 *offsetp += 1;
2828 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_lsbfirst, tvb, *offsetp, 1, byte_order);
2829 *offsetp += 1;
2830 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
2831 *offsetp += 2;
2832 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_rowlength, tvb, *offsetp, 4, byte_order);
2833 *offsetp += 4;
2834 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_skiprows, tvb, *offsetp, 4, byte_order);
2835 *offsetp += 4;
2836 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_skippixels, tvb, *offsetp, 4, byte_order);
2837 *offsetp += 4;
2838 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_alignment, tvb, *offsetp, 4, byte_order);
2839 *offsetp += 4;
2840 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_target, tvb, *offsetp, 4, byte_order);
2841 *offsetp += 4;
2842 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_level, tvb, *offsetp, 4, byte_order);
2843 *offsetp += 4;
2844 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_xoffset, tvb, *offsetp, 4, byte_order);
2845 *offsetp += 4;
2846 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_yoffset, tvb, *offsetp, 4, byte_order);
2847 *offsetp += 4;
2848 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_zoffset, tvb, *offsetp, 4, byte_order);
2849 *offsetp += 4;
2850 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_woffset, tvb, *offsetp, 4, byte_order);
2851 *offsetp += 4;
2852 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_width, tvb, *offsetp, 4, byte_order);
2853 *offsetp += 4;
2854 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_height, tvb, *offsetp, 4, byte_order);
2855 *offsetp += 4;
2856 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_depth, tvb, *offsetp, 4, byte_order);
2857 *offsetp += 4;
2858 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_size4d, tvb, *offsetp, 4, byte_order);
2859 *offsetp += 4;
2860 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_format, tvb, *offsetp, 4, byte_order);
2861 *offsetp += 4;
2862 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_type, tvb, *offsetp, 4, byte_order);
2863 *offsetp += 4;
2864 proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_UNUSED, tvb, *offsetp, 4, byte_order);
2865 *offsetp += 4;
2866 listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexSubImage4DSGIS_pixels, (length - 72) / 1, byte_order);
2867}
2868
2869static void mesa_DetailTexFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2870{
2871 int n;
2872 proto_tree_add_item(t, hf_x11_glx_render_DetailTexFuncSGIS_target, tvb, *offsetp, 4, byte_order);
2873 *offsetp += 4;
2874 n = tvb_get_uint32(tvb, *offsetp, byte_order);
2875 proto_tree_add_item(t, hf_x11_glx_render_DetailTexFuncSGIS_n, tvb, *offsetp, 4, byte_order);
2876 *offsetp += 4;
2877 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_DetailTexFuncSGIS_points, hf_x11_glx_render_DetailTexFuncSGIS_points_item, n, byte_order);
2878}
2879
2880static void mesa_SharpenTexFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2881{
2882 int n;
2883 proto_tree_add_item(t, hf_x11_glx_render_SharpenTexFuncSGIS_target, tvb, *offsetp, 4, byte_order);
2884 *offsetp += 4;
2885 n = tvb_get_uint32(tvb, *offsetp, byte_order);
2886 proto_tree_add_item(t, hf_x11_glx_render_SharpenTexFuncSGIS_n, tvb, *offsetp, 4, byte_order);
2887 *offsetp += 4;
2888 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_SharpenTexFuncSGIS_points, hf_x11_glx_render_SharpenTexFuncSGIS_points_item, n, byte_order);
2889}
2890
2891static void mesa_SampleMaskSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2892{
2893 proto_tree_add_item(t, hf_x11_glx_render_SampleMaskSGIS_value, tvb, *offsetp, 4, byte_order);
2894 *offsetp += 4;
2895 proto_tree_add_item(t, hf_x11_glx_render_SampleMaskSGIS_invert, tvb, *offsetp, 1, byte_order);
2896 *offsetp += 1;
2897}
2898
2899static void mesa_SamplePatternSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2900{
2901 proto_tree_add_item(t, hf_x11_glx_render_SamplePatternSGIS_pattern, tvb, *offsetp, 4, byte_order);
2902 *offsetp += 4;
2903}
2904
2905static void mesa_FrameZoomSGIX(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2906{
2907 proto_tree_add_item(t, hf_x11_glx_render_FrameZoomSGIX_factor, tvb, *offsetp, 4, byte_order);
2908 *offsetp += 4;
2909}
2910
2911static void mesa_TagSampleBufferSGIX(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
2912{
2913}
2914
2915static void mesa_ReferencePlaneSGIX(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2916{
2917 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ReferencePlaneSGIX_equation, hf_x11_glx_render_ReferencePlaneSGIX_equation_item, 4, byte_order);
2918}
2919
2920static void mesa_FogFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2921{
2922 int n;
2923 n = tvb_get_uint32(tvb, *offsetp, byte_order);
2924 proto_tree_add_item(t, hf_x11_glx_render_FogFuncSGIS_n, tvb, *offsetp, 4, byte_order);
2925 *offsetp += 4;
2926 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_FogFuncSGIS_points, hf_x11_glx_render_FogFuncSGIS_points_item, n, byte_order);
2927}
2928
2929static void mesa_SecondaryColor3fvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2930{
2931 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3fvEXT_v, hf_x11_glx_render_SecondaryColor3fvEXT_v_item, 3, byte_order);
2932}
2933
2934static void mesa_FogCoordfvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2935{
2936 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_FogCoordfvEXT_coord, hf_x11_glx_render_FogCoordfvEXT_coord_item, 1, byte_order);
2937}
2938
2939static void mesa_PixelTexGenSGIX(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2940{
2941 proto_tree_add_item(t, hf_x11_glx_render_PixelTexGenSGIX_mode, tvb, *offsetp, 4, byte_order);
2942 *offsetp += 4;
2943}
2944
2945static void mesa_VertexWeightfvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2946{
2947 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexWeightfvEXT_weight, hf_x11_glx_render_VertexWeightfvEXT_weight_item, 1, byte_order);
2948}
2949
2950static void mesa_CombinerParameterfvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2951{
2952 proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterfvNV_pname, tvb, *offsetp, 4, byte_order);
2953 *offsetp += 4;
2954 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_CombinerParameterfvNV_params, hf_x11_glx_render_CombinerParameterfvNV_params_item, (length - 4) / 4, byte_order);
2955}
2956
2957static void mesa_CombinerParameterfNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2958{
2959 proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterfNV_pname, tvb, *offsetp, 4, byte_order);
2960 *offsetp += 4;
2961 proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterfNV_param, tvb, *offsetp, 4, byte_order);
2962 *offsetp += 4;
2963}
2964
2965static void mesa_CombinerParameterivNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2966{
2967 proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterivNV_pname, tvb, *offsetp, 4, byte_order);
2968 *offsetp += 4;
2969 listOfInt32(tvb, offsetp, t, hf_x11_glx_render_CombinerParameterivNV_params, hf_x11_glx_render_CombinerParameterivNV_params_item, (length - 4) / 4, byte_order);
2970}
2971
2972static void mesa_CombinerParameteriNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2973{
2974 proto_tree_add_item(t, hf_x11_glx_render_CombinerParameteriNV_pname, tvb, *offsetp, 4, byte_order);
2975 *offsetp += 4;
2976 proto_tree_add_item(t, hf_x11_glx_render_CombinerParameteriNV_param, tvb, *offsetp, 4, byte_order);
2977 *offsetp += 4;
2978}
2979
2980static void mesa_CombinerInputNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2981{
2982 proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_stage, tvb, *offsetp, 4, byte_order);
2983 *offsetp += 4;
2984 proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_portion, tvb, *offsetp, 4, byte_order);
2985 *offsetp += 4;
2986 proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_variable, tvb, *offsetp, 4, byte_order);
2987 *offsetp += 4;
2988 proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_input, tvb, *offsetp, 4, byte_order);
2989 *offsetp += 4;
2990 proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_mapping, tvb, *offsetp, 4, byte_order);
2991 *offsetp += 4;
2992 proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_componentUsage, tvb, *offsetp, 4, byte_order);
2993 *offsetp += 4;
2994}
2995
2996static void mesa_CombinerOutputNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
2997{
2998 proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_stage, tvb, *offsetp, 4, byte_order);
2999 *offsetp += 4;
3000 proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_portion, tvb, *offsetp, 4, byte_order);
3001 *offsetp += 4;
3002 proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_abOutput, tvb, *offsetp, 4, byte_order);
3003 *offsetp += 4;
3004 proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_cdOutput, tvb, *offsetp, 4, byte_order);
3005 *offsetp += 4;
3006 proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_sumOutput, tvb, *offsetp, 4, byte_order);
3007 *offsetp += 4;
3008 proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_scale, tvb, *offsetp, 4, byte_order);
3009 *offsetp += 4;
3010 proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_bias, tvb, *offsetp, 4, byte_order);
3011 *offsetp += 4;
3012 proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_abDotProduct, tvb, *offsetp, 1, byte_order);
3013 *offsetp += 1;
3014 proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_cdDotProduct, tvb, *offsetp, 1, byte_order);
3015 *offsetp += 1;
3016 proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_muxSum, tvb, *offsetp, 1, byte_order);
3017 *offsetp += 1;
3018}
3019
3020static void mesa_FinalCombinerInputNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3021{
3022 proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_variable, tvb, *offsetp, 4, byte_order);
3023 *offsetp += 4;
3024 proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_input, tvb, *offsetp, 4, byte_order);
3025 *offsetp += 4;
3026 proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_mapping, tvb, *offsetp, 4, byte_order);
3027 *offsetp += 4;
3028 proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_componentUsage, tvb, *offsetp, 4, byte_order);
3029 *offsetp += 4;
3030}
3031
3032static void mesa_TextureColorMaskSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3033{
3034 proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_red, tvb, *offsetp, 1, byte_order);
3035 *offsetp += 1;
3036 proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_green, tvb, *offsetp, 1, byte_order);
3037 *offsetp += 1;
3038 proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_blue, tvb, *offsetp, 1, byte_order);
3039 *offsetp += 1;
3040 proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_alpha, tvb, *offsetp, 1, byte_order);
3041 *offsetp += 1;
3042}
3043
3044static void mesa_ExecuteProgramNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3045{
3046 proto_tree_add_item(t, hf_x11_glx_render_ExecuteProgramNV_target, tvb, *offsetp, 4, byte_order);
3047 *offsetp += 4;
3048 proto_tree_add_item(t, hf_x11_glx_render_ExecuteProgramNV_id, tvb, *offsetp, 4, byte_order);
3049 *offsetp += 4;
3050 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ExecuteProgramNV_params, hf_x11_glx_render_ExecuteProgramNV_params_item, 4, byte_order);
3051}
3052
3053static void mesa_LoadProgramNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3054{
3055 int len;
3056 proto_tree_add_item(t, hf_x11_glx_render_LoadProgramNV_target, tvb, *offsetp, 4, byte_order);
3057 *offsetp += 4;
3058 proto_tree_add_item(t, hf_x11_glx_render_LoadProgramNV_id, tvb, *offsetp, 4, byte_order);
3059 *offsetp += 4;
3060 len = tvb_get_uint32(tvb, *offsetp, byte_order);
3061 proto_tree_add_item(t, hf_x11_glx_render_LoadProgramNV_len, tvb, *offsetp, 4, byte_order);
3062 *offsetp += 4;
3063 listOfByte(tvb, offsetp, t, hf_x11_glx_render_LoadProgramNV_program, len, byte_order);
3064}
3065
3066static void mesa_ProgramParameters4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3067{
3068 int num;
3069 proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4dvNV_target, tvb, *offsetp, 4, byte_order);
3070 *offsetp += 4;
3071 proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4dvNV_index, tvb, *offsetp, 4, byte_order);
3072 *offsetp += 4;
3073 num = tvb_get_uint32(tvb, *offsetp, byte_order);
3074 proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4dvNV_num, tvb, *offsetp, 4, byte_order);
3075 *offsetp += 4;
3076 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramParameters4dvNV_params, hf_x11_glx_render_ProgramParameters4dvNV_params_item, num, byte_order);
3077}
3078
3079static void mesa_ProgramParameters4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3080{
3081 int num;
3082 proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4fvNV_target, tvb, *offsetp, 4, byte_order);
3083 *offsetp += 4;
3084 proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4fvNV_index, tvb, *offsetp, 4, byte_order);
3085 *offsetp += 4;
3086 num = tvb_get_uint32(tvb, *offsetp, byte_order);
3087 proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4fvNV_num, tvb, *offsetp, 4, byte_order);
3088 *offsetp += 4;
3089 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramParameters4fvNV_params, hf_x11_glx_render_ProgramParameters4fvNV_params_item, num, byte_order);
3090}
3091
3092static void mesa_RequestResidentProgramsNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3093{
3094 int n;
3095 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3096 proto_tree_add_item(t, hf_x11_glx_render_RequestResidentProgramsNV_n, tvb, *offsetp, 4, byte_order);
3097 *offsetp += 4;
3098 listOfCard32(tvb, offsetp, t, hf_x11_glx_render_RequestResidentProgramsNV_ids, hf_x11_glx_render_RequestResidentProgramsNV_ids_item, n, byte_order);
3099}
3100
3101static void mesa_TrackMatrixNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3102{
3103 proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_target, tvb, *offsetp, 4, byte_order);
3104 *offsetp += 4;
3105 proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_address, tvb, *offsetp, 4, byte_order);
3106 *offsetp += 4;
3107 proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_matrix, tvb, *offsetp, 4, byte_order);
3108 *offsetp += 4;
3109 proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_transform, tvb, *offsetp, 4, byte_order);
3110 *offsetp += 4;
3111}
3112
3113static void mesa_VertexAttrib1svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3114{
3115 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1svNV_index, tvb, *offsetp, 4, byte_order);
3116 *offsetp += 4;
3117 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1svNV_v, hf_x11_glx_render_VertexAttrib1svNV_v_item, 1, byte_order);
3118}
3119
3120static void mesa_VertexAttrib2svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3121{
3122 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2svNV_index, tvb, *offsetp, 4, byte_order);
3123 *offsetp += 4;
3124 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2svNV_v, hf_x11_glx_render_VertexAttrib2svNV_v_item, 2, byte_order);
3125}
3126
3127static void mesa_VertexAttrib3svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3128{
3129 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3svNV_index, tvb, *offsetp, 4, byte_order);
3130 *offsetp += 4;
3131 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3svNV_v, hf_x11_glx_render_VertexAttrib3svNV_v_item, 3, byte_order);
3132}
3133
3134static void mesa_VertexAttrib4svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3135{
3136 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4svNV_index, tvb, *offsetp, 4, byte_order);
3137 *offsetp += 4;
3138 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4svNV_v, hf_x11_glx_render_VertexAttrib4svNV_v_item, 4, byte_order);
3139}
3140
3141static void mesa_VertexAttrib1fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3142{
3143 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1fvNV_index, tvb, *offsetp, 4, byte_order);
3144 *offsetp += 4;
3145 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1fvNV_v, hf_x11_glx_render_VertexAttrib1fvNV_v_item, 1, byte_order);
3146}
3147
3148static void mesa_VertexAttrib2fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3149{
3150 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2fvNV_index, tvb, *offsetp, 4, byte_order);
3151 *offsetp += 4;
3152 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2fvNV_v, hf_x11_glx_render_VertexAttrib2fvNV_v_item, 2, byte_order);
3153}
3154
3155static void mesa_VertexAttrib3fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3156{
3157 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3fvNV_index, tvb, *offsetp, 4, byte_order);
3158 *offsetp += 4;
3159 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3fvNV_v, hf_x11_glx_render_VertexAttrib3fvNV_v_item, 3, byte_order);
3160}
3161
3162static void mesa_VertexAttrib4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3163{
3164 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4fvNV_index, tvb, *offsetp, 4, byte_order);
3165 *offsetp += 4;
3166 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4fvNV_v, hf_x11_glx_render_VertexAttrib4fvNV_v_item, 4, byte_order);
3167}
3168
3169static void mesa_VertexAttrib1dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3170{
3171 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1dvNV_index, tvb, *offsetp, 4, byte_order);
3172 *offsetp += 4;
3173 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1dvNV_v, hf_x11_glx_render_VertexAttrib1dvNV_v_item, 1, byte_order);
3174}
3175
3176static void mesa_VertexAttrib2dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3177{
3178 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2dvNV_index, tvb, *offsetp, 4, byte_order);
3179 *offsetp += 4;
3180 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2dvNV_v, hf_x11_glx_render_VertexAttrib2dvNV_v_item, 2, byte_order);
3181}
3182
3183static void mesa_VertexAttrib3dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3184{
3185 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3dvNV_index, tvb, *offsetp, 4, byte_order);
3186 *offsetp += 4;
3187 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3dvNV_v, hf_x11_glx_render_VertexAttrib3dvNV_v_item, 3, byte_order);
3188}
3189
3190static void mesa_VertexAttrib4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3191{
3192 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4dvNV_index, tvb, *offsetp, 4, byte_order);
3193 *offsetp += 4;
3194 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4dvNV_v, hf_x11_glx_render_VertexAttrib4dvNV_v_item, 4, byte_order);
3195}
3196
3197static void mesa_VertexAttrib4ubvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3198{
3199 proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4ubvNV_index, tvb, *offsetp, 4, byte_order);
3200 *offsetp += 4;
3201 listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4ubvNV_v, 4, byte_order);
3202}
3203
3204static void mesa_VertexAttribs1svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3205{
3206 int n;
3207 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1svNV_index, tvb, *offsetp, 4, byte_order);
3208 *offsetp += 4;
3209 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3210 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1svNV_n, tvb, *offsetp, 4, byte_order);
3211 *offsetp += 4;
3212 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs1svNV_v, hf_x11_glx_render_VertexAttribs1svNV_v_item, n, byte_order);
3213}
3214
3215static void mesa_VertexAttribs2svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3216{
3217 int n;
3218 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2svNV_index, tvb, *offsetp, 4, byte_order);
3219 *offsetp += 4;
3220 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3221 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2svNV_n, tvb, *offsetp, 4, byte_order);
3222 *offsetp += 4;
3223 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs2svNV_v, hf_x11_glx_render_VertexAttribs2svNV_v_item, n, byte_order);
3224}
3225
3226static void mesa_VertexAttribs3svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3227{
3228 int n;
3229 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3svNV_index, tvb, *offsetp, 4, byte_order);
3230 *offsetp += 4;
3231 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3232 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3svNV_n, tvb, *offsetp, 4, byte_order);
3233 *offsetp += 4;
3234 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs3svNV_v, hf_x11_glx_render_VertexAttribs3svNV_v_item, n, byte_order);
3235}
3236
3237static void mesa_VertexAttribs4svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3238{
3239 int n;
3240 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4svNV_index, tvb, *offsetp, 4, byte_order);
3241 *offsetp += 4;
3242 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3243 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4svNV_n, tvb, *offsetp, 4, byte_order);
3244 *offsetp += 4;
3245 listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4svNV_v, hf_x11_glx_render_VertexAttribs4svNV_v_item, n, byte_order);
3246}
3247
3248static void mesa_VertexAttribs1fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3249{
3250 int n;
3251 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1fvNV_index, tvb, *offsetp, 4, byte_order);
3252 *offsetp += 4;
3253 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3254 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1fvNV_n, tvb, *offsetp, 4, byte_order);
3255 *offsetp += 4;
3256 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs1fvNV_v, hf_x11_glx_render_VertexAttribs1fvNV_v_item, n, byte_order);
3257}
3258
3259static void mesa_VertexAttribs2fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3260{
3261 int n;
3262 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2fvNV_index, tvb, *offsetp, 4, byte_order);
3263 *offsetp += 4;
3264 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3265 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2fvNV_n, tvb, *offsetp, 4, byte_order);
3266 *offsetp += 4;
3267 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs2fvNV_v, hf_x11_glx_render_VertexAttribs2fvNV_v_item, n, byte_order);
3268}
3269
3270static void mesa_VertexAttribs3fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3271{
3272 int n;
3273 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3fvNV_index, tvb, *offsetp, 4, byte_order);
3274 *offsetp += 4;
3275 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3276 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3fvNV_n, tvb, *offsetp, 4, byte_order);
3277 *offsetp += 4;
3278 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs3fvNV_v, hf_x11_glx_render_VertexAttribs3fvNV_v_item, n, byte_order);
3279}
3280
3281static void mesa_VertexAttribs4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3282{
3283 int n;
3284 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4fvNV_index, tvb, *offsetp, 4, byte_order);
3285 *offsetp += 4;
3286 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3287 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4fvNV_n, tvb, *offsetp, 4, byte_order);
3288 *offsetp += 4;
3289 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4fvNV_v, hf_x11_glx_render_VertexAttribs4fvNV_v_item, n, byte_order);
3290}
3291
3292static void mesa_VertexAttribs1dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3293{
3294 int n;
3295 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1dvNV_index, tvb, *offsetp, 4, byte_order);
3296 *offsetp += 4;
3297 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3298 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1dvNV_n, tvb, *offsetp, 4, byte_order);
3299 *offsetp += 4;
3300 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs1dvNV_v, hf_x11_glx_render_VertexAttribs1dvNV_v_item, n, byte_order);
3301}
3302
3303static void mesa_VertexAttribs2dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3304{
3305 int n;
3306 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2dvNV_index, tvb, *offsetp, 4, byte_order);
3307 *offsetp += 4;
3308 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3309 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2dvNV_n, tvb, *offsetp, 4, byte_order);
3310 *offsetp += 4;
3311 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs2dvNV_v, hf_x11_glx_render_VertexAttribs2dvNV_v_item, n, byte_order);
3312}
3313
3314static void mesa_VertexAttribs3dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3315{
3316 int n;
3317 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3dvNV_index, tvb, *offsetp, 4, byte_order);
3318 *offsetp += 4;
3319 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3320 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3dvNV_n, tvb, *offsetp, 4, byte_order);
3321 *offsetp += 4;
3322 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs3dvNV_v, hf_x11_glx_render_VertexAttribs3dvNV_v_item, n, byte_order);
3323}
3324
3325static void mesa_VertexAttribs4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3326{
3327 int n;
3328 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4dvNV_index, tvb, *offsetp, 4, byte_order);
3329 *offsetp += 4;
3330 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3331 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4dvNV_n, tvb, *offsetp, 4, byte_order);
3332 *offsetp += 4;
3333 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4dvNV_v, hf_x11_glx_render_VertexAttribs4dvNV_v_item, n, byte_order);
3334}
3335
3336static void mesa_VertexAttribs4ubvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3337{
3338 int n;
3339 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4ubvNV_index, tvb, *offsetp, 4, byte_order);
3340 *offsetp += 4;
3341 n = tvb_get_uint32(tvb, *offsetp, byte_order);
3342 proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4ubvNV_n, tvb, *offsetp, 4, byte_order);
3343 *offsetp += 4;
3344 listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4ubvNV_v, n, byte_order);
3345}
3346
3347static void mesa_ActiveStencilFaceEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3348{
3349 proto_tree_add_item(t, hf_x11_glx_render_ActiveStencilFaceEXT_face, tvb, *offsetp, 4, byte_order);
3350 *offsetp += 4;
3351}
3352
3353static void mesa_ProgramNamedParameter4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3354{
3355 int len;
3356 proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4fvNV_id, tvb, *offsetp, 4, byte_order);
3357 *offsetp += 4;
3358 len = tvb_get_uint32(tvb, *offsetp, byte_order);
3359 proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4fvNV_len, tvb, *offsetp, 4, byte_order);
3360 *offsetp += 4;
3361 listOfByte(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4fvNV_name, len, byte_order);
3362 listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4fvNV_v, hf_x11_glx_render_ProgramNamedParameter4fvNV_v_item, 4, byte_order);
3363}
3364
3365static void mesa_ProgramNamedParameter4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3366{
3367 int len;
3368 proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4dvNV_id, tvb, *offsetp, 4, byte_order);
3369 *offsetp += 4;
3370 len = tvb_get_uint32(tvb, *offsetp, byte_order);
3371 proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4dvNV_len, tvb, *offsetp, 4, byte_order);
3372 *offsetp += 4;
3373 listOfByte(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4dvNV_name, len, byte_order);
3374 listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4dvNV_v, hf_x11_glx_render_ProgramNamedParameter4dvNV_v_item, 4, byte_order);
3375}
3376
3377static void mesa_DepthBoundsEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
3378{
3379 proto_tree_add_item(t, hf_x11_glx_render_DepthBoundsEXT_zmin, tvb, *offsetp, 8, byte_order);
3380 *offsetp += 8;
3381 proto_tree_add_item(t, hf_x11_glx_render_DepthBoundsEXT_zmax, tvb, *offsetp, 8, byte_order);
3382 *offsetp += 8;
3383}
3384
3385static const value_string glx_render_op_name[] = {
3386 { 1, "glCallList" },
3387 { 2, "glCallLists" },
3388 { 3, "glListBase" },
3389 { 4, "glBegin" },
3390 { 5, "glBitmap" },
3391 { 6, "glColor3bv" },
3392 { 7, "glColor3dv" },
3393 { 8, "glColor3fv" },
3394 { 9, "glColor3iv" },
3395 { 10, "glColor3sv" },
3396 { 11, "glColor3ubv" },
3397 { 12, "glColor3uiv" },
3398 { 13, "glColor3usv" },
3399 { 14, "glColor4bv" },
3400 { 15, "glColor4dv" },
3401 { 16, "glColor4fv" },
3402 { 17, "glColor4iv" },
3403 { 18, "glColor4sv" },
3404 { 19, "glColor4ubv" },
3405 { 20, "glColor4uiv" },
3406 { 21, "glColor4usv" },
3407 { 22, "glEdgeFlagv" },
3408 { 23, "glEnd" },
3409 { 24, "glIndexdv" },
3410 { 25, "glIndexfv" },
3411 { 26, "glIndexiv" },
3412 { 27, "glIndexsv" },
3413 { 28, "glNormal3bv" },
3414 { 29, "glNormal3dv" },
3415 { 30, "glNormal3fv" },
3416 { 31, "glNormal3iv" },
3417 { 32, "glNormal3sv" },
3418 { 33, "glRasterPos2dv" },
3419 { 34, "glRasterPos2fv" },
3420 { 35, "glRasterPos2iv" },
3421 { 36, "glRasterPos2sv" },
3422 { 37, "glRasterPos3dv" },
3423 { 38, "glRasterPos3fv" },
3424 { 39, "glRasterPos3iv" },
3425 { 40, "glRasterPos3sv" },
3426 { 41, "glRasterPos4dv" },
3427 { 42, "glRasterPos4fv" },
3428 { 43, "glRasterPos4iv" },
3429 { 44, "glRasterPos4sv" },
3430 { 45, "glRectdv" },
3431 { 46, "glRectfv" },
3432 { 47, "glRectiv" },
3433 { 48, "glRectsv" },
3434 { 49, "glTexCoord1dv" },
3435 { 50, "glTexCoord1fv" },
3436 { 51, "glTexCoord1iv" },
3437 { 52, "glTexCoord1sv" },
3438 { 53, "glTexCoord2dv" },
3439 { 54, "glTexCoord2fv" },
3440 { 55, "glTexCoord2iv" },
3441 { 56, "glTexCoord2sv" },
3442 { 57, "glTexCoord3dv" },
3443 { 58, "glTexCoord3fv" },
3444 { 59, "glTexCoord3iv" },
3445 { 60, "glTexCoord3sv" },
3446 { 61, "glTexCoord4dv" },
3447 { 62, "glTexCoord4fv" },
3448 { 63, "glTexCoord4iv" },
3449 { 64, "glTexCoord4sv" },
3450 { 65, "glVertex2dv" },
3451 { 66, "glVertex2fv" },
3452 { 67, "glVertex2iv" },
3453 { 68, "glVertex2sv" },
3454 { 69, "glVertex3dv" },
3455 { 70, "glVertex3fv" },
3456 { 71, "glVertex3iv" },
3457 { 72, "glVertex3sv" },
3458 { 73, "glVertex4dv" },
3459 { 74, "glVertex4fv" },
3460 { 75, "glVertex4iv" },
3461 { 76, "glVertex4sv" },
3462 { 77, "glClipPlane" },
3463 { 78, "glColorMaterial" },
3464 { 79, "glCullFace" },
3465 { 80, "glFogf" },
3466 { 81, "glFogfv" },
3467 { 82, "glFogi" },
3468 { 83, "glFogiv" },
3469 { 84, "glFrontFace" },
3470 { 85, "glHint" },
3471 { 86, "glLightf" },
3472 { 87, "glLightfv" },
3473 { 88, "glLighti" },
3474 { 89, "glLightiv" },
3475 { 90, "glLightModelf" },
3476 { 91, "glLightModelfv" },
3477 { 92, "glLightModeli" },
3478 { 93, "glLightModeliv" },
3479 { 94, "glLineStipple" },
3480 { 95, "glLineWidth" },
3481 { 96, "glMaterialf" },
3482 { 97, "glMaterialfv" },
3483 { 98, "glMateriali" },
3484 { 99, "glMaterialiv" },
3485 { 100, "glPointSize" },
3486 { 101, "glPolygonMode" },
3487 { 102, "glPolygonStipple" },
3488 { 103, "glScissor" },
3489 { 104, "glShadeModel" },
3490 { 105, "glTexParameterf" },
3491 { 106, "glTexParameterfv" },
3492 { 107, "glTexParameteri" },
3493 { 108, "glTexParameteriv" },
3494 { 109, "glTexImage1D" },
3495 { 110, "glTexImage2D" },
3496 { 111, "glTexEnvf" },
3497 { 112, "glTexEnvfv" },
3498 { 113, "glTexEnvi" },
3499 { 114, "glTexEnviv" },
3500 { 115, "glTexGend" },
3501 { 116, "glTexGendv" },
3502 { 117, "glTexGenf" },
3503 { 118, "glTexGenfv" },
3504 { 119, "glTexGeni" },
3505 { 120, "glTexGeniv" },
3506 { 121, "glInitNames" },
3507 { 122, "glLoadName" },
3508 { 123, "glPassThrough" },
3509 { 124, "glPopName" },
3510 { 125, "glPushName" },
3511 { 126, "glDrawBuffer" },
3512 { 127, "glClear" },
3513 { 128, "glClearAccum" },
3514 { 129, "glClearIndex" },
3515 { 130, "glClearColor" },
3516 { 131, "glClearStencil" },
3517 { 132, "glClearDepth" },
3518 { 133, "glStencilMask" },
3519 { 134, "glColorMask" },
3520 { 135, "glDepthMask" },
3521 { 136, "glIndexMask" },
3522 { 137, "glAccum" },
3523 { 138, "glDisable" },
3524 { 139, "glEnable" },
3525 { 141, "glPopAttrib" },
3526 { 142, "glPushAttrib" },
3527 { 143, "glMap1d" },
3528 { 144, "glMap1f" },
3529 { 145, "glMap2d" },
3530 { 146, "glMap2f" },
3531 { 147, "glMapGrid1d" },
3532 { 148, "glMapGrid1f" },
3533 { 149, "glMapGrid2d" },
3534 { 150, "glMapGrid2f" },
3535 { 151, "glEvalCoord1dv" },
3536 { 152, "glEvalCoord1fv" },
3537 { 153, "glEvalCoord2dv" },
3538 { 154, "glEvalCoord2fv" },
3539 { 155, "glEvalMesh1" },
3540 { 156, "glEvalPoint1" },
3541 { 157, "glEvalMesh2" },
3542 { 158, "glEvalPoint2" },
3543 { 159, "glAlphaFunc" },
3544 { 160, "glBlendFunc" },
3545 { 161, "glLogicOp" },
3546 { 162, "glStencilFunc" },
3547 { 163, "glStencilOp" },
3548 { 164, "glDepthFunc" },
3549 { 165, "glPixelZoom" },
3550 { 166, "glPixelTransferf" },
3551 { 167, "glPixelTransferi" },
3552 { 168, "glPixelMapfv" },
3553 { 169, "glPixelMapuiv" },
3554 { 170, "glPixelMapusv" },
3555 { 171, "glReadBuffer" },
3556 { 172, "glCopyPixels" },
3557 { 173, "glDrawPixels" },
3558 { 174, "glDepthRange" },
3559 { 175, "glFrustum" },
3560 { 176, "glLoadIdentity" },
3561 { 177, "glLoadMatrixf" },
3562 { 178, "glLoadMatrixd" },
3563 { 179, "glMatrixMode" },
3564 { 180, "glMultMatrixf" },
3565 { 181, "glMultMatrixd" },
3566 { 182, "glOrtho" },
3567 { 183, "glPopMatrix" },
3568 { 184, "glPushMatrix" },
3569 { 185, "glRotated" },
3570 { 186, "glRotatef" },
3571 { 187, "glScaled" },
3572 { 188, "glScalef" },
3573 { 189, "glTranslated" },
3574 { 190, "glTranslatef" },
3575 { 191, "glViewport" },
3576 { 192, "glPolygonOffset" },
3577 { 193, "glDrawArrays" },
3578 { 194, "glIndexubv" },
3579 { 195, "glColorSubTable" },
3580 { 196, "glCopyColorSubTable" },
3581 { 197, "glActiveTexture" },
3582 { 198, "glMultiTexCoord1dv" },
3583 { 199, "glMultiTexCoord1fvARB" },
3584 { 200, "glMultiTexCoord1iv" },
3585 { 201, "glMultiTexCoord1sv" },
3586 { 202, "glMultiTexCoord2dv" },
3587 { 203, "glMultiTexCoord2fvARB" },
3588 { 204, "glMultiTexCoord2iv" },
3589 { 205, "glMultiTexCoord2sv" },
3590 { 206, "glMultiTexCoord3dv" },
3591 { 207, "glMultiTexCoord3fvARB" },
3592 { 208, "glMultiTexCoord3iv" },
3593 { 209, "glMultiTexCoord3sv" },
3594 { 210, "glMultiTexCoord4dv" },
3595 { 211, "glMultiTexCoord4fvARB" },
3596 { 212, "glMultiTexCoord4iv" },
3597 { 213, "glMultiTexCoord4sv" },
3598 { 214, "glCompressedTexImage1D" },
3599 { 215, "glCompressedTexImage2D" },
3600 { 216, "glCompressedTexImage3D" },
3601 { 217, "glCompressedTexSubImage1D" },
3602 { 218, "glCompressedTexSubImage2D" },
3603 { 219, "glCompressedTexSubImage3D" },
3604 { 229, "glSampleCoverage" },
3605 { 230, "glWindowPos3fv" },
3606 { 231, "glBeginQuery" },
3607 { 232, "glEndQuery" },
3608 { 233, "glDrawBuffers" },
3609 { 2048, "glSampleMaskSGIS" },
3610 { 2049, "glSamplePatternSGIS" },
3611 { 2050, "glTagSampleBufferSGIX" },
3612 { 2051, "glDetailTexFuncSGIS" },
3613 { 2052, "glSharpenTexFuncSGIS" },
3614 { 2053, "glColorTable" },
3615 { 2054, "glColorTableParameterfv" },
3616 { 2055, "glColorTableParameteriv" },
3617 { 2056, "glCopyColorTable" },
3618 { 2057, "glTexImage4DSGIS" },
3619 { 2058, "glTexSubImage4DSGIS" },
3620 { 2059, "glPixelTexGenSGIX" },
3621 { 2064, "glTexFilterFuncSGIS" },
3622 { 2065, "glPointParameterf" },
3623 { 2066, "glPointParameterfv" },
3624 { 2067, "glFogFuncSGIS" },
3625 { 2071, "glReferencePlaneSGIX" },
3626 { 2072, "glFrameZoomSGIX" },
3627 { 2082, "glTextureColorMaskSGIS" },
3628 { 4096, "glBlendColor" },
3629 { 4097, "glBlendEquation" },
3630 { 4099, "glTexSubImage1D" },
3631 { 4100, "glTexSubImage2D" },
3632 { 4101, "glConvolutionFilter1D" },
3633 { 4102, "glConvolutionFilter2D" },
3634 { 4103, "glConvolutionParameterf" },
3635 { 4104, "glConvolutionParameterfv" },
3636 { 4105, "glConvolutionParameteri" },
3637 { 4106, "glConvolutionParameteriv" },
3638 { 4107, "glCopyConvolutionFilter1D" },
3639 { 4108, "glCopyConvolutionFilter2D" },
3640 { 4109, "glSeparableFilter2D" },
3641 { 4110, "glHistogram" },
3642 { 4111, "glMinmax" },
3643 { 4112, "glResetHistogram" },
3644 { 4113, "glResetMinmax" },
3645 { 4114, "glTexImage3D" },
3646 { 4115, "glTexSubImage3D" },
3647 { 4117, "glBindTexture" },
3648 { 4118, "glPrioritizeTextures" },
3649 { 4119, "glCopyTexImage1D" },
3650 { 4120, "glCopyTexImage2D" },
3651 { 4121, "glCopyTexSubImage1D" },
3652 { 4122, "glCopyTexSubImage2D" },
3653 { 4123, "glCopyTexSubImage3D" },
3654 { 4124, "glFogCoordfvEXT" },
3655 { 4125, "glFogCoorddv" },
3656 { 4126, "glSecondaryColor3bv" },
3657 { 4127, "glSecondaryColor3sv" },
3658 { 4128, "glSecondaryColor3iv" },
3659 { 4129, "glSecondaryColor3fvEXT" },
3660 { 4130, "glSecondaryColor3dv" },
3661 { 4131, "glSecondaryColor3ubv" },
3662 { 4132, "glSecondaryColor3usv" },
3663 { 4133, "glSecondaryColor3uiv" },
3664 { 4134, "glBlendFuncSeparate" },
3665 { 4135, "glVertexWeightfvEXT" },
3666 { 4136, "glCombinerParameterfNV" },
3667 { 4137, "glCombinerParameterfvNV" },
3668 { 4138, "glCombinerParameteriNV" },
3669 { 4139, "glCombinerParameterivNV" },
3670 { 4140, "glCombinerInputNV" },
3671 { 4141, "glCombinerOutputNV" },
3672 { 4142, "glFinalCombinerInputNV" },
3673 { 4180, "glBindProgramARB" },
3674 { 4181, "glExecuteProgramNV" },
3675 { 4182, "glRequestResidentProgramsNV" },
3676 { 4183, "glLoadProgramNV" },
3677 { 4184, "glProgramEnvParameter4fvARB" },
3678 { 4185, "glProgramEnvParameter4dvARB" },
3679 { 4186, "glProgramParameters4fvNV" },
3680 { 4187, "glProgramParameters4dvNV" },
3681 { 4188, "glTrackMatrixNV" },
3682 { 4189, "glVertexAttrib1sv" },
3683 { 4190, "glVertexAttrib2sv" },
3684 { 4191, "glVertexAttrib3sv" },
3685 { 4192, "glVertexAttrib4sv" },
3686 { 4193, "glVertexAttrib1fvARB" },
3687 { 4194, "glVertexAttrib2fvARB" },
3688 { 4195, "glVertexAttrib3fvARB" },
3689 { 4196, "glVertexAttrib4fvARB" },
3690 { 4197, "glVertexAttrib1dv" },
3691 { 4198, "glVertexAttrib2dv" },
3692 { 4199, "glVertexAttrib3dv" },
3693 { 4200, "glVertexAttrib4dv" },
3694 { 4201, "glVertexAttrib4Nubv" },
3695 { 4202, "glVertexAttribs1svNV" },
3696 { 4203, "glVertexAttribs2svNV" },
3697 { 4204, "glVertexAttribs3svNV" },
3698 { 4205, "glVertexAttribs4svNV" },
3699 { 4206, "glVertexAttribs1fvNV" },
3700 { 4207, "glVertexAttribs2fvNV" },
3701 { 4208, "glVertexAttribs3fvNV" },
3702 { 4209, "glVertexAttribs4fvNV" },
3703 { 4210, "glVertexAttribs1dvNV" },
3704 { 4211, "glVertexAttribs2dvNV" },
3705 { 4212, "glVertexAttribs3dvNV" },
3706 { 4213, "glVertexAttribs4dvNV" },
3707 { 4214, "glVertexAttribs4ubvNV" },
3708 { 4215, "glProgramLocalParameter4fvARB" },
3709 { 4216, "glProgramLocalParameter4dvARB" },
3710 { 4217, "glProgramStringARB" },
3711 { 4218, "glProgramNamedParameter4fvNV" },
3712 { 4219, "glProgramNamedParameter4dvNV" },
3713 { 4220, "glActiveStencilFaceEXT" },
3714 { 4221, "glPointParameteri" },
3715 { 4222, "glPointParameteriv" },
3716 { 4228, "glBlendEquationSeparate" },
3717 { 4229, "glDepthBoundsEXT" },
3718 { 4230, "glVertexAttrib4bv" },
3719 { 4231, "glVertexAttrib4iv" },
3720 { 4232, "glVertexAttrib4ubv" },
3721 { 4233, "glVertexAttrib4usv" },
3722 { 4234, "glVertexAttrib4uiv" },
3723 { 4235, "glVertexAttrib4Nbv" },
3724 { 4236, "glVertexAttrib4Nsv" },
3725 { 4237, "glVertexAttrib4Niv" },
3726 { 4238, "glVertexAttrib4Nusv" },
3727 { 4239, "glVertexAttrib4Nuiv" },
3728 { 4265, "glVertexAttrib1svNV" },
3729 { 4266, "glVertexAttrib2svNV" },
3730 { 4267, "glVertexAttrib3svNV" },
3731 { 4268, "glVertexAttrib4svNV" },
3732 { 4269, "glVertexAttrib1fvNV" },
3733 { 4270, "glVertexAttrib2fvNV" },
3734 { 4271, "glVertexAttrib3fvNV" },
3735 { 4272, "glVertexAttrib4fvNV" },
3736 { 4273, "glVertexAttrib1dvNV" },
3737 { 4274, "glVertexAttrib2dvNV" },
3738 { 4275, "glVertexAttrib3dvNV" },
3739 { 4276, "glVertexAttrib4dvNV" },
3740 { 4277, "glVertexAttrib4ubvNV" },
3741 { 4326, "glMatrixIndexubvARB" },
3742 { 4327, "glMatrixIndexusvARB" },
3743 { 4328, "glMatrixIndexuivARB" },
3744 { 4329, "glCurrentPaletteMatrixARB" },
3745 { 0, NULL }
3746};
3747static value_string_ext mesa_enum_ext = VALUE_STRING_EXT_INIT(mesa_enum);
3748
3749static void dispatch_glx_render(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order, int length)
3750{
3751 while (length >= 4) {
3752 uint32_t op, len;
3753 int next;
3754 proto_item *ti;
3755 proto_tree *tt;
3756
3757 len = tvb_get_uint16(tvb, *offsetp, byte_order);
3758
3759 op = tvb_get_uint16(tvb, *offsetp + 2, byte_order);
3760 ti = proto_tree_add_uint(t, hf_x11_glx_render_op_name, tvb, *offsetp, len, op);
3761
3762 tt = proto_item_add_subtree(ti, ett_x11_list_of_rectangle);
3763
3764 ti = proto_tree_add_item(tt, hf_x11_request_length, tvb, *offsetp, 2, byte_order);
3765 *offsetp += 2;
3766 proto_tree_add_item(tt, hf_x11_glx_render_op_name, tvb, *offsetp, 2, byte_order);
3767 *offsetp += 2;
3768
3769 if (len < 4) {
3770 expert_add_info(pinfo, ti, &ei_x11_request_length);
3771 /* Eat the rest of the packet, mark it undecoded */
3772 len = length;
3773 op = -1;
3774 }
3775 len -= 4;
3776
3777 next = *offsetp + len;
3778
3779 switch (op) {
3780 case 1:
3781 mesa_CallList(tvb, offsetp, tt, byte_order, len);
3782 break;
3783 case 2:
3784 mesa_CallLists(tvb, offsetp, tt, byte_order, len);
3785 break;
3786 case 3:
3787 mesa_ListBase(tvb, offsetp, tt, byte_order, len);
3788 break;
3789 case 4:
3790 mesa_Begin(tvb, offsetp, tt, byte_order, len);
3791 break;
3792 case 5:
3793 mesa_Bitmap(tvb, offsetp, tt, byte_order, len);
3794 break;
3795 case 6:
3796 mesa_Color3bv(tvb, offsetp, tt, byte_order, len);
3797 break;
3798 case 7:
3799 mesa_Color3dv(tvb, offsetp, tt, byte_order, len);
3800 break;
3801 case 8:
3802 mesa_Color3fv(tvb, offsetp, tt, byte_order, len);
3803 break;
3804 case 9:
3805 mesa_Color3iv(tvb, offsetp, tt, byte_order, len);
3806 break;
3807 case 10:
3808 mesa_Color3sv(tvb, offsetp, tt, byte_order, len);
3809 break;
3810 case 11:
3811 mesa_Color3ubv(tvb, offsetp, tt, byte_order, len);
3812 break;
3813 case 12:
3814 mesa_Color3uiv(tvb, offsetp, tt, byte_order, len);
3815 break;
3816 case 13:
3817 mesa_Color3usv(tvb, offsetp, tt, byte_order, len);
3818 break;
3819 case 14:
3820 mesa_Color4bv(tvb, offsetp, tt, byte_order, len);
3821 break;
3822 case 15:
3823 mesa_Color4dv(tvb, offsetp, tt, byte_order, len);
3824 break;
3825 case 16:
3826 mesa_Color4fv(tvb, offsetp, tt, byte_order, len);
3827 break;
3828 case 17:
3829 mesa_Color4iv(tvb, offsetp, tt, byte_order, len);
3830 break;
3831 case 18:
3832 mesa_Color4sv(tvb, offsetp, tt, byte_order, len);
3833 break;
3834 case 19:
3835 mesa_Color4ubv(tvb, offsetp, tt, byte_order, len);
3836 break;
3837 case 20:
3838 mesa_Color4uiv(tvb, offsetp, tt, byte_order, len);
3839 break;
3840 case 21:
3841 mesa_Color4usv(tvb, offsetp, tt, byte_order, len);
3842 break;
3843 case 22:
3844 mesa_EdgeFlagv(tvb, offsetp, tt, byte_order, len);
3845 break;
3846 case 23:
3847 mesa_End(tvb, offsetp, tt, byte_order, len);
3848 break;
3849 case 24:
3850 mesa_Indexdv(tvb, offsetp, tt, byte_order, len);
3851 break;
3852 case 25:
3853 mesa_Indexfv(tvb, offsetp, tt, byte_order, len);
3854 break;
3855 case 26:
3856 mesa_Indexiv(tvb, offsetp, tt, byte_order, len);
3857 break;
3858 case 27:
3859 mesa_Indexsv(tvb, offsetp, tt, byte_order, len);
3860 break;
3861 case 28:
3862 mesa_Normal3bv(tvb, offsetp, tt, byte_order, len);
3863 break;
3864 case 29:
3865 mesa_Normal3dv(tvb, offsetp, tt, byte_order, len);
3866 break;
3867 case 30:
3868 mesa_Normal3fv(tvb, offsetp, tt, byte_order, len);
3869 break;
3870 case 31:
3871 mesa_Normal3iv(tvb, offsetp, tt, byte_order, len);
3872 break;
3873 case 32:
3874 mesa_Normal3sv(tvb, offsetp, tt, byte_order, len);
3875 break;
3876 case 33:
3877 mesa_RasterPos2dv(tvb, offsetp, tt, byte_order, len);
3878 break;
3879 case 34:
3880 mesa_RasterPos2fv(tvb, offsetp, tt, byte_order, len);
3881 break;
3882 case 35:
3883 mesa_RasterPos2iv(tvb, offsetp, tt, byte_order, len);
3884 break;
3885 case 36:
3886 mesa_RasterPos2sv(tvb, offsetp, tt, byte_order, len);
3887 break;
3888 case 37:
3889 mesa_RasterPos3dv(tvb, offsetp, tt, byte_order, len);
3890 break;
3891 case 38:
3892 mesa_RasterPos3fv(tvb, offsetp, tt, byte_order, len);
3893 break;
3894 case 39:
3895 mesa_RasterPos3iv(tvb, offsetp, tt, byte_order, len);
3896 break;
3897 case 40:
3898 mesa_RasterPos3sv(tvb, offsetp, tt, byte_order, len);
3899 break;
3900 case 41:
3901 mesa_RasterPos4dv(tvb, offsetp, tt, byte_order, len);
3902 break;
3903 case 42:
3904 mesa_RasterPos4fv(tvb, offsetp, tt, byte_order, len);
3905 break;
3906 case 43:
3907 mesa_RasterPos4iv(tvb, offsetp, tt, byte_order, len);
3908 break;
3909 case 44:
3910 mesa_RasterPos4sv(tvb, offsetp, tt, byte_order, len);
3911 break;
3912 case 45:
3913 mesa_Rectdv(tvb, offsetp, tt, byte_order, len);
3914 break;
3915 case 46:
3916 mesa_Rectfv(tvb, offsetp, tt, byte_order, len);
3917 break;
3918 case 47:
3919 mesa_Rectiv(tvb, offsetp, tt, byte_order, len);
3920 break;
3921 case 48:
3922 mesa_Rectsv(tvb, offsetp, tt, byte_order, len);
3923 break;
3924 case 49:
3925 mesa_TexCoord1dv(tvb, offsetp, tt, byte_order, len);
3926 break;
3927 case 50:
3928 mesa_TexCoord1fv(tvb, offsetp, tt, byte_order, len);
3929 break;
3930 case 51:
3931 mesa_TexCoord1iv(tvb, offsetp, tt, byte_order, len);
3932 break;
3933 case 52:
3934 mesa_TexCoord1sv(tvb, offsetp, tt, byte_order, len);
3935 break;
3936 case 53:
3937 mesa_TexCoord2dv(tvb, offsetp, tt, byte_order, len);
3938 break;
3939 case 54:
3940 mesa_TexCoord2fv(tvb, offsetp, tt, byte_order, len);
3941 break;
3942 case 55:
3943 mesa_TexCoord2iv(tvb, offsetp, tt, byte_order, len);
3944 break;
3945 case 56:
3946 mesa_TexCoord2sv(tvb, offsetp, tt, byte_order, len);
3947 break;
3948 case 57:
3949 mesa_TexCoord3dv(tvb, offsetp, tt, byte_order, len);
3950 break;
3951 case 58:
3952 mesa_TexCoord3fv(tvb, offsetp, tt, byte_order, len);
3953 break;
3954 case 59:
3955 mesa_TexCoord3iv(tvb, offsetp, tt, byte_order, len);
3956 break;
3957 case 60:
3958 mesa_TexCoord3sv(tvb, offsetp, tt, byte_order, len);
3959 break;
3960 case 61:
3961 mesa_TexCoord4dv(tvb, offsetp, tt, byte_order, len);
3962 break;
3963 case 62:
3964 mesa_TexCoord4fv(tvb, offsetp, tt, byte_order, len);
3965 break;
3966 case 63:
3967 mesa_TexCoord4iv(tvb, offsetp, tt, byte_order, len);
3968 break;
3969 case 64:
3970 mesa_TexCoord4sv(tvb, offsetp, tt, byte_order, len);
3971 break;
3972 case 65:
3973 mesa_Vertex2dv(tvb, offsetp, tt, byte_order, len);
3974 break;
3975 case 66:
3976 mesa_Vertex2fv(tvb, offsetp, tt, byte_order, len);
3977 break;
3978 case 67:
3979 mesa_Vertex2iv(tvb, offsetp, tt, byte_order, len);
3980 break;
3981 case 68:
3982 mesa_Vertex2sv(tvb, offsetp, tt, byte_order, len);
3983 break;
3984 case 69:
3985 mesa_Vertex3dv(tvb, offsetp, tt, byte_order, len);
3986 break;
3987 case 70:
3988 mesa_Vertex3fv(tvb, offsetp, tt, byte_order, len);
3989 break;
3990 case 71:
3991 mesa_Vertex3iv(tvb, offsetp, tt, byte_order, len);
3992 break;
3993 case 72:
3994 mesa_Vertex3sv(tvb, offsetp, tt, byte_order, len);
3995 break;
3996 case 73:
3997 mesa_Vertex4dv(tvb, offsetp, tt, byte_order, len);
3998 break;
3999 case 74:
4000 mesa_Vertex4fv(tvb, offsetp, tt, byte_order, len);
4001 break;
4002 case 75:
4003 mesa_Vertex4iv(tvb, offsetp, tt, byte_order, len);
4004 break;
4005 case 76:
4006 mesa_Vertex4sv(tvb, offsetp, tt, byte_order, len);
4007 break;
4008 case 77:
4009 mesa_ClipPlane(tvb, offsetp, tt, byte_order, len);
4010 break;
4011 case 78:
4012 mesa_ColorMaterial(tvb, offsetp, tt, byte_order, len);
4013 break;
4014 case 79:
4015 mesa_CullFace(tvb, offsetp, tt, byte_order, len);
4016 break;
4017 case 80:
4018 mesa_Fogf(tvb, offsetp, tt, byte_order, len);
4019 break;
4020 case 81:
4021 mesa_Fogfv(tvb, offsetp, tt, byte_order, len);
4022 break;
4023 case 82:
4024 mesa_Fogi(tvb, offsetp, tt, byte_order, len);
4025 break;
4026 case 83:
4027 mesa_Fogiv(tvb, offsetp, tt, byte_order, len);
4028 break;
4029 case 84:
4030 mesa_FrontFace(tvb, offsetp, tt, byte_order, len);
4031 break;
4032 case 85:
4033 mesa_Hint(tvb, offsetp, tt, byte_order, len);
4034 break;
4035 case 86:
4036 mesa_Lightf(tvb, offsetp, tt, byte_order, len);
4037 break;
4038 case 87:
4039 mesa_Lightfv(tvb, offsetp, tt, byte_order, len);
4040 break;
4041 case 88:
4042 mesa_Lighti(tvb, offsetp, tt, byte_order, len);
4043 break;
4044 case 89:
4045 mesa_Lightiv(tvb, offsetp, tt, byte_order, len);
4046 break;
4047 case 90:
4048 mesa_LightModelf(tvb, offsetp, tt, byte_order, len);
4049 break;
4050 case 91:
4051 mesa_LightModelfv(tvb, offsetp, tt, byte_order, len);
4052 break;
4053 case 92:
4054 mesa_LightModeli(tvb, offsetp, tt, byte_order, len);
4055 break;
4056 case 93:
4057 mesa_LightModeliv(tvb, offsetp, tt, byte_order, len);
4058 break;
4059 case 94:
4060 mesa_LineStipple(tvb, offsetp, tt, byte_order, len);
4061 break;
4062 case 95:
4063 mesa_LineWidth(tvb, offsetp, tt, byte_order, len);
4064 break;
4065 case 96:
4066 mesa_Materialf(tvb, offsetp, tt, byte_order, len);
4067 break;
4068 case 97:
4069 mesa_Materialfv(tvb, offsetp, tt, byte_order, len);
4070 break;
4071 case 98:
4072 mesa_Materiali(tvb, offsetp, tt, byte_order, len);
4073 break;
4074 case 99:
4075 mesa_Materialiv(tvb, offsetp, tt, byte_order, len);
4076 break;
4077 case 100:
4078 mesa_PointSize(tvb, offsetp, tt, byte_order, len);
4079 break;
4080 case 101:
4081 mesa_PolygonMode(tvb, offsetp, tt, byte_order, len);
4082 break;
4083 case 102:
4084 mesa_PolygonStipple(tvb, offsetp, tt, byte_order, len);
4085 break;
4086 case 103:
4087 mesa_Scissor(tvb, offsetp, tt, byte_order, len);
4088 break;
4089 case 104:
4090 mesa_ShadeModel(tvb, offsetp, tt, byte_order, len);
4091 break;
4092 case 105:
4093 mesa_TexParameterf(tvb, offsetp, tt, byte_order, len);
4094 break;
4095 case 106:
4096 mesa_TexParameterfv(tvb, offsetp, tt, byte_order, len);
4097 break;
4098 case 107:
4099 mesa_TexParameteri(tvb, offsetp, tt, byte_order, len);
4100 break;
4101 case 108:
4102 mesa_TexParameteriv(tvb, offsetp, tt, byte_order, len);
4103 break;
4104 case 109:
4105 mesa_TexImage1D(tvb, offsetp, tt, byte_order, len);
4106 break;
4107 case 110:
4108 mesa_TexImage2D(tvb, offsetp, tt, byte_order, len);
4109 break;
4110 case 111:
4111 mesa_TexEnvf(tvb, offsetp, tt, byte_order, len);
4112 break;
4113 case 112:
4114 mesa_TexEnvfv(tvb, offsetp, tt, byte_order, len);
4115 break;
4116 case 113:
4117 mesa_TexEnvi(tvb, offsetp, tt, byte_order, len);
4118 break;
4119 case 114:
4120 mesa_TexEnviv(tvb, offsetp, tt, byte_order, len);
4121 break;
4122 case 115:
4123 mesa_TexGend(tvb, offsetp, tt, byte_order, len);
4124 break;
4125 case 116:
4126 mesa_TexGendv(tvb, offsetp, tt, byte_order, len);
4127 break;
4128 case 117:
4129 mesa_TexGenf(tvb, offsetp, tt, byte_order, len);
4130 break;
4131 case 118:
4132 mesa_TexGenfv(tvb, offsetp, tt, byte_order, len);
4133 break;
4134 case 119:
4135 mesa_TexGeni(tvb, offsetp, tt, byte_order, len);
4136 break;
4137 case 120:
4138 mesa_TexGeniv(tvb, offsetp, tt, byte_order, len);
4139 break;
4140 case 121:
4141 mesa_InitNames(tvb, offsetp, tt, byte_order, len);
4142 break;
4143 case 122:
4144 mesa_LoadName(tvb, offsetp, tt, byte_order, len);
4145 break;
4146 case 123:
4147 mesa_PassThrough(tvb, offsetp, tt, byte_order, len);
4148 break;
4149 case 124:
4150 mesa_PopName(tvb, offsetp, tt, byte_order, len);
4151 break;
4152 case 125:
4153 mesa_PushName(tvb, offsetp, tt, byte_order, len);
4154 break;
4155 case 126:
4156 mesa_DrawBuffer(tvb, offsetp, tt, byte_order, len);
4157 break;
4158 case 127:
4159 mesa_Clear(tvb, offsetp, tt, byte_order, len);
4160 break;
4161 case 128:
4162 mesa_ClearAccum(tvb, offsetp, tt, byte_order, len);
4163 break;
4164 case 129:
4165 mesa_ClearIndex(tvb, offsetp, tt, byte_order, len);
4166 break;
4167 case 130:
4168 mesa_ClearColor(tvb, offsetp, tt, byte_order, len);
4169 break;
4170 case 131:
4171 mesa_ClearStencil(tvb, offsetp, tt, byte_order, len);
4172 break;
4173 case 132:
4174 mesa_ClearDepth(tvb, offsetp, tt, byte_order, len);
4175 break;
4176 case 133:
4177 mesa_StencilMask(tvb, offsetp, tt, byte_order, len);
4178 break;
4179 case 134:
4180 mesa_ColorMask(tvb, offsetp, tt, byte_order, len);
4181 break;
4182 case 135:
4183 mesa_DepthMask(tvb, offsetp, tt, byte_order, len);
4184 break;
4185 case 136:
4186 mesa_IndexMask(tvb, offsetp, tt, byte_order, len);
4187 break;
4188 case 137:
4189 mesa_Accum(tvb, offsetp, tt, byte_order, len);
4190 break;
4191 case 138:
4192 mesa_Disable(tvb, offsetp, tt, byte_order, len);
4193 break;
4194 case 139:
4195 mesa_Enable(tvb, offsetp, tt, byte_order, len);
4196 break;
4197 case 141:
4198 mesa_PopAttrib(tvb, offsetp, tt, byte_order, len);
4199 break;
4200 case 142:
4201 mesa_PushAttrib(tvb, offsetp, tt, byte_order, len);
4202 break;
4203 case 143:
4204 mesa_Map1d(tvb, offsetp, tt, byte_order, len);
4205 break;
4206 case 144:
4207 mesa_Map1f(tvb, offsetp, tt, byte_order, len);
4208 break;
4209 case 145:
4210 mesa_Map2d(tvb, offsetp, tt, byte_order, len);
4211 break;
4212 case 146:
4213 mesa_Map2f(tvb, offsetp, tt, byte_order, len);
4214 break;
4215 case 147:
4216 mesa_MapGrid1d(tvb, offsetp, tt, byte_order, len);
4217 break;
4218 case 148:
4219 mesa_MapGrid1f(tvb, offsetp, tt, byte_order, len);
4220 break;
4221 case 149:
4222 mesa_MapGrid2d(tvb, offsetp, tt, byte_order, len);
4223 break;
4224 case 150:
4225 mesa_MapGrid2f(tvb, offsetp, tt, byte_order, len);
4226 break;
4227 case 151:
4228 mesa_EvalCoord1dv(tvb, offsetp, tt, byte_order, len);
4229 break;
4230 case 152:
4231 mesa_EvalCoord1fv(tvb, offsetp, tt, byte_order, len);
4232 break;
4233 case 153:
4234 mesa_EvalCoord2dv(tvb, offsetp, tt, byte_order, len);
4235 break;
4236 case 154:
4237 mesa_EvalCoord2fv(tvb, offsetp, tt, byte_order, len);
4238 break;
4239 case 155:
4240 mesa_EvalMesh1(tvb, offsetp, tt, byte_order, len);
4241 break;
4242 case 156:
4243 mesa_EvalPoint1(tvb, offsetp, tt, byte_order, len);
4244 break;
4245 case 157:
4246 mesa_EvalMesh2(tvb, offsetp, tt, byte_order, len);
4247 break;
4248 case 158:
4249 mesa_EvalPoint2(tvb, offsetp, tt, byte_order, len);
4250 break;
4251 case 159:
4252 mesa_AlphaFunc(tvb, offsetp, tt, byte_order, len);
4253 break;
4254 case 160:
4255 mesa_BlendFunc(tvb, offsetp, tt, byte_order, len);
4256 break;
4257 case 161:
4258 mesa_LogicOp(tvb, offsetp, tt, byte_order, len);
4259 break;
4260 case 162:
4261 mesa_StencilFunc(tvb, offsetp, tt, byte_order, len);
4262 break;
4263 case 163:
4264 mesa_StencilOp(tvb, offsetp, tt, byte_order, len);
4265 break;
4266 case 164:
4267 mesa_DepthFunc(tvb, offsetp, tt, byte_order, len);
4268 break;
4269 case 165:
4270 mesa_PixelZoom(tvb, offsetp, tt, byte_order, len);
4271 break;
4272 case 166:
4273 mesa_PixelTransferf(tvb, offsetp, tt, byte_order, len);
4274 break;
4275 case 167:
4276 mesa_PixelTransferi(tvb, offsetp, tt, byte_order, len);
4277 break;
4278 case 168:
4279 mesa_PixelMapfv(tvb, offsetp, tt, byte_order, len);
4280 break;
4281 case 169:
4282 mesa_PixelMapuiv(tvb, offsetp, tt, byte_order, len);
4283 break;
4284 case 170:
4285 mesa_PixelMapusv(tvb, offsetp, tt, byte_order, len);
4286 break;
4287 case 171:
4288 mesa_ReadBuffer(tvb, offsetp, tt, byte_order, len);
4289 break;
4290 case 172:
4291 mesa_CopyPixels(tvb, offsetp, tt, byte_order, len);
4292 break;
4293 case 173:
4294 mesa_DrawPixels(tvb, offsetp, tt, byte_order, len);
4295 break;
4296 case 174:
4297 mesa_DepthRange(tvb, offsetp, tt, byte_order, len);
4298 break;
4299 case 175:
4300 mesa_Frustum(tvb, offsetp, tt, byte_order, len);
4301 break;
4302 case 176:
4303 mesa_LoadIdentity(tvb, offsetp, tt, byte_order, len);
4304 break;
4305 case 177:
4306 mesa_LoadMatrixf(tvb, offsetp, tt, byte_order, len);
4307 break;
4308 case 178:
4309 mesa_LoadMatrixd(tvb, offsetp, tt, byte_order, len);
4310 break;
4311 case 179:
4312 mesa_MatrixMode(tvb, offsetp, tt, byte_order, len);
4313 break;
4314 case 180:
4315 mesa_MultMatrixf(tvb, offsetp, tt, byte_order, len);
4316 break;
4317 case 181:
4318 mesa_MultMatrixd(tvb, offsetp, tt, byte_order, len);
4319 break;
4320 case 182:
4321 mesa_Ortho(tvb, offsetp, tt, byte_order, len);
4322 break;
4323 case 183:
4324 mesa_PopMatrix(tvb, offsetp, tt, byte_order, len);
4325 break;
4326 case 184:
4327 mesa_PushMatrix(tvb, offsetp, tt, byte_order, len);
4328 break;
4329 case 185:
4330 mesa_Rotated(tvb, offsetp, tt, byte_order, len);
4331 break;
4332 case 186:
4333 mesa_Rotatef(tvb, offsetp, tt, byte_order, len);
4334 break;
4335 case 187:
4336 mesa_Scaled(tvb, offsetp, tt, byte_order, len);
4337 break;
4338 case 188:
4339 mesa_Scalef(tvb, offsetp, tt, byte_order, len);
4340 break;
4341 case 189:
4342 mesa_Translated(tvb, offsetp, tt, byte_order, len);
4343 break;
4344 case 190:
4345 mesa_Translatef(tvb, offsetp, tt, byte_order, len);
4346 break;
4347 case 191:
4348 mesa_Viewport(tvb, offsetp, tt, byte_order, len);
4349 break;
4350 case 192:
4351 mesa_PolygonOffset(tvb, offsetp, tt, byte_order, len);
4352 break;
4353 case 193:
4354 mesa_DrawArrays(tvb, offsetp, tt, byte_order, len);
4355 break;
4356 case 194:
4357 mesa_Indexubv(tvb, offsetp, tt, byte_order, len);
4358 break;
4359 case 195:
4360 mesa_ColorSubTable(tvb, offsetp, tt, byte_order, len);
4361 break;
4362 case 196:
4363 mesa_CopyColorSubTable(tvb, offsetp, tt, byte_order, len);
4364 break;
4365 case 197:
4366 mesa_ActiveTexture(tvb, offsetp, tt, byte_order, len);
4367 break;
4368 case 198:
4369 mesa_MultiTexCoord1dv(tvb, offsetp, tt, byte_order, len);
4370 break;
4371 case 199:
4372 mesa_MultiTexCoord1fvARB(tvb, offsetp, tt, byte_order, len);
4373 break;
4374 case 200:
4375 mesa_MultiTexCoord1iv(tvb, offsetp, tt, byte_order, len);
4376 break;
4377 case 201:
4378 mesa_MultiTexCoord1sv(tvb, offsetp, tt, byte_order, len);
4379 break;
4380 case 202:
4381 mesa_MultiTexCoord2dv(tvb, offsetp, tt, byte_order, len);
4382 break;
4383 case 203:
4384 mesa_MultiTexCoord2fvARB(tvb, offsetp, tt, byte_order, len);
4385 break;
4386 case 204:
4387 mesa_MultiTexCoord2iv(tvb, offsetp, tt, byte_order, len);
4388 break;
4389 case 205:
4390 mesa_MultiTexCoord2sv(tvb, offsetp, tt, byte_order, len);
4391 break;
4392 case 206:
4393 mesa_MultiTexCoord3dv(tvb, offsetp, tt, byte_order, len);
4394 break;
4395 case 207:
4396 mesa_MultiTexCoord3fvARB(tvb, offsetp, tt, byte_order, len);
4397 break;
4398 case 208:
4399 mesa_MultiTexCoord3iv(tvb, offsetp, tt, byte_order, len);
4400 break;
4401 case 209:
4402 mesa_MultiTexCoord3sv(tvb, offsetp, tt, byte_order, len);
4403 break;
4404 case 210:
4405 mesa_MultiTexCoord4dv(tvb, offsetp, tt, byte_order, len);
4406 break;
4407 case 211:
4408 mesa_MultiTexCoord4fvARB(tvb, offsetp, tt, byte_order, len);
4409 break;
4410 case 212:
4411 mesa_MultiTexCoord4iv(tvb, offsetp, tt, byte_order, len);
4412 break;
4413 case 213:
4414 mesa_MultiTexCoord4sv(tvb, offsetp, tt, byte_order, len);
4415 break;
4416 case 214:
4417 mesa_CompressedTexImage1D(tvb, offsetp, tt, byte_order, len);
4418 break;
4419 case 215:
4420 mesa_CompressedTexImage2D(tvb, offsetp, tt, byte_order, len);
4421 break;
4422 case 216:
4423 mesa_CompressedTexImage3D(tvb, offsetp, tt, byte_order, len);
4424 break;
4425 case 217:
4426 mesa_CompressedTexSubImage1D(tvb, offsetp, tt, byte_order, len);
4427 break;
4428 case 218:
4429 mesa_CompressedTexSubImage2D(tvb, offsetp, tt, byte_order, len);
4430 break;
4431 case 219:
4432 mesa_CompressedTexSubImage3D(tvb, offsetp, tt, byte_order, len);
4433 break;
4434 case 229:
4435 mesa_SampleCoverage(tvb, offsetp, tt, byte_order, len);
4436 break;
4437 case 230:
4438 mesa_WindowPos3fv(tvb, offsetp, tt, byte_order, len);
4439 break;
4440 case 231:
4441 mesa_BeginQuery(tvb, offsetp, tt, byte_order, len);
4442 break;
4443 case 232:
4444 mesa_EndQuery(tvb, offsetp, tt, byte_order, len);
4445 break;
4446 case 233:
4447 mesa_DrawBuffers(tvb, offsetp, tt, byte_order, len);
4448 break;
4449 case 2048:
4450 mesa_SampleMaskSGIS(tvb, offsetp, tt, byte_order, len);
4451 break;
4452 case 2049:
4453 mesa_SamplePatternSGIS(tvb, offsetp, tt, byte_order, len);
4454 break;
4455 case 2050:
4456 mesa_TagSampleBufferSGIX(tvb, offsetp, tt, byte_order, len);
4457 break;
4458 case 2051:
4459 mesa_DetailTexFuncSGIS(tvb, offsetp, tt, byte_order, len);
4460 break;
4461 case 2052:
4462 mesa_SharpenTexFuncSGIS(tvb, offsetp, tt, byte_order, len);
4463 break;
4464 case 2053:
4465 mesa_ColorTable(tvb, offsetp, tt, byte_order, len);
4466 break;
4467 case 2054:
4468 mesa_ColorTableParameterfv(tvb, offsetp, tt, byte_order, len);
4469 break;
4470 case 2055:
4471 mesa_ColorTableParameteriv(tvb, offsetp, tt, byte_order, len);
4472 break;
4473 case 2056:
4474 mesa_CopyColorTable(tvb, offsetp, tt, byte_order, len);
4475 break;
4476 case 2057:
4477 mesa_TexImage4DSGIS(tvb, offsetp, tt, byte_order, len);
4478 break;
4479 case 2058:
4480 mesa_TexSubImage4DSGIS(tvb, offsetp, tt, byte_order, len);
4481 break;
4482 case 2059:
4483 mesa_PixelTexGenSGIX(tvb, offsetp, tt, byte_order, len);
4484 break;
4485 case 2064:
4486 mesa_TexFilterFuncSGIS(tvb, offsetp, tt, byte_order, len);
4487 break;
4488 case 2065:
4489 mesa_PointParameterf(tvb, offsetp, tt, byte_order, len);
4490 break;
4491 case 2066:
4492 mesa_PointParameterfv(tvb, offsetp, tt, byte_order, len);
4493 break;
4494 case 2067:
4495 mesa_FogFuncSGIS(tvb, offsetp, tt, byte_order, len);
4496 break;
4497 case 2071:
4498 mesa_ReferencePlaneSGIX(tvb, offsetp, tt, byte_order, len);
4499 break;
4500 case 2072:
4501 mesa_FrameZoomSGIX(tvb, offsetp, tt, byte_order, len);
4502 break;
4503 case 2082:
4504 mesa_TextureColorMaskSGIS(tvb, offsetp, tt, byte_order, len);
4505 break;
4506 case 4096:
4507 mesa_BlendColor(tvb, offsetp, tt, byte_order, len);
4508 break;
4509 case 4097:
4510 mesa_BlendEquation(tvb, offsetp, tt, byte_order, len);
4511 break;
4512 case 4099:
4513 mesa_TexSubImage1D(tvb, offsetp, tt, byte_order, len);
4514 break;
4515 case 4100:
4516 mesa_TexSubImage2D(tvb, offsetp, tt, byte_order, len);
4517 break;
4518 case 4101:
4519 mesa_ConvolutionFilter1D(tvb, offsetp, tt, byte_order, len);
4520 break;
4521 case 4102:
4522 mesa_ConvolutionFilter2D(tvb, offsetp, tt, byte_order, len);
4523 break;
4524 case 4103:
4525 mesa_ConvolutionParameterf(tvb, offsetp, tt, byte_order, len);
4526 break;
4527 case 4104:
4528 mesa_ConvolutionParameterfv(tvb, offsetp, tt, byte_order, len);
4529 break;
4530 case 4105:
4531 mesa_ConvolutionParameteri(tvb, offsetp, tt, byte_order, len);
4532 break;
4533 case 4106:
4534 mesa_ConvolutionParameteriv(tvb, offsetp, tt, byte_order, len);
4535 break;
4536 case 4107:
4537 mesa_CopyConvolutionFilter1D(tvb, offsetp, tt, byte_order, len);
4538 break;
4539 case 4108:
4540 mesa_CopyConvolutionFilter2D(tvb, offsetp, tt, byte_order, len);
4541 break;
4542 case 4109:
4543 mesa_SeparableFilter2D(tvb, offsetp, tt, byte_order, len);
4544 break;
4545 case 4110:
4546 mesa_Histogram(tvb, offsetp, tt, byte_order, len);
4547 break;
4548 case 4111:
4549 mesa_Minmax(tvb, offsetp, tt, byte_order, len);
4550 break;
4551 case 4112:
4552 mesa_ResetHistogram(tvb, offsetp, tt, byte_order, len);
4553 break;
4554 case 4113:
4555 mesa_ResetMinmax(tvb, offsetp, tt, byte_order, len);
4556 break;
4557 case 4114:
4558 mesa_TexImage3D(tvb, offsetp, tt, byte_order, len);
4559 break;
4560 case 4115:
4561 mesa_TexSubImage3D(tvb, offsetp, tt, byte_order, len);
4562 break;
4563 case 4117:
4564 mesa_BindTexture(tvb, offsetp, tt, byte_order, len);
4565 break;
4566 case 4118:
4567 mesa_PrioritizeTextures(tvb, offsetp, tt, byte_order, len);
4568 break;
4569 case 4119:
4570 mesa_CopyTexImage1D(tvb, offsetp, tt, byte_order, len);
4571 break;
4572 case 4120:
4573 mesa_CopyTexImage2D(tvb, offsetp, tt, byte_order, len);
4574 break;
4575 case 4121:
4576 mesa_CopyTexSubImage1D(tvb, offsetp, tt, byte_order, len);
4577 break;
4578 case 4122:
4579 mesa_CopyTexSubImage2D(tvb, offsetp, tt, byte_order, len);
4580 break;
4581 case 4123:
4582 mesa_CopyTexSubImage3D(tvb, offsetp, tt, byte_order, len);
4583 break;
4584 case 4124:
4585 mesa_FogCoordfvEXT(tvb, offsetp, tt, byte_order, len);
4586 break;
4587 case 4125:
4588 mesa_FogCoorddv(tvb, offsetp, tt, byte_order, len);
4589 break;
4590 case 4126:
4591 mesa_SecondaryColor3bv(tvb, offsetp, tt, byte_order, len);
4592 break;
4593 case 4127:
4594 mesa_SecondaryColor3sv(tvb, offsetp, tt, byte_order, len);
4595 break;
4596 case 4128:
4597 mesa_SecondaryColor3iv(tvb, offsetp, tt, byte_order, len);
4598 break;
4599 case 4129:
4600 mesa_SecondaryColor3fvEXT(tvb, offsetp, tt, byte_order, len);
4601 break;
4602 case 4130:
4603 mesa_SecondaryColor3dv(tvb, offsetp, tt, byte_order, len);
4604 break;
4605 case 4131:
4606 mesa_SecondaryColor3ubv(tvb, offsetp, tt, byte_order, len);
4607 break;
4608 case 4132:
4609 mesa_SecondaryColor3usv(tvb, offsetp, tt, byte_order, len);
4610 break;
4611 case 4133:
4612 mesa_SecondaryColor3uiv(tvb, offsetp, tt, byte_order, len);
4613 break;
4614 case 4134:
4615 mesa_BlendFuncSeparate(tvb, offsetp, tt, byte_order, len);
4616 break;
4617 case 4135:
4618 mesa_VertexWeightfvEXT(tvb, offsetp, tt, byte_order, len);
4619 break;
4620 case 4136:
4621 mesa_CombinerParameterfNV(tvb, offsetp, tt, byte_order, len);
4622 break;
4623 case 4137:
4624 mesa_CombinerParameterfvNV(tvb, offsetp, tt, byte_order, len);
4625 break;
4626 case 4138:
4627 mesa_CombinerParameteriNV(tvb, offsetp, tt, byte_order, len);
4628 break;
4629 case 4139:
4630 mesa_CombinerParameterivNV(tvb, offsetp, tt, byte_order, len);
4631 break;
4632 case 4140:
4633 mesa_CombinerInputNV(tvb, offsetp, tt, byte_order, len);
4634 break;
4635 case 4141:
4636 mesa_CombinerOutputNV(tvb, offsetp, tt, byte_order, len);
4637 break;
4638 case 4142:
4639 mesa_FinalCombinerInputNV(tvb, offsetp, tt, byte_order, len);
4640 break;
4641 case 4180:
4642 mesa_BindProgramARB(tvb, offsetp, tt, byte_order, len);
4643 break;
4644 case 4181:
4645 mesa_ExecuteProgramNV(tvb, offsetp, tt, byte_order, len);
4646 break;
4647 case 4182:
4648 mesa_RequestResidentProgramsNV(tvb, offsetp, tt, byte_order, len);
4649 break;
4650 case 4183:
4651 mesa_LoadProgramNV(tvb, offsetp, tt, byte_order, len);
4652 break;
4653 case 4184:
4654 mesa_ProgramEnvParameter4fvARB(tvb, offsetp, tt, byte_order, len);
4655 break;
4656 case 4185:
4657 mesa_ProgramEnvParameter4dvARB(tvb, offsetp, tt, byte_order, len);
4658 break;
4659 case 4186:
4660 mesa_ProgramParameters4fvNV(tvb, offsetp, tt, byte_order, len);
4661 break;
4662 case 4187:
4663 mesa_ProgramParameters4dvNV(tvb, offsetp, tt, byte_order, len);
4664 break;
4665 case 4188:
4666 mesa_TrackMatrixNV(tvb, offsetp, tt, byte_order, len);
4667 break;
4668 case 4189:
4669 mesa_VertexAttrib1sv(tvb, offsetp, tt, byte_order, len);
4670 break;
4671 case 4190:
4672 mesa_VertexAttrib2sv(tvb, offsetp, tt, byte_order, len);
4673 break;
4674 case 4191:
4675 mesa_VertexAttrib3sv(tvb, offsetp, tt, byte_order, len);
4676 break;
4677 case 4192:
4678 mesa_VertexAttrib4sv(tvb, offsetp, tt, byte_order, len);
4679 break;
4680 case 4193:
4681 mesa_VertexAttrib1fvARB(tvb, offsetp, tt, byte_order, len);
4682 break;
4683 case 4194:
4684 mesa_VertexAttrib2fvARB(tvb, offsetp, tt, byte_order, len);
4685 break;
4686 case 4195:
4687 mesa_VertexAttrib3fvARB(tvb, offsetp, tt, byte_order, len);
4688 break;
4689 case 4196:
4690 mesa_VertexAttrib4fvARB(tvb, offsetp, tt, byte_order, len);
4691 break;
4692 case 4197:
4693 mesa_VertexAttrib1dv(tvb, offsetp, tt, byte_order, len);
4694 break;
4695 case 4198:
4696 mesa_VertexAttrib2dv(tvb, offsetp, tt, byte_order, len);
4697 break;
4698 case 4199:
4699 mesa_VertexAttrib3dv(tvb, offsetp, tt, byte_order, len);
4700 break;
4701 case 4200:
4702 mesa_VertexAttrib4dv(tvb, offsetp, tt, byte_order, len);
4703 break;
4704 case 4201:
4705 mesa_VertexAttrib4Nubv(tvb, offsetp, tt, byte_order, len);
4706 break;
4707 case 4202:
4708 mesa_VertexAttribs1svNV(tvb, offsetp, tt, byte_order, len);
4709 break;
4710 case 4203:
4711 mesa_VertexAttribs2svNV(tvb, offsetp, tt, byte_order, len);
4712 break;
4713 case 4204:
4714 mesa_VertexAttribs3svNV(tvb, offsetp, tt, byte_order, len);
4715 break;
4716 case 4205:
4717 mesa_VertexAttribs4svNV(tvb, offsetp, tt, byte_order, len);
4718 break;
4719 case 4206:
4720 mesa_VertexAttribs1fvNV(tvb, offsetp, tt, byte_order, len);
4721 break;
4722 case 4207:
4723 mesa_VertexAttribs2fvNV(tvb, offsetp, tt, byte_order, len);
4724 break;
4725 case 4208:
4726 mesa_VertexAttribs3fvNV(tvb, offsetp, tt, byte_order, len);
4727 break;
4728 case 4209:
4729 mesa_VertexAttribs4fvNV(tvb, offsetp, tt, byte_order, len);
4730 break;
4731 case 4210:
4732 mesa_VertexAttribs1dvNV(tvb, offsetp, tt, byte_order, len);
4733 break;
4734 case 4211:
4735 mesa_VertexAttribs2dvNV(tvb, offsetp, tt, byte_order, len);
4736 break;
4737 case 4212:
4738 mesa_VertexAttribs3dvNV(tvb, offsetp, tt, byte_order, len);
4739 break;
4740 case 4213:
4741 mesa_VertexAttribs4dvNV(tvb, offsetp, tt, byte_order, len);
4742 break;
4743 case 4214:
4744 mesa_VertexAttribs4ubvNV(tvb, offsetp, tt, byte_order, len);
4745 break;
4746 case 4215:
4747 mesa_ProgramLocalParameter4fvARB(tvb, offsetp, tt, byte_order, len);
4748 break;
4749 case 4216:
4750 mesa_ProgramLocalParameter4dvARB(tvb, offsetp, tt, byte_order, len);
4751 break;
4752 case 4217:
4753 mesa_ProgramStringARB(tvb, offsetp, tt, byte_order, len);
4754 break;
4755 case 4218:
4756 mesa_ProgramNamedParameter4fvNV(tvb, offsetp, tt, byte_order, len);
4757 break;
4758 case 4219:
4759 mesa_ProgramNamedParameter4dvNV(tvb, offsetp, tt, byte_order, len);
4760 break;
4761 case 4220:
4762 mesa_ActiveStencilFaceEXT(tvb, offsetp, tt, byte_order, len);
4763 break;
4764 case 4221:
4765 mesa_PointParameteri(tvb, offsetp, tt, byte_order, len);
4766 break;
4767 case 4222:
4768 mesa_PointParameteriv(tvb, offsetp, tt, byte_order, len);
4769 break;
4770 case 4228:
4771 mesa_BlendEquationSeparate(tvb, offsetp, tt, byte_order, len);
4772 break;
4773 case 4229:
4774 mesa_DepthBoundsEXT(tvb, offsetp, tt, byte_order, len);
4775 break;
4776 case 4230:
4777 mesa_VertexAttrib4bv(tvb, offsetp, tt, byte_order, len);
4778 break;
4779 case 4231:
4780 mesa_VertexAttrib4iv(tvb, offsetp, tt, byte_order, len);
4781 break;
4782 case 4232:
4783 mesa_VertexAttrib4ubv(tvb, offsetp, tt, byte_order, len);
4784 break;
4785 case 4233:
4786 mesa_VertexAttrib4usv(tvb, offsetp, tt, byte_order, len);
4787 break;
4788 case 4234:
4789 mesa_VertexAttrib4uiv(tvb, offsetp, tt, byte_order, len);
4790 break;
4791 case 4235:
4792 mesa_VertexAttrib4Nbv(tvb, offsetp, tt, byte_order, len);
4793 break;
4794 case 4236:
4795 mesa_VertexAttrib4Nsv(tvb, offsetp, tt, byte_order, len);
4796 break;
4797 case 4237:
4798 mesa_VertexAttrib4Niv(tvb, offsetp, tt, byte_order, len);
4799 break;
4800 case 4238:
4801 mesa_VertexAttrib4Nusv(tvb, offsetp, tt, byte_order, len);
4802 break;
4803 case 4239:
4804 mesa_VertexAttrib4Nuiv(tvb, offsetp, tt, byte_order, len);
4805 break;
4806 case 4265:
4807 mesa_VertexAttrib1svNV(tvb, offsetp, tt, byte_order, len);
4808 break;
4809 case 4266:
4810 mesa_VertexAttrib2svNV(tvb, offsetp, tt, byte_order, len);
4811 break;
4812 case 4267:
4813 mesa_VertexAttrib3svNV(tvb, offsetp, tt, byte_order, len);
4814 break;
4815 case 4268:
4816 mesa_VertexAttrib4svNV(tvb, offsetp, tt, byte_order, len);
4817 break;
4818 case 4269:
4819 mesa_VertexAttrib1fvNV(tvb, offsetp, tt, byte_order, len);
4820 break;
4821 case 4270:
4822 mesa_VertexAttrib2fvNV(tvb, offsetp, tt, byte_order, len);
4823 break;
4824 case 4271:
4825 mesa_VertexAttrib3fvNV(tvb, offsetp, tt, byte_order, len);
4826 break;
4827 case 4272:
4828 mesa_VertexAttrib4fvNV(tvb, offsetp, tt, byte_order, len);
4829 break;
4830 case 4273:
4831 mesa_VertexAttrib1dvNV(tvb, offsetp, tt, byte_order, len);
4832 break;
4833 case 4274:
4834 mesa_VertexAttrib2dvNV(tvb, offsetp, tt, byte_order, len);
4835 break;
4836 case 4275:
4837 mesa_VertexAttrib3dvNV(tvb, offsetp, tt, byte_order, len);
4838 break;
4839 case 4276:
4840 mesa_VertexAttrib4dvNV(tvb, offsetp, tt, byte_order, len);
4841 break;
4842 case 4277:
4843 mesa_VertexAttrib4ubvNV(tvb, offsetp, tt, byte_order, len);
4844 break;
4845 case 4326:
4846 mesa_MatrixIndexubvARB(tvb, offsetp, tt, byte_order, len);
4847 break;
4848 case 4327:
4849 mesa_MatrixIndexusvARB(tvb, offsetp, tt, byte_order, len);
4850 break;
4851 case 4328:
4852 mesa_MatrixIndexuivARB(tvb, offsetp, tt, byte_order, len);
4853 break;
4854 case 4329:
4855 mesa_CurrentPaletteMatrixARB(tvb, offsetp, tt, byte_order, len);
4856 break;
4857 default:
4858 proto_tree_add_item(tt, hf_x11_undecoded, tvb, *offsetp, len, ENC_NA);
4859 *offsetp += len;
4860 }
4861 if (*offsetp < next) {
4862 proto_tree_add_item(tt, hf_x11_unused, tvb, *offsetp, next - *offsetp, ENC_NA);
4863 *offsetp = next;
4864 }
4865 length -= (len + 4);
4866 }
4867}
4868#include "x11-enum.h"
4869
4870
4871static void bigreqEnable(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
4872{
4873}
4874static void bigreqEnable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
4875{
4876 int sequence_number;
4877
4878 col_append_fstr(pinfo->cinfo, COL_INFO, "-Enable");
4879
4880 REPLY(reply);
4881 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
4882 *offsetp += 1;
4883 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
4884 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
4885 "%d (bigreq-Enable)", sequence_number);
4886 *offsetp += 2;
4887 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
4888 *offsetp += 4;
4889 proto_tree_add_item(t, hf_x11_bigreq_Enable_reply_maximum_request_length, tvb, *offsetp, 4, byte_order);
4890 *offsetp += 4;
4891}
4892static const value_string bigreq_extension_minor[] = {
4893 { 0, "Enable" },
4894 { 0, NULL }
4895};
4896static const x11_event_info bigreq_events[] = {
4897 { NULL, NULL }
4898};
4899static const x11_reply_info bigreq_replies[] = {
4900 { 0, bigreqEnable_Reply },
4901 { 0, NULL }
4902};
4903
4904static void dispatch_bigreq(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
4905{
4906 int minor, length;
4907 minor = CARD8(bigreq_extension_minor);
4908 length = REQUEST_LENGTH();
4909
4910 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
4911 val_to_str(minor, bigreq_extension_minor,
4912 "<Unknown opcode %d>"));
4913 switch (minor) {
4914 case 0:
4915 bigreqEnable(tvb, pinfo, offsetp, t, byte_order, length);
4916 break;
4917 /* No need for a default case here, since Unknown is printed above,
4918 and UNDECODED() is taken care of by dissect_x11_request */
4919 }
4920}
4921
4922static void register_bigreq(void)
4923{
4924 set_handler("BIG-REQUESTS", dispatch_bigreq, bigreq_errors, bigreq_events, NULL, bigreq_replies);
4925}
4926
4927static void struct_xproto_RECTANGLE(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
4928{
4929 int i;
4930 for (i = 0; i < count; i++) {
4931 proto_item *item;
4932 proto_tree *t;
4933
4934 item = proto_tree_add_item(root, hf_x11_struct_xproto_RECTANGLE, tvb, *offsetp, 8, ENC_NA);
4935 t = proto_item_add_subtree(item, ett_x11_rectangle);
4936 proto_tree_add_item(t, hf_x11_struct_xproto_RECTANGLE_x, tvb, *offsetp, 2, byte_order);
4937 *offsetp += 2;
4938 proto_tree_add_item(t, hf_x11_struct_xproto_RECTANGLE_y, tvb, *offsetp, 2, byte_order);
4939 *offsetp += 2;
4940 proto_tree_add_item(t, hf_x11_struct_xproto_RECTANGLE_width, tvb, *offsetp, 2, byte_order);
4941 *offsetp += 2;
4942 proto_tree_add_item(t, hf_x11_struct_xproto_RECTANGLE_height, tvb, *offsetp, 2, byte_order);
4943 *offsetp += 2;
4944 }
4945}
4946
4947static int struct_size_xproto_STR(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
4948{
4949 int size = 0;
4950 int f_name_len;
4951 f_name_len = tvb_get_uint8(tvb, *offsetp + size + 0);
4952 size += f_name_len * 1;
4953 return size + 1;
4954}
4955
4956static void struct_xproto_STR(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
4957{
4958 int i;
4959 for (i = 0; i < count; i++) {
4960 proto_item *item;
4961 proto_tree *t;
4962 int f_name_len;
4963
4964 item = proto_tree_add_item(root, hf_x11_struct_xproto_STR, tvb, *offsetp, struct_size_xproto_STR(tvb, offsetp, byte_order), ENC_NA);
4965 t = proto_item_add_subtree(item, ett_x11_rectangle);
4966 f_name_len = tvb_get_uint8(tvb, *offsetp);
4967 proto_tree_add_item(t, hf_x11_struct_xproto_STR_name_len, tvb, *offsetp, 1, byte_order);
4968 *offsetp += 1;
4969 listOfByte(tvb, offsetp, t, hf_x11_struct_xproto_STR_name, f_name_len, byte_order);
4970 }
4971}
4972
4973static void struct_render_DIRECTFORMAT(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
4974{
4975 int i;
4976 for (i = 0; i < count; i++) {
4977 proto_item *item;
4978 proto_tree *t;
4979
4980 item = proto_tree_add_item(root, hf_x11_struct_render_DIRECTFORMAT, tvb, *offsetp, 16, ENC_NA);
4981 t = proto_item_add_subtree(item, ett_x11_rectangle);
4982 proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_red_shift, tvb, *offsetp, 2, byte_order);
4983 *offsetp += 2;
4984 proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_red_mask, tvb, *offsetp, 2, byte_order);
4985 *offsetp += 2;
4986 proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_green_shift, tvb, *offsetp, 2, byte_order);
4987 *offsetp += 2;
4988 proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_green_mask, tvb, *offsetp, 2, byte_order);
4989 *offsetp += 2;
4990 proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_blue_shift, tvb, *offsetp, 2, byte_order);
4991 *offsetp += 2;
4992 proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_blue_mask, tvb, *offsetp, 2, byte_order);
4993 *offsetp += 2;
4994 proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_alpha_shift, tvb, *offsetp, 2, byte_order);
4995 *offsetp += 2;
4996 proto_tree_add_item(t, hf_x11_struct_render_DIRECTFORMAT_alpha_mask, tvb, *offsetp, 2, byte_order);
4997 *offsetp += 2;
4998 }
4999}
5000
5001static void struct_render_PICTFORMINFO(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5002{
5003 int i;
5004 for (i = 0; i < count; i++) {
5005 proto_item *item;
5006 proto_tree *t;
5007
5008 item = proto_tree_add_item(root, hf_x11_struct_render_PICTFORMINFO, tvb, *offsetp, 28, ENC_NA);
5009 t = proto_item_add_subtree(item, ett_x11_rectangle);
5010 proto_tree_add_item(t, hf_x11_struct_render_PICTFORMINFO_id, tvb, *offsetp, 4, byte_order);
5011 *offsetp += 4;
5012 field8(tvb, offsetp, t, hf_x11_struct_render_PICTFORMINFO_type, byte_order);
5013 proto_tree_add_item(t, hf_x11_struct_render_PICTFORMINFO_depth, tvb, *offsetp, 1, byte_order);
5014 *offsetp += 1;
5015 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
5016 *offsetp += 2;
5017 struct_render_DIRECTFORMAT(tvb, offsetp, t, byte_order, 1);
5018 proto_tree_add_item(t, hf_x11_struct_render_PICTFORMINFO_colormap, tvb, *offsetp, 4, byte_order);
5019 *offsetp += 4;
5020 }
5021}
5022
5023static void struct_render_PICTVISUAL(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5024{
5025 int i;
5026 for (i = 0; i < count; i++) {
5027 proto_item *item;
5028 proto_tree *t;
5029
5030 item = proto_tree_add_item(root, hf_x11_struct_render_PICTVISUAL, tvb, *offsetp, 8, ENC_NA);
5031 t = proto_item_add_subtree(item, ett_x11_rectangle);
5032 proto_tree_add_item(t, hf_x11_struct_render_PICTVISUAL_visual, tvb, *offsetp, 4, byte_order);
5033 *offsetp += 4;
5034 proto_tree_add_item(t, hf_x11_struct_render_PICTVISUAL_format, tvb, *offsetp, 4, byte_order);
5035 *offsetp += 4;
5036 }
5037}
5038
5039static int struct_size_render_PICTDEPTH(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
5040{
5041 int size = 0;
5042 int f_num_visuals;
5043 f_num_visuals = tvb_get_uint16(tvb, *offsetp + size + 2, byte_order);
5044 size += f_num_visuals * 8;
5045 return size + 8;
5046}
5047
5048static void struct_render_PICTDEPTH(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5049{
5050 int i;
5051 for (i = 0; i < count; i++) {
5052 proto_item *item;
5053 proto_tree *t;
5054 int f_num_visuals;
5055
5056 item = proto_tree_add_item(root, hf_x11_struct_render_PICTDEPTH, tvb, *offsetp, struct_size_render_PICTDEPTH(tvb, offsetp, byte_order), ENC_NA);
5057 t = proto_item_add_subtree(item, ett_x11_rectangle);
5058 proto_tree_add_item(t, hf_x11_struct_render_PICTDEPTH_depth, tvb, *offsetp, 1, byte_order);
5059 *offsetp += 1;
5060 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5061 *offsetp += 1;
5062 f_num_visuals = tvb_get_uint16(tvb, *offsetp, byte_order);
5063 proto_tree_add_item(t, hf_x11_struct_render_PICTDEPTH_num_visuals, tvb, *offsetp, 2, byte_order);
5064 *offsetp += 2;
5065 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
5066 *offsetp += 4;
5067 struct_render_PICTVISUAL(tvb, offsetp, t, byte_order, f_num_visuals);
5068 }
5069}
5070
5071static int struct_size_render_PICTSCREEN(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
5072{
5073 int size = 0;
5074 int i, off;
5075 int f_num_depths;
5076 f_num_depths = tvb_get_uint32(tvb, *offsetp + size + 0, byte_order);
5077 for (i = 0; i < f_num_depths; i++) {
5078 off = (*offsetp) + size + 8;
5079 size += struct_size_render_PICTDEPTH(tvb, &off, byte_order);
5080 }
5081 return size + 8;
5082}
5083
5084static void struct_render_PICTSCREEN(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5085{
5086 int i;
5087 for (i = 0; i < count; i++) {
5088 proto_item *item;
5089 proto_tree *t;
5090 int f_num_depths;
5091
5092 item = proto_tree_add_item(root, hf_x11_struct_render_PICTSCREEN, tvb, *offsetp, struct_size_render_PICTSCREEN(tvb, offsetp, byte_order), ENC_NA);
5093 t = proto_item_add_subtree(item, ett_x11_rectangle);
5094 f_num_depths = tvb_get_uint32(tvb, *offsetp, byte_order);
5095 proto_tree_add_item(t, hf_x11_struct_render_PICTSCREEN_num_depths, tvb, *offsetp, 4, byte_order);
5096 *offsetp += 4;
5097 proto_tree_add_item(t, hf_x11_struct_render_PICTSCREEN_fallback, tvb, *offsetp, 4, byte_order);
5098 *offsetp += 4;
5099 struct_render_PICTDEPTH(tvb, offsetp, t, byte_order, f_num_depths);
5100 }
5101}
5102
5103static void struct_render_INDEXVALUE(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5104{
5105 int i;
5106 for (i = 0; i < count; i++) {
5107 proto_item *item;
5108 proto_tree *t;
5109
5110 item = proto_tree_add_item(root, hf_x11_struct_render_INDEXVALUE, tvb, *offsetp, 12, ENC_NA);
5111 t = proto_item_add_subtree(item, ett_x11_rectangle);
5112 proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_pixel, tvb, *offsetp, 4, byte_order);
5113 *offsetp += 4;
5114 proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_red, tvb, *offsetp, 2, byte_order);
5115 *offsetp += 2;
5116 proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_green, tvb, *offsetp, 2, byte_order);
5117 *offsetp += 2;
5118 proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_blue, tvb, *offsetp, 2, byte_order);
5119 *offsetp += 2;
5120 proto_tree_add_item(t, hf_x11_struct_render_INDEXVALUE_alpha, tvb, *offsetp, 2, byte_order);
5121 *offsetp += 2;
5122 }
5123}
5124
5125static void struct_render_COLOR(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5126{
5127 int i;
5128 for (i = 0; i < count; i++) {
5129 proto_item *item;
5130 proto_tree *t;
5131
5132 item = proto_tree_add_item(root, hf_x11_struct_render_COLOR, tvb, *offsetp, 8, ENC_NA);
5133 t = proto_item_add_subtree(item, ett_x11_rectangle);
5134 proto_tree_add_item(t, hf_x11_struct_render_COLOR_red, tvb, *offsetp, 2, byte_order);
5135 *offsetp += 2;
5136 proto_tree_add_item(t, hf_x11_struct_render_COLOR_green, tvb, *offsetp, 2, byte_order);
5137 *offsetp += 2;
5138 proto_tree_add_item(t, hf_x11_struct_render_COLOR_blue, tvb, *offsetp, 2, byte_order);
5139 *offsetp += 2;
5140 proto_tree_add_item(t, hf_x11_struct_render_COLOR_alpha, tvb, *offsetp, 2, byte_order);
5141 *offsetp += 2;
5142 }
5143}
5144
5145static void struct_render_POINTFIX(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5146{
5147 int i;
5148 for (i = 0; i < count; i++) {
5149 proto_item *item;
5150 proto_tree *t;
5151
5152 item = proto_tree_add_item(root, hf_x11_struct_render_POINTFIX, tvb, *offsetp, 8, ENC_NA);
5153 t = proto_item_add_subtree(item, ett_x11_rectangle);
5154 proto_tree_add_item(t, hf_x11_struct_render_POINTFIX_x, tvb, *offsetp, 4, byte_order);
5155 *offsetp += 4;
5156 proto_tree_add_item(t, hf_x11_struct_render_POINTFIX_y, tvb, *offsetp, 4, byte_order);
5157 *offsetp += 4;
5158 }
5159}
5160
5161static void struct_render_LINEFIX(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5162{
5163 int i;
5164 for (i = 0; i < count; i++) {
5165 proto_item *item;
5166 proto_tree *t;
5167
5168 item = proto_tree_add_item(root, hf_x11_struct_render_LINEFIX, tvb, *offsetp, 16, ENC_NA);
5169 t = proto_item_add_subtree(item, ett_x11_rectangle);
5170 struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5171 struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5172 }
5173}
5174
5175static void struct_render_TRIANGLE(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5176{
5177 int i;
5178 for (i = 0; i < count; i++) {
5179 proto_item *item;
5180 proto_tree *t;
5181
5182 item = proto_tree_add_item(root, hf_x11_struct_render_TRIANGLE, tvb, *offsetp, 24, ENC_NA);
5183 t = proto_item_add_subtree(item, ett_x11_rectangle);
5184 struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5185 struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5186 struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
5187 }
5188}
5189
5190static void struct_render_TRAPEZOID(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5191{
5192 int i;
5193 for (i = 0; i < count; i++) {
5194 proto_item *item;
5195 proto_tree *t;
5196
5197 item = proto_tree_add_item(root, hf_x11_struct_render_TRAPEZOID, tvb, *offsetp, 40, ENC_NA);
5198 t = proto_item_add_subtree(item, ett_x11_rectangle);
5199 proto_tree_add_item(t, hf_x11_struct_render_TRAPEZOID_top, tvb, *offsetp, 4, byte_order);
5200 *offsetp += 4;
5201 proto_tree_add_item(t, hf_x11_struct_render_TRAPEZOID_bottom, tvb, *offsetp, 4, byte_order);
5202 *offsetp += 4;
5203 struct_render_LINEFIX(tvb, offsetp, t, byte_order, 1);
5204 struct_render_LINEFIX(tvb, offsetp, t, byte_order, 1);
5205 }
5206}
5207
5208static void struct_render_GLYPHINFO(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5209{
5210 int i;
5211 for (i = 0; i < count; i++) {
5212 proto_item *item;
5213 proto_tree *t;
5214
5215 item = proto_tree_add_item(root, hf_x11_struct_render_GLYPHINFO, tvb, *offsetp, 12, ENC_NA);
5216 t = proto_item_add_subtree(item, ett_x11_rectangle);
5217 proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_width, tvb, *offsetp, 2, byte_order);
5218 *offsetp += 2;
5219 proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_height, tvb, *offsetp, 2, byte_order);
5220 *offsetp += 2;
5221 proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_x, tvb, *offsetp, 2, byte_order);
5222 *offsetp += 2;
5223 proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_y, tvb, *offsetp, 2, byte_order);
5224 *offsetp += 2;
5225 proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_x_off, tvb, *offsetp, 2, byte_order);
5226 *offsetp += 2;
5227 proto_tree_add_item(t, hf_x11_struct_render_GLYPHINFO_y_off, tvb, *offsetp, 2, byte_order);
5228 *offsetp += 2;
5229 }
5230}
5231
5232static void struct_render_TRANSFORM(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5233{
5234 int i;
5235 for (i = 0; i < count; i++) {
5236 proto_item *item;
5237 proto_tree *t;
5238
5239 item = proto_tree_add_item(root, hf_x11_struct_render_TRANSFORM, tvb, *offsetp, 36, ENC_NA);
5240 t = proto_item_add_subtree(item, ett_x11_rectangle);
5241 proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix11, tvb, *offsetp, 4, byte_order);
5242 *offsetp += 4;
5243 proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix12, tvb, *offsetp, 4, byte_order);
5244 *offsetp += 4;
5245 proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix13, tvb, *offsetp, 4, byte_order);
5246 *offsetp += 4;
5247 proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix21, tvb, *offsetp, 4, byte_order);
5248 *offsetp += 4;
5249 proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix22, tvb, *offsetp, 4, byte_order);
5250 *offsetp += 4;
5251 proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix23, tvb, *offsetp, 4, byte_order);
5252 *offsetp += 4;
5253 proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix31, tvb, *offsetp, 4, byte_order);
5254 *offsetp += 4;
5255 proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix32, tvb, *offsetp, 4, byte_order);
5256 *offsetp += 4;
5257 proto_tree_add_item(t, hf_x11_struct_render_TRANSFORM_matrix33, tvb, *offsetp, 4, byte_order);
5258 *offsetp += 4;
5259 }
5260}
5261
5262static void struct_render_ANIMCURSORELT(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5263{
5264 int i;
5265 for (i = 0; i < count; i++) {
5266 proto_item *item;
5267 proto_tree *t;
5268
5269 item = proto_tree_add_item(root, hf_x11_struct_render_ANIMCURSORELT, tvb, *offsetp, 8, ENC_NA);
5270 t = proto_item_add_subtree(item, ett_x11_rectangle);
5271 proto_tree_add_item(t, hf_x11_struct_render_ANIMCURSORELT_cursor, tvb, *offsetp, 4, byte_order);
5272 *offsetp += 4;
5273 proto_tree_add_item(t, hf_x11_struct_render_ANIMCURSORELT_delay, tvb, *offsetp, 4, byte_order);
5274 *offsetp += 4;
5275 }
5276}
5277
5278static void struct_render_SPANFIX(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5279{
5280 int i;
5281 for (i = 0; i < count; i++) {
5282 proto_item *item;
5283 proto_tree *t;
5284
5285 item = proto_tree_add_item(root, hf_x11_struct_render_SPANFIX, tvb, *offsetp, 12, ENC_NA);
5286 t = proto_item_add_subtree(item, ett_x11_rectangle);
5287 proto_tree_add_item(t, hf_x11_struct_render_SPANFIX_l, tvb, *offsetp, 4, byte_order);
5288 *offsetp += 4;
5289 proto_tree_add_item(t, hf_x11_struct_render_SPANFIX_r, tvb, *offsetp, 4, byte_order);
5290 *offsetp += 4;
5291 proto_tree_add_item(t, hf_x11_struct_render_SPANFIX_y, tvb, *offsetp, 4, byte_order);
5292 *offsetp += 4;
5293 }
5294}
5295
5296static void struct_render_TRAP(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5297{
5298 int i;
5299 for (i = 0; i < count; i++) {
5300 proto_item *item;
5301 proto_tree *t;
5302
5303 item = proto_tree_add_item(root, hf_x11_struct_render_TRAP, tvb, *offsetp, 24, ENC_NA);
5304 t = proto_item_add_subtree(item, ett_x11_rectangle);
5305 struct_render_SPANFIX(tvb, offsetp, t, byte_order, 1);
5306 struct_render_SPANFIX(tvb, offsetp, t, byte_order, 1);
5307 }
5308}
5309
5310static void compositeQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5311{
5312 proto_tree_add_item(t, hf_x11_composite_QueryVersion_client_major_version, tvb, *offsetp, 4, byte_order);
5313 *offsetp += 4;
5314 proto_tree_add_item(t, hf_x11_composite_QueryVersion_client_minor_version, tvb, *offsetp, 4, byte_order);
5315 *offsetp += 4;
5316}
5317static void compositeQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
5318{
5319 int sequence_number;
5320
5321 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
5322
5323 REPLY(reply);
5324 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5325 *offsetp += 1;
5326 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
5327 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5328 "%d (composite-QueryVersion)", sequence_number);
5329 *offsetp += 2;
5330 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5331 *offsetp += 4;
5332 proto_tree_add_item(t, hf_x11_composite_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
5333 *offsetp += 4;
5334 proto_tree_add_item(t, hf_x11_composite_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
5335 *offsetp += 4;
5336 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
5337 *offsetp += 16;
5338}
5339
5340static void compositeRedirectWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5341{
5342 proto_tree_add_item(t, hf_x11_composite_RedirectWindow_window, tvb, *offsetp, 4, byte_order);
5343 *offsetp += 4;
5344 field8(tvb, offsetp, t, hf_x11_composite_RedirectWindow_update, byte_order);
5345 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5346 *offsetp += 3;
5347}
5348
5349static void compositeRedirectSubwindows(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5350{
5351 proto_tree_add_item(t, hf_x11_composite_RedirectSubwindows_window, tvb, *offsetp, 4, byte_order);
5352 *offsetp += 4;
5353 field8(tvb, offsetp, t, hf_x11_composite_RedirectSubwindows_update, byte_order);
5354 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5355 *offsetp += 3;
5356}
5357
5358static void compositeUnredirectWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5359{
5360 proto_tree_add_item(t, hf_x11_composite_UnredirectWindow_window, tvb, *offsetp, 4, byte_order);
5361 *offsetp += 4;
5362 field8(tvb, offsetp, t, hf_x11_composite_UnredirectWindow_update, byte_order);
5363 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5364 *offsetp += 3;
5365}
5366
5367static void compositeUnredirectSubwindows(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5368{
5369 proto_tree_add_item(t, hf_x11_composite_UnredirectSubwindows_window, tvb, *offsetp, 4, byte_order);
5370 *offsetp += 4;
5371 field8(tvb, offsetp, t, hf_x11_composite_UnredirectSubwindows_update, byte_order);
5372 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5373 *offsetp += 3;
5374}
5375
5376static void compositeCreateRegionFromBorderClip(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5377{
5378 proto_tree_add_item(t, hf_x11_composite_CreateRegionFromBorderClip_region, tvb, *offsetp, 4, byte_order);
5379 *offsetp += 4;
5380 proto_tree_add_item(t, hf_x11_composite_CreateRegionFromBorderClip_window, tvb, *offsetp, 4, byte_order);
5381 *offsetp += 4;
5382}
5383
5384static void compositeNameWindowPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5385{
5386 proto_tree_add_item(t, hf_x11_composite_NameWindowPixmap_window, tvb, *offsetp, 4, byte_order);
5387 *offsetp += 4;
5388 proto_tree_add_item(t, hf_x11_composite_NameWindowPixmap_pixmap, tvb, *offsetp, 4, byte_order);
5389 *offsetp += 4;
5390}
5391
5392static void compositeGetOverlayWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5393{
5394 proto_tree_add_item(t, hf_x11_composite_GetOverlayWindow_window, tvb, *offsetp, 4, byte_order);
5395 *offsetp += 4;
5396}
5397static void compositeGetOverlayWindow_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
5398{
5399 int sequence_number;
5400
5401 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOverlayWindow");
5402
5403 REPLY(reply);
5404 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5405 *offsetp += 1;
5406 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
5407 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5408 "%d (composite-GetOverlayWindow)", sequence_number);
5409 *offsetp += 2;
5410 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5411 *offsetp += 4;
5412 proto_tree_add_item(t, hf_x11_composite_GetOverlayWindow_reply_overlay_win, tvb, *offsetp, 4, byte_order);
5413 *offsetp += 4;
5414 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
5415 *offsetp += 20;
5416}
5417
5418static void compositeReleaseOverlayWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5419{
5420 proto_tree_add_item(t, hf_x11_composite_ReleaseOverlayWindow_window, tvb, *offsetp, 4, byte_order);
5421 *offsetp += 4;
5422}
5423static const value_string composite_extension_minor[] = {
5424 { 0, "QueryVersion" },
5425 { 1, "RedirectWindow" },
5426 { 2, "RedirectSubwindows" },
5427 { 3, "UnredirectWindow" },
5428 { 4, "UnredirectSubwindows" },
5429 { 5, "CreateRegionFromBorderClip" },
5430 { 6, "NameWindowPixmap" },
5431 { 7, "GetOverlayWindow" },
5432 { 8, "ReleaseOverlayWindow" },
5433 { 0, NULL }
5434};
5435static const x11_event_info composite_events[] = {
5436 { NULL, NULL }
5437};
5438static const x11_reply_info composite_replies[] = {
5439 { 0, compositeQueryVersion_Reply },
5440 { 7, compositeGetOverlayWindow_Reply },
5441 { 0, NULL }
5442};
5443
5444static void dispatch_composite(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
5445{
5446 int minor, length;
5447 minor = CARD8(composite_extension_minor);
5448 length = REQUEST_LENGTH();
5449
5450 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
5451 val_to_str(minor, composite_extension_minor,
5452 "<Unknown opcode %d>"));
5453 switch (minor) {
5454 case 0:
5455 compositeQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
5456 break;
5457 case 1:
5458 compositeRedirectWindow(tvb, pinfo, offsetp, t, byte_order, length);
5459 break;
5460 case 2:
5461 compositeRedirectSubwindows(tvb, pinfo, offsetp, t, byte_order, length);
5462 break;
5463 case 3:
5464 compositeUnredirectWindow(tvb, pinfo, offsetp, t, byte_order, length);
5465 break;
5466 case 4:
5467 compositeUnredirectSubwindows(tvb, pinfo, offsetp, t, byte_order, length);
5468 break;
5469 case 5:
5470 compositeCreateRegionFromBorderClip(tvb, pinfo, offsetp, t, byte_order, length);
5471 break;
5472 case 6:
5473 compositeNameWindowPixmap(tvb, pinfo, offsetp, t, byte_order, length);
5474 break;
5475 case 7:
5476 compositeGetOverlayWindow(tvb, pinfo, offsetp, t, byte_order, length);
5477 break;
5478 case 8:
5479 compositeReleaseOverlayWindow(tvb, pinfo, offsetp, t, byte_order, length);
5480 break;
5481 /* No need for a default case here, since Unknown is printed above,
5482 and UNDECODED() is taken care of by dissect_x11_request */
5483 }
5484}
5485
5486static void register_composite(void)
5487{
5488 set_handler("Composite", dispatch_composite, composite_errors, composite_events, NULL, composite_replies);
5489}
5490
5491static void damageQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5492{
5493 proto_tree_add_item(t, hf_x11_damage_QueryVersion_client_major_version, tvb, *offsetp, 4, byte_order);
5494 *offsetp += 4;
5495 proto_tree_add_item(t, hf_x11_damage_QueryVersion_client_minor_version, tvb, *offsetp, 4, byte_order);
5496 *offsetp += 4;
5497}
5498static void damageQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
5499{
5500 int sequence_number;
5501
5502 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
5503
5504 REPLY(reply);
5505 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5506 *offsetp += 1;
5507 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
5508 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5509 "%d (damage-QueryVersion)", sequence_number);
5510 *offsetp += 2;
5511 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5512 *offsetp += 4;
5513 proto_tree_add_item(t, hf_x11_damage_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
5514 *offsetp += 4;
5515 proto_tree_add_item(t, hf_x11_damage_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
5516 *offsetp += 4;
5517 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
5518 *offsetp += 16;
5519}
5520
5521static void damageCreate(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5522{
5523 proto_tree_add_item(t, hf_x11_damage_Create_damage, tvb, *offsetp, 4, byte_order);
5524 *offsetp += 4;
5525 proto_tree_add_item(t, hf_x11_damage_Create_drawable, tvb, *offsetp, 4, byte_order);
5526 *offsetp += 4;
5527 field8(tvb, offsetp, t, hf_x11_damage_Create_level, byte_order);
5528 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5529 *offsetp += 3;
5530}
5531
5532static void damageDestroy(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5533{
5534 proto_tree_add_item(t, hf_x11_damage_Destroy_damage, tvb, *offsetp, 4, byte_order);
5535 *offsetp += 4;
5536}
5537
5538static void damageSubtract(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5539{
5540 proto_tree_add_item(t, hf_x11_damage_Subtract_damage, tvb, *offsetp, 4, byte_order);
5541 *offsetp += 4;
5542 field32(tvb, offsetp, t, hf_x11_damage_Subtract_repair, byte_order);
5543 field32(tvb, offsetp, t, hf_x11_damage_Subtract_parts, byte_order);
5544}
5545
5546static void damageAdd(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5547{
5548 proto_tree_add_item(t, hf_x11_damage_Add_drawable, tvb, *offsetp, 4, byte_order);
5549 *offsetp += 4;
5550 proto_tree_add_item(t, hf_x11_damage_Add_region, tvb, *offsetp, 4, byte_order);
5551 *offsetp += 4;
5552}
5553static const value_string damage_extension_minor[] = {
5554 { 0, "QueryVersion" },
5555 { 1, "Create" },
5556 { 2, "Destroy" },
5557 { 3, "Subtract" },
5558 { 4, "Add" },
5559 { 0, NULL }
5560};
5561static const x11_event_info damage_events[] = {
5562 { NULL, NULL }
5563};
5564static const x11_reply_info damage_replies[] = {
5565 { 0, damageQueryVersion_Reply },
5566 { 0, NULL }
5567};
5568
5569static void dispatch_damage(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
5570{
5571 int minor, length;
5572 minor = CARD8(damage_extension_minor);
5573 length = REQUEST_LENGTH();
5574
5575 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
5576 val_to_str(minor, damage_extension_minor,
5577 "<Unknown opcode %d>"));
5578 switch (minor) {
5579 case 0:
5580 damageQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
5581 break;
5582 case 1:
5583 damageCreate(tvb, pinfo, offsetp, t, byte_order, length);
5584 break;
5585 case 2:
5586 damageDestroy(tvb, pinfo, offsetp, t, byte_order, length);
5587 break;
5588 case 3:
5589 damageSubtract(tvb, pinfo, offsetp, t, byte_order, length);
5590 break;
5591 case 4:
5592 damageAdd(tvb, pinfo, offsetp, t, byte_order, length);
5593 break;
5594 /* No need for a default case here, since Unknown is printed above,
5595 and UNDECODED() is taken care of by dissect_x11_request */
5596 }
5597}
5598
5599static void register_damage(void)
5600{
5601 set_handler("DAMAGE", dispatch_damage, damage_errors, damage_events, NULL, damage_replies);
5602}
5603
5604static void struct_dbe_SwapInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5605{
5606 int i;
5607 for (i = 0; i < count; i++) {
5608 proto_item *item;
5609 proto_tree *t;
5610
5611 item = proto_tree_add_item(root, hf_x11_struct_dbe_SwapInfo, tvb, *offsetp, 8, ENC_NA);
5612 t = proto_item_add_subtree(item, ett_x11_rectangle);
5613 proto_tree_add_item(t, hf_x11_struct_dbe_SwapInfo_window, tvb, *offsetp, 4, byte_order);
5614 *offsetp += 4;
5615 field8(tvb, offsetp, t, hf_x11_struct_dbe_SwapInfo_swap_action, byte_order);
5616 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5617 *offsetp += 3;
5618 }
5619}
5620
5621static void struct_dbe_BufferAttributes(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5622{
5623 int i;
5624 for (i = 0; i < count; i++) {
5625 proto_item *item;
5626 proto_tree *t;
5627
5628 item = proto_tree_add_item(root, hf_x11_struct_dbe_BufferAttributes, tvb, *offsetp, 4, ENC_NA);
5629 t = proto_item_add_subtree(item, ett_x11_rectangle);
5630 proto_tree_add_item(t, hf_x11_struct_dbe_BufferAttributes_window, tvb, *offsetp, 4, byte_order);
5631 *offsetp += 4;
5632 }
5633}
5634
5635static void struct_dbe_VisualInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5636{
5637 int i;
5638 for (i = 0; i < count; i++) {
5639 proto_item *item;
5640 proto_tree *t;
5641
5642 item = proto_tree_add_item(root, hf_x11_struct_dbe_VisualInfo, tvb, *offsetp, 8, ENC_NA);
5643 t = proto_item_add_subtree(item, ett_x11_rectangle);
5644 proto_tree_add_item(t, hf_x11_struct_dbe_VisualInfo_visual_id, tvb, *offsetp, 4, byte_order);
5645 *offsetp += 4;
5646 proto_tree_add_item(t, hf_x11_struct_dbe_VisualInfo_depth, tvb, *offsetp, 1, byte_order);
5647 *offsetp += 1;
5648 proto_tree_add_item(t, hf_x11_struct_dbe_VisualInfo_perf_level, tvb, *offsetp, 1, byte_order);
5649 *offsetp += 1;
5650 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
5651 *offsetp += 2;
5652 }
5653}
5654
5655static int struct_size_dbe_VisualInfos(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
5656{
5657 int size = 0;
5658 int f_n_infos;
5659 f_n_infos = tvb_get_uint32(tvb, *offsetp + size + 0, byte_order);
5660 size += f_n_infos * 8;
5661 return size + 4;
5662}
5663
5664static void struct_dbe_VisualInfos(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
5665{
5666 int i;
5667 for (i = 0; i < count; i++) {
5668 proto_item *item;
5669 proto_tree *t;
5670 int f_n_infos;
5671
5672 item = proto_tree_add_item(root, hf_x11_struct_dbe_VisualInfos, tvb, *offsetp, struct_size_dbe_VisualInfos(tvb, offsetp, byte_order), ENC_NA);
5673 t = proto_item_add_subtree(item, ett_x11_rectangle);
5674 f_n_infos = tvb_get_uint32(tvb, *offsetp, byte_order);
5675 proto_tree_add_item(t, hf_x11_struct_dbe_VisualInfos_n_infos, tvb, *offsetp, 4, byte_order);
5676 *offsetp += 4;
5677 struct_dbe_VisualInfo(tvb, offsetp, t, byte_order, f_n_infos);
5678 }
5679}
5680
5681static void dbeQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5682{
5683 proto_tree_add_item(t, hf_x11_dbe_QueryVersion_major_version, tvb, *offsetp, 1, byte_order);
5684 *offsetp += 1;
5685 proto_tree_add_item(t, hf_x11_dbe_QueryVersion_minor_version, tvb, *offsetp, 1, byte_order);
5686 *offsetp += 1;
5687 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
5688 *offsetp += 2;
5689}
5690static void dbeQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
5691{
5692 int sequence_number;
5693
5694 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
5695
5696 REPLY(reply);
5697 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5698 *offsetp += 1;
5699 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
5700 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5701 "%d (dbe-QueryVersion)", sequence_number);
5702 *offsetp += 2;
5703 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5704 *offsetp += 4;
5705 proto_tree_add_item(t, hf_x11_dbe_QueryVersion_reply_major_version, tvb, *offsetp, 1, byte_order);
5706 *offsetp += 1;
5707 proto_tree_add_item(t, hf_x11_dbe_QueryVersion_reply_minor_version, tvb, *offsetp, 1, byte_order);
5708 *offsetp += 1;
5709 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
5710 *offsetp += 22;
5711}
5712
5713static void dbeAllocateBackBuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5714{
5715 proto_tree_add_item(t, hf_x11_dbe_AllocateBackBuffer_window, tvb, *offsetp, 4, byte_order);
5716 *offsetp += 4;
5717 proto_tree_add_item(t, hf_x11_dbe_AllocateBackBuffer_buffer, tvb, *offsetp, 4, byte_order);
5718 *offsetp += 4;
5719 proto_tree_add_item(t, hf_x11_dbe_AllocateBackBuffer_swap_action, tvb, *offsetp, 1, byte_order);
5720 *offsetp += 1;
5721 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
5722 *offsetp += 3;
5723}
5724
5725static void dbeDeallocateBackBuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5726{
5727 proto_tree_add_item(t, hf_x11_dbe_DeallocateBackBuffer_buffer, tvb, *offsetp, 4, byte_order);
5728 *offsetp += 4;
5729}
5730
5731static void dbeSwapBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5732{
5733 int f_n_actions;
5734 f_n_actions = tvb_get_uint32(tvb, *offsetp, byte_order);
5735 proto_tree_add_item(t, hf_x11_dbe_SwapBuffers_n_actions, tvb, *offsetp, 4, byte_order);
5736 *offsetp += 4;
5737 struct_dbe_SwapInfo(tvb, offsetp, t, byte_order, f_n_actions);
5738 length -= f_n_actions * 8;
5739}
5740
5741static void dbeBeginIdiom(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
5742{
5743}
5744
5745static void dbeEndIdiom(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
5746{
5747}
5748
5749static void dbeGetVisualInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5750{
5751 int f_n_drawables;
5752 f_n_drawables = tvb_get_uint32(tvb, *offsetp, byte_order);
5753 proto_tree_add_item(t, hf_x11_dbe_GetVisualInfo_n_drawables, tvb, *offsetp, 4, byte_order);
5754 *offsetp += 4;
5755 listOfCard32(tvb, offsetp, t, hf_x11_dbe_GetVisualInfo_drawables, hf_x11_dbe_GetVisualInfo_drawables_item, f_n_drawables, byte_order);
5756 length -= f_n_drawables * 4;
5757}
5758static void dbeGetVisualInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
5759{
5760 int sequence_number;
5761 int f_n_supported_visuals;
5762
5763 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVisualInfo");
5764
5765 REPLY(reply);
5766 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5767 *offsetp += 1;
5768 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
5769 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5770 "%d (dbe-GetVisualInfo)", sequence_number);
5771 *offsetp += 2;
5772 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5773 *offsetp += 4;
5774 f_n_supported_visuals = tvb_get_uint32(tvb, *offsetp, byte_order);
5775 proto_tree_add_item(t, hf_x11_dbe_GetVisualInfo_reply_n_supported_visuals, tvb, *offsetp, 4, byte_order);
5776 *offsetp += 4;
5777 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
5778 *offsetp += 20;
5779 struct_dbe_VisualInfos(tvb, offsetp, t, byte_order, f_n_supported_visuals);
5780}
5781
5782static void dbeGetBackBufferAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5783{
5784 proto_tree_add_item(t, hf_x11_dbe_GetBackBufferAttributes_buffer, tvb, *offsetp, 4, byte_order);
5785 *offsetp += 4;
5786}
5787static void dbeGetBackBufferAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
5788{
5789 int sequence_number;
5790
5791 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetBackBufferAttributes");
5792
5793 REPLY(reply);
5794 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5795 *offsetp += 1;
5796 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
5797 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5798 "%d (dbe-GetBackBufferAttributes)", sequence_number);
5799 *offsetp += 2;
5800 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5801 *offsetp += 4;
5802 struct_dbe_BufferAttributes(tvb, offsetp, t, byte_order, 1);
5803 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
5804 *offsetp += 20;
5805}
5806static const value_string dbe_extension_minor[] = {
5807 { 0, "QueryVersion" },
5808 { 1, "AllocateBackBuffer" },
5809 { 2, "DeallocateBackBuffer" },
5810 { 3, "SwapBuffers" },
5811 { 4, "BeginIdiom" },
5812 { 5, "EndIdiom" },
5813 { 6, "GetVisualInfo" },
5814 { 7, "GetBackBufferAttributes" },
5815 { 0, NULL }
5816};
5817static const x11_event_info dbe_events[] = {
5818 { NULL, NULL }
5819};
5820static const x11_reply_info dbe_replies[] = {
5821 { 0, dbeQueryVersion_Reply },
5822 { 6, dbeGetVisualInfo_Reply },
5823 { 7, dbeGetBackBufferAttributes_Reply },
5824 { 0, NULL }
5825};
5826
5827static void dispatch_dbe(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
5828{
5829 int minor, length;
5830 minor = CARD8(dbe_extension_minor);
5831 length = REQUEST_LENGTH();
5832
5833 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
5834 val_to_str(minor, dbe_extension_minor,
5835 "<Unknown opcode %d>"));
5836 switch (minor) {
5837 case 0:
5838 dbeQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
5839 break;
5840 case 1:
5841 dbeAllocateBackBuffer(tvb, pinfo, offsetp, t, byte_order, length);
5842 break;
5843 case 2:
5844 dbeDeallocateBackBuffer(tvb, pinfo, offsetp, t, byte_order, length);
5845 break;
5846 case 3:
5847 dbeSwapBuffers(tvb, pinfo, offsetp, t, byte_order, length);
5848 break;
5849 case 4:
5850 dbeBeginIdiom(tvb, pinfo, offsetp, t, byte_order, length);
5851 break;
5852 case 5:
5853 dbeEndIdiom(tvb, pinfo, offsetp, t, byte_order, length);
5854 break;
5855 case 6:
5856 dbeGetVisualInfo(tvb, pinfo, offsetp, t, byte_order, length);
5857 break;
5858 case 7:
5859 dbeGetBackBufferAttributes(tvb, pinfo, offsetp, t, byte_order, length);
5860 break;
5861 /* No need for a default case here, since Unknown is printed above,
5862 and UNDECODED() is taken care of by dissect_x11_request */
5863 }
5864}
5865
5866static void register_dbe(void)
5867{
5868 set_handler("DOUBLE-BUFFER", dispatch_dbe, dbe_errors, dbe_events, NULL, dbe_replies);
5869}
5870
5871static void dpmsGetVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5872{
5873 proto_tree_add_item(t, hf_x11_dpms_GetVersion_client_major_version, tvb, *offsetp, 2, byte_order);
5874 *offsetp += 2;
5875 proto_tree_add_item(t, hf_x11_dpms_GetVersion_client_minor_version, tvb, *offsetp, 2, byte_order);
5876 *offsetp += 2;
5877}
5878static void dpmsGetVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
5879{
5880 int sequence_number;
5881
5882 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVersion");
5883
5884 REPLY(reply);
5885 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5886 *offsetp += 1;
5887 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
5888 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5889 "%d (dpms-GetVersion)", sequence_number);
5890 *offsetp += 2;
5891 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5892 *offsetp += 4;
5893 proto_tree_add_item(t, hf_x11_dpms_GetVersion_reply_server_major_version, tvb, *offsetp, 2, byte_order);
5894 *offsetp += 2;
5895 proto_tree_add_item(t, hf_x11_dpms_GetVersion_reply_server_minor_version, tvb, *offsetp, 2, byte_order);
5896 *offsetp += 2;
5897}
5898
5899static void dpmsCapable(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
5900{
5901}
5902static void dpmsCapable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
5903{
5904 int sequence_number;
5905
5906 col_append_fstr(pinfo->cinfo, COL_INFO, "-Capable");
5907
5908 REPLY(reply);
5909 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5910 *offsetp += 1;
5911 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
5912 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5913 "%d (dpms-Capable)", sequence_number);
5914 *offsetp += 2;
5915 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5916 *offsetp += 4;
5917 proto_tree_add_item(t, hf_x11_dpms_Capable_reply_capable, tvb, *offsetp, 1, byte_order);
5918 *offsetp += 1;
5919 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
5920 *offsetp += 23;
5921}
5922
5923static void dpmsGetTimeouts(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
5924{
5925}
5926static void dpmsGetTimeouts_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
5927{
5928 int sequence_number;
5929
5930 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTimeouts");
5931
5932 REPLY(reply);
5933 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5934 *offsetp += 1;
5935 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
5936 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5937 "%d (dpms-GetTimeouts)", sequence_number);
5938 *offsetp += 2;
5939 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5940 *offsetp += 4;
5941 proto_tree_add_item(t, hf_x11_dpms_GetTimeouts_reply_standby_timeout, tvb, *offsetp, 2, byte_order);
5942 *offsetp += 2;
5943 proto_tree_add_item(t, hf_x11_dpms_GetTimeouts_reply_suspend_timeout, tvb, *offsetp, 2, byte_order);
5944 *offsetp += 2;
5945 proto_tree_add_item(t, hf_x11_dpms_GetTimeouts_reply_off_timeout, tvb, *offsetp, 2, byte_order);
5946 *offsetp += 2;
5947 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
5948 *offsetp += 18;
5949}
5950
5951static void dpmsSetTimeouts(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5952{
5953 proto_tree_add_item(t, hf_x11_dpms_SetTimeouts_standby_timeout, tvb, *offsetp, 2, byte_order);
5954 *offsetp += 2;
5955 proto_tree_add_item(t, hf_x11_dpms_SetTimeouts_suspend_timeout, tvb, *offsetp, 2, byte_order);
5956 *offsetp += 2;
5957 proto_tree_add_item(t, hf_x11_dpms_SetTimeouts_off_timeout, tvb, *offsetp, 2, byte_order);
5958 *offsetp += 2;
5959}
5960
5961static void dpmsEnable(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
5962{
5963}
5964
5965static void dpmsDisable(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
5966{
5967}
5968
5969static void dpmsForceLevel(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
5970{
5971 field16(tvb, offsetp, t, hf_x11_dpms_ForceLevel_power_level, byte_order);
5972}
5973
5974static void dpmsInfo(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
5975{
5976}
5977static void dpmsInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
5978{
5979 int sequence_number;
5980
5981 col_append_fstr(pinfo->cinfo, COL_INFO, "-Info");
5982
5983 REPLY(reply);
5984 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
5985 *offsetp += 1;
5986 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
5987 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
5988 "%d (dpms-Info)", sequence_number);
5989 *offsetp += 2;
5990 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
5991 *offsetp += 4;
5992 field16(tvb, offsetp, t, hf_x11_dpms_Info_reply_power_level, byte_order);
5993 proto_tree_add_item(t, hf_x11_dpms_Info_reply_state, tvb, *offsetp, 1, byte_order);
5994 *offsetp += 1;
5995 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 21, ENC_NA);
5996 *offsetp += 21;
5997}
5998
5999static void dpmsSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6000{
6001 {
6002 static int* const event_mask_bits [] = {
6003 &hf_x11_dpms_SelectInput_event_mask_mask_InfoNotify,
6004 NULL
6005 };
6006 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_dpms_SelectInput_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
6007 }
6008 *offsetp += 4;
6009}
6010static const value_string dpms_extension_minor[] = {
6011 { 0, "GetVersion" },
6012 { 1, "Capable" },
6013 { 2, "GetTimeouts" },
6014 { 3, "SetTimeouts" },
6015 { 4, "Enable" },
6016 { 5, "Disable" },
6017 { 6, "ForceLevel" },
6018 { 7, "Info" },
6019 { 8, "SelectInput" },
6020 { 0, NULL }
6021};
6022static const x11_event_info dpms_events[] = {
6023 { NULL, NULL }
6024};
6025static const x11_reply_info dpms_replies[] = {
6026 { 0, dpmsGetVersion_Reply },
6027 { 1, dpmsCapable_Reply },
6028 { 2, dpmsGetTimeouts_Reply },
6029 { 7, dpmsInfo_Reply },
6030 { 0, NULL }
6031};
6032
6033static void dispatch_dpms(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6034{
6035 int minor, length;
6036 minor = CARD8(dpms_extension_minor);
6037 length = REQUEST_LENGTH();
6038
6039 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
6040 val_to_str(minor, dpms_extension_minor,
6041 "<Unknown opcode %d>"));
6042 switch (minor) {
6043 case 0:
6044 dpmsGetVersion(tvb, pinfo, offsetp, t, byte_order, length);
6045 break;
6046 case 1:
6047 dpmsCapable(tvb, pinfo, offsetp, t, byte_order, length);
6048 break;
6049 case 2:
6050 dpmsGetTimeouts(tvb, pinfo, offsetp, t, byte_order, length);
6051 break;
6052 case 3:
6053 dpmsSetTimeouts(tvb, pinfo, offsetp, t, byte_order, length);
6054 break;
6055 case 4:
6056 dpmsEnable(tvb, pinfo, offsetp, t, byte_order, length);
6057 break;
6058 case 5:
6059 dpmsDisable(tvb, pinfo, offsetp, t, byte_order, length);
6060 break;
6061 case 6:
6062 dpmsForceLevel(tvb, pinfo, offsetp, t, byte_order, length);
6063 break;
6064 case 7:
6065 dpmsInfo(tvb, pinfo, offsetp, t, byte_order, length);
6066 break;
6067 case 8:
6068 dpmsSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
6069 break;
6070 /* No need for a default case here, since Unknown is printed above,
6071 and UNDECODED() is taken care of by dissect_x11_request */
6072 }
6073}
6074
6075static void register_dpms(void)
6076{
6077 set_handler("DPMS", dispatch_dpms, dpms_errors, dpms_events, NULL, dpms_replies);
6078}
6079
6080static void struct_dri2_DRI2Buffer(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
6081{
6082 int i;
6083 for (i = 0; i < count; i++) {
6084 proto_item *item;
6085 proto_tree *t;
6086
6087 item = proto_tree_add_item(root, hf_x11_struct_dri2_DRI2Buffer, tvb, *offsetp, 20, ENC_NA);
6088 t = proto_item_add_subtree(item, ett_x11_rectangle);
6089 field32(tvb, offsetp, t, hf_x11_struct_dri2_DRI2Buffer_attachment, byte_order);
6090 proto_tree_add_item(t, hf_x11_struct_dri2_DRI2Buffer_name, tvb, *offsetp, 4, byte_order);
6091 *offsetp += 4;
6092 proto_tree_add_item(t, hf_x11_struct_dri2_DRI2Buffer_pitch, tvb, *offsetp, 4, byte_order);
6093 *offsetp += 4;
6094 proto_tree_add_item(t, hf_x11_struct_dri2_DRI2Buffer_cpp, tvb, *offsetp, 4, byte_order);
6095 *offsetp += 4;
6096 proto_tree_add_item(t, hf_x11_struct_dri2_DRI2Buffer_flags, tvb, *offsetp, 4, byte_order);
6097 *offsetp += 4;
6098 }
6099}
6100
6101static void struct_dri2_AttachFormat(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
6102{
6103 int i;
6104 for (i = 0; i < count; i++) {
6105 proto_item *item;
6106 proto_tree *t;
6107
6108 item = proto_tree_add_item(root, hf_x11_struct_dri2_AttachFormat, tvb, *offsetp, 8, ENC_NA);
6109 t = proto_item_add_subtree(item, ett_x11_rectangle);
6110 field32(tvb, offsetp, t, hf_x11_struct_dri2_AttachFormat_attachment, byte_order);
6111 proto_tree_add_item(t, hf_x11_struct_dri2_AttachFormat_format, tvb, *offsetp, 4, byte_order);
6112 *offsetp += 4;
6113 }
6114}
6115
6116static void dri2QueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6117{
6118 proto_tree_add_item(t, hf_x11_dri2_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
6119 *offsetp += 4;
6120 proto_tree_add_item(t, hf_x11_dri2_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
6121 *offsetp += 4;
6122}
6123static void dri2QueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6124{
6125 int sequence_number;
6126
6127 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
6128
6129 REPLY(reply);
6130 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6131 *offsetp += 1;
6132 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6133 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6134 "%d (dri2-QueryVersion)", sequence_number);
6135 *offsetp += 2;
6136 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6137 *offsetp += 4;
6138 proto_tree_add_item(t, hf_x11_dri2_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
6139 *offsetp += 4;
6140 proto_tree_add_item(t, hf_x11_dri2_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
6141 *offsetp += 4;
6142}
6143
6144static void dri2Connect(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6145{
6146 proto_tree_add_item(t, hf_x11_dri2_Connect_window, tvb, *offsetp, 4, byte_order);
6147 *offsetp += 4;
6148 field32(tvb, offsetp, t, hf_x11_dri2_Connect_driver_type, byte_order);
6149}
6150static void dri2Connect_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6151{
6152 int sequence_number;
6153 int f_driver_name_length;
6154 int f_device_name_length;
6155
6156 col_append_fstr(pinfo->cinfo, COL_INFO, "-Connect");
6157
6158 REPLY(reply);
6159 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6160 *offsetp += 1;
6161 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6162 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6163 "%d (dri2-Connect)", sequence_number);
6164 *offsetp += 2;
6165 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6166 *offsetp += 4;
6167 f_driver_name_length = tvb_get_uint32(tvb, *offsetp, byte_order);
6168 proto_tree_add_item(t, hf_x11_dri2_Connect_reply_driver_name_length, tvb, *offsetp, 4, byte_order);
6169 *offsetp += 4;
6170 f_device_name_length = tvb_get_uint32(tvb, *offsetp, byte_order);
6171 proto_tree_add_item(t, hf_x11_dri2_Connect_reply_device_name_length, tvb, *offsetp, 4, byte_order);
6172 *offsetp += 4;
6173 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
6174 *offsetp += 16;
6175 listOfByte(tvb, offsetp, t, hf_x11_dri2_Connect_reply_driver_name, f_driver_name_length, byte_order);
6176 listOfByte(tvb, offsetp, t, hf_x11_dri2_Connect_reply_alignment_pad, (((f_driver_name_length + 3) & (~3)) - f_driver_name_length), byte_order);
6177 listOfByte(tvb, offsetp, t, hf_x11_dri2_Connect_reply_device_name, f_device_name_length, byte_order);
6178}
6179
6180static void dri2Authenticate(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6181{
6182 proto_tree_add_item(t, hf_x11_dri2_Authenticate_window, tvb, *offsetp, 4, byte_order);
6183 *offsetp += 4;
6184 proto_tree_add_item(t, hf_x11_dri2_Authenticate_magic, tvb, *offsetp, 4, byte_order);
6185 *offsetp += 4;
6186}
6187static void dri2Authenticate_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6188{
6189 int sequence_number;
6190
6191 col_append_fstr(pinfo->cinfo, COL_INFO, "-Authenticate");
6192
6193 REPLY(reply);
6194 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6195 *offsetp += 1;
6196 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6197 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6198 "%d (dri2-Authenticate)", sequence_number);
6199 *offsetp += 2;
6200 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6201 *offsetp += 4;
6202 proto_tree_add_item(t, hf_x11_dri2_Authenticate_reply_authenticated, tvb, *offsetp, 4, byte_order);
6203 *offsetp += 4;
6204}
6205
6206static void dri2CreateDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6207{
6208 proto_tree_add_item(t, hf_x11_dri2_CreateDrawable_drawable, tvb, *offsetp, 4, byte_order);
6209 *offsetp += 4;
6210}
6211
6212static void dri2DestroyDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6213{
6214 proto_tree_add_item(t, hf_x11_dri2_DestroyDrawable_drawable, tvb, *offsetp, 4, byte_order);
6215 *offsetp += 4;
6216}
6217
6218static void dri2GetBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6219{
6220 proto_tree_add_item(t, hf_x11_dri2_GetBuffers_drawable, tvb, *offsetp, 4, byte_order);
6221 *offsetp += 4;
6222 proto_tree_add_item(t, hf_x11_dri2_GetBuffers_count, tvb, *offsetp, 4, byte_order);
6223 *offsetp += 4;
6224 listOfCard32(tvb, offsetp, t, hf_x11_dri2_GetBuffers_attachments, hf_x11_dri2_GetBuffers_attachments_item, (length - 12) / 4, byte_order);
6225}
6226static void dri2GetBuffers_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6227{
6228 int sequence_number;
6229 int f_count;
6230
6231 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetBuffers");
6232
6233 REPLY(reply);
6234 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6235 *offsetp += 1;
6236 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6237 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6238 "%d (dri2-GetBuffers)", sequence_number);
6239 *offsetp += 2;
6240 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6241 *offsetp += 4;
6242 proto_tree_add_item(t, hf_x11_dri2_GetBuffers_reply_width, tvb, *offsetp, 4, byte_order);
6243 *offsetp += 4;
6244 proto_tree_add_item(t, hf_x11_dri2_GetBuffers_reply_height, tvb, *offsetp, 4, byte_order);
6245 *offsetp += 4;
6246 f_count = tvb_get_uint32(tvb, *offsetp, byte_order);
6247 proto_tree_add_item(t, hf_x11_dri2_GetBuffers_reply_count, tvb, *offsetp, 4, byte_order);
6248 *offsetp += 4;
6249 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
6250 *offsetp += 12;
6251 struct_dri2_DRI2Buffer(tvb, offsetp, t, byte_order, f_count);
6252}
6253
6254static void dri2CopyRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6255{
6256 proto_tree_add_item(t, hf_x11_dri2_CopyRegion_drawable, tvb, *offsetp, 4, byte_order);
6257 *offsetp += 4;
6258 proto_tree_add_item(t, hf_x11_dri2_CopyRegion_region, tvb, *offsetp, 4, byte_order);
6259 *offsetp += 4;
6260 proto_tree_add_item(t, hf_x11_dri2_CopyRegion_dest, tvb, *offsetp, 4, byte_order);
6261 *offsetp += 4;
6262 proto_tree_add_item(t, hf_x11_dri2_CopyRegion_src, tvb, *offsetp, 4, byte_order);
6263 *offsetp += 4;
6264}
6265static void dri2CopyRegion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6266{
6267 int sequence_number;
6268
6269 col_append_fstr(pinfo->cinfo, COL_INFO, "-CopyRegion");
6270
6271 REPLY(reply);
6272 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6273 *offsetp += 1;
6274 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6275 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6276 "%d (dri2-CopyRegion)", sequence_number);
6277 *offsetp += 2;
6278 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6279 *offsetp += 4;
6280}
6281
6282static void dri2GetBuffersWithFormat(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6283{
6284 proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_drawable, tvb, *offsetp, 4, byte_order);
6285 *offsetp += 4;
6286 proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_count, tvb, *offsetp, 4, byte_order);
6287 *offsetp += 4;
6288 struct_dri2_AttachFormat(tvb, offsetp, t, byte_order, (length - 12) / 8);
6289}
6290static void dri2GetBuffersWithFormat_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6291{
6292 int sequence_number;
6293 int f_count;
6294
6295 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetBuffersWithFormat");
6296
6297 REPLY(reply);
6298 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6299 *offsetp += 1;
6300 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6301 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6302 "%d (dri2-GetBuffersWithFormat)", sequence_number);
6303 *offsetp += 2;
6304 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6305 *offsetp += 4;
6306 proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_reply_width, tvb, *offsetp, 4, byte_order);
6307 *offsetp += 4;
6308 proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_reply_height, tvb, *offsetp, 4, byte_order);
6309 *offsetp += 4;
6310 f_count = tvb_get_uint32(tvb, *offsetp, byte_order);
6311 proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_reply_count, tvb, *offsetp, 4, byte_order);
6312 *offsetp += 4;
6313 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
6314 *offsetp += 12;
6315 struct_dri2_DRI2Buffer(tvb, offsetp, t, byte_order, f_count);
6316}
6317
6318static void dri2SwapBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6319{
6320 proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_drawable, tvb, *offsetp, 4, byte_order);
6321 *offsetp += 4;
6322 proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_target_msc_hi, tvb, *offsetp, 4, byte_order);
6323 *offsetp += 4;
6324 proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_target_msc_lo, tvb, *offsetp, 4, byte_order);
6325 *offsetp += 4;
6326 proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_divisor_hi, tvb, *offsetp, 4, byte_order);
6327 *offsetp += 4;
6328 proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_divisor_lo, tvb, *offsetp, 4, byte_order);
6329 *offsetp += 4;
6330 proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_remainder_hi, tvb, *offsetp, 4, byte_order);
6331 *offsetp += 4;
6332 proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_remainder_lo, tvb, *offsetp, 4, byte_order);
6333 *offsetp += 4;
6334}
6335static void dri2SwapBuffers_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6336{
6337 int sequence_number;
6338
6339 col_append_fstr(pinfo->cinfo, COL_INFO, "-SwapBuffers");
6340
6341 REPLY(reply);
6342 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6343 *offsetp += 1;
6344 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6345 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6346 "%d (dri2-SwapBuffers)", sequence_number);
6347 *offsetp += 2;
6348 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6349 *offsetp += 4;
6350 proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_reply_swap_hi, tvb, *offsetp, 4, byte_order);
6351 *offsetp += 4;
6352 proto_tree_add_item(t, hf_x11_dri2_SwapBuffers_reply_swap_lo, tvb, *offsetp, 4, byte_order);
6353 *offsetp += 4;
6354}
6355
6356static void dri2GetMSC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6357{
6358 proto_tree_add_item(t, hf_x11_dri2_GetMSC_drawable, tvb, *offsetp, 4, byte_order);
6359 *offsetp += 4;
6360}
6361static void dri2GetMSC_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6362{
6363 int sequence_number;
6364
6365 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMSC");
6366
6367 REPLY(reply);
6368 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6369 *offsetp += 1;
6370 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6371 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6372 "%d (dri2-GetMSC)", sequence_number);
6373 *offsetp += 2;
6374 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6375 *offsetp += 4;
6376 proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_ust_hi, tvb, *offsetp, 4, byte_order);
6377 *offsetp += 4;
6378 proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_ust_lo, tvb, *offsetp, 4, byte_order);
6379 *offsetp += 4;
6380 proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_msc_hi, tvb, *offsetp, 4, byte_order);
6381 *offsetp += 4;
6382 proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_msc_lo, tvb, *offsetp, 4, byte_order);
6383 *offsetp += 4;
6384 proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_sbc_hi, tvb, *offsetp, 4, byte_order);
6385 *offsetp += 4;
6386 proto_tree_add_item(t, hf_x11_dri2_GetMSC_reply_sbc_lo, tvb, *offsetp, 4, byte_order);
6387 *offsetp += 4;
6388}
6389
6390static void dri2WaitMSC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6391{
6392 proto_tree_add_item(t, hf_x11_dri2_WaitMSC_drawable, tvb, *offsetp, 4, byte_order);
6393 *offsetp += 4;
6394 proto_tree_add_item(t, hf_x11_dri2_WaitMSC_target_msc_hi, tvb, *offsetp, 4, byte_order);
6395 *offsetp += 4;
6396 proto_tree_add_item(t, hf_x11_dri2_WaitMSC_target_msc_lo, tvb, *offsetp, 4, byte_order);
6397 *offsetp += 4;
6398 proto_tree_add_item(t, hf_x11_dri2_WaitMSC_divisor_hi, tvb, *offsetp, 4, byte_order);
6399 *offsetp += 4;
6400 proto_tree_add_item(t, hf_x11_dri2_WaitMSC_divisor_lo, tvb, *offsetp, 4, byte_order);
6401 *offsetp += 4;
6402 proto_tree_add_item(t, hf_x11_dri2_WaitMSC_remainder_hi, tvb, *offsetp, 4, byte_order);
6403 *offsetp += 4;
6404 proto_tree_add_item(t, hf_x11_dri2_WaitMSC_remainder_lo, tvb, *offsetp, 4, byte_order);
6405 *offsetp += 4;
6406}
6407static void dri2WaitMSC_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6408{
6409 int sequence_number;
6410
6411 col_append_fstr(pinfo->cinfo, COL_INFO, "-WaitMSC");
6412
6413 REPLY(reply);
6414 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6415 *offsetp += 1;
6416 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6417 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6418 "%d (dri2-WaitMSC)", sequence_number);
6419 *offsetp += 2;
6420 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6421 *offsetp += 4;
6422 proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_ust_hi, tvb, *offsetp, 4, byte_order);
6423 *offsetp += 4;
6424 proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_ust_lo, tvb, *offsetp, 4, byte_order);
6425 *offsetp += 4;
6426 proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_msc_hi, tvb, *offsetp, 4, byte_order);
6427 *offsetp += 4;
6428 proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_msc_lo, tvb, *offsetp, 4, byte_order);
6429 *offsetp += 4;
6430 proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_sbc_hi, tvb, *offsetp, 4, byte_order);
6431 *offsetp += 4;
6432 proto_tree_add_item(t, hf_x11_dri2_WaitMSC_reply_sbc_lo, tvb, *offsetp, 4, byte_order);
6433 *offsetp += 4;
6434}
6435
6436static void dri2WaitSBC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6437{
6438 proto_tree_add_item(t, hf_x11_dri2_WaitSBC_drawable, tvb, *offsetp, 4, byte_order);
6439 *offsetp += 4;
6440 proto_tree_add_item(t, hf_x11_dri2_WaitSBC_target_sbc_hi, tvb, *offsetp, 4, byte_order);
6441 *offsetp += 4;
6442 proto_tree_add_item(t, hf_x11_dri2_WaitSBC_target_sbc_lo, tvb, *offsetp, 4, byte_order);
6443 *offsetp += 4;
6444}
6445static void dri2WaitSBC_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6446{
6447 int sequence_number;
6448
6449 col_append_fstr(pinfo->cinfo, COL_INFO, "-WaitSBC");
6450
6451 REPLY(reply);
6452 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6453 *offsetp += 1;
6454 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6455 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6456 "%d (dri2-WaitSBC)", sequence_number);
6457 *offsetp += 2;
6458 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6459 *offsetp += 4;
6460 proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_ust_hi, tvb, *offsetp, 4, byte_order);
6461 *offsetp += 4;
6462 proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_ust_lo, tvb, *offsetp, 4, byte_order);
6463 *offsetp += 4;
6464 proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_msc_hi, tvb, *offsetp, 4, byte_order);
6465 *offsetp += 4;
6466 proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_msc_lo, tvb, *offsetp, 4, byte_order);
6467 *offsetp += 4;
6468 proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_sbc_hi, tvb, *offsetp, 4, byte_order);
6469 *offsetp += 4;
6470 proto_tree_add_item(t, hf_x11_dri2_WaitSBC_reply_sbc_lo, tvb, *offsetp, 4, byte_order);
6471 *offsetp += 4;
6472}
6473
6474static void dri2SwapInterval(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6475{
6476 proto_tree_add_item(t, hf_x11_dri2_SwapInterval_drawable, tvb, *offsetp, 4, byte_order);
6477 *offsetp += 4;
6478 proto_tree_add_item(t, hf_x11_dri2_SwapInterval_interval, tvb, *offsetp, 4, byte_order);
6479 *offsetp += 4;
6480}
6481
6482static void dri2GetParam(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6483{
6484 proto_tree_add_item(t, hf_x11_dri2_GetParam_drawable, tvb, *offsetp, 4, byte_order);
6485 *offsetp += 4;
6486 proto_tree_add_item(t, hf_x11_dri2_GetParam_param, tvb, *offsetp, 4, byte_order);
6487 *offsetp += 4;
6488}
6489static void dri2GetParam_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6490{
6491 int sequence_number;
6492
6493 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetParam");
6494
6495 REPLY(reply);
6496 proto_tree_add_item(t, hf_x11_dri2_GetParam_reply_is_param_recognized, tvb, *offsetp, 1, byte_order);
6497 *offsetp += 1;
6498 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6499 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6500 "%d (dri2-GetParam)", sequence_number);
6501 *offsetp += 2;
6502 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6503 *offsetp += 4;
6504 proto_tree_add_item(t, hf_x11_dri2_GetParam_reply_value_hi, tvb, *offsetp, 4, byte_order);
6505 *offsetp += 4;
6506 proto_tree_add_item(t, hf_x11_dri2_GetParam_reply_value_lo, tvb, *offsetp, 4, byte_order);
6507 *offsetp += 4;
6508}
6509
6510static void dri2InvalidateBuffers(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
6511{
6512 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6513 *offsetp += 1;
6514 CARD16(event_sequencenumber);
6515 proto_tree_add_item(t, hf_x11_dri2_InvalidateBuffers_drawable, tvb, *offsetp, 4, byte_order);
6516 *offsetp += 4;
6517}
6518
6519static const value_string dri2_extension_minor[] = {
6520 { 0, "QueryVersion" },
6521 { 1, "Connect" },
6522 { 2, "Authenticate" },
6523 { 3, "CreateDrawable" },
6524 { 4, "DestroyDrawable" },
6525 { 5, "GetBuffers" },
6526 { 6, "CopyRegion" },
6527 { 7, "GetBuffersWithFormat" },
6528 { 8, "SwapBuffers" },
6529 { 9, "GetMSC" },
6530 { 10, "WaitMSC" },
6531 { 11, "WaitSBC" },
6532 { 12, "SwapInterval" },
6533 { 13, "GetParam" },
6534 { 0, NULL }
6535};
6536static const x11_event_info dri2_events[] = {
6537 { "dri2-InvalidateBuffers", dri2InvalidateBuffers },
6538 { NULL, NULL }
6539};
6540static const x11_reply_info dri2_replies[] = {
6541 { 0, dri2QueryVersion_Reply },
6542 { 1, dri2Connect_Reply },
6543 { 2, dri2Authenticate_Reply },
6544 { 5, dri2GetBuffers_Reply },
6545 { 6, dri2CopyRegion_Reply },
6546 { 7, dri2GetBuffersWithFormat_Reply },
6547 { 8, dri2SwapBuffers_Reply },
6548 { 9, dri2GetMSC_Reply },
6549 { 10, dri2WaitMSC_Reply },
6550 { 11, dri2WaitSBC_Reply },
6551 { 13, dri2GetParam_Reply },
6552 { 0, NULL }
6553};
6554
6555static void dispatch_dri2(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6556{
6557 int minor, length;
6558 minor = CARD8(dri2_extension_minor);
6559 length = REQUEST_LENGTH();
6560
6561 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
6562 val_to_str(minor, dri2_extension_minor,
6563 "<Unknown opcode %d>"));
6564 switch (minor) {
6565 case 0:
6566 dri2QueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
6567 break;
6568 case 1:
6569 dri2Connect(tvb, pinfo, offsetp, t, byte_order, length);
6570 break;
6571 case 2:
6572 dri2Authenticate(tvb, pinfo, offsetp, t, byte_order, length);
6573 break;
6574 case 3:
6575 dri2CreateDrawable(tvb, pinfo, offsetp, t, byte_order, length);
6576 break;
6577 case 4:
6578 dri2DestroyDrawable(tvb, pinfo, offsetp, t, byte_order, length);
6579 break;
6580 case 5:
6581 dri2GetBuffers(tvb, pinfo, offsetp, t, byte_order, length);
6582 break;
6583 case 6:
6584 dri2CopyRegion(tvb, pinfo, offsetp, t, byte_order, length);
6585 break;
6586 case 7:
6587 dri2GetBuffersWithFormat(tvb, pinfo, offsetp, t, byte_order, length);
6588 break;
6589 case 8:
6590 dri2SwapBuffers(tvb, pinfo, offsetp, t, byte_order, length);
6591 break;
6592 case 9:
6593 dri2GetMSC(tvb, pinfo, offsetp, t, byte_order, length);
6594 break;
6595 case 10:
6596 dri2WaitMSC(tvb, pinfo, offsetp, t, byte_order, length);
6597 break;
6598 case 11:
6599 dri2WaitSBC(tvb, pinfo, offsetp, t, byte_order, length);
6600 break;
6601 case 12:
6602 dri2SwapInterval(tvb, pinfo, offsetp, t, byte_order, length);
6603 break;
6604 case 13:
6605 dri2GetParam(tvb, pinfo, offsetp, t, byte_order, length);
6606 break;
6607 /* No need for a default case here, since Unknown is printed above,
6608 and UNDECODED() is taken care of by dissect_x11_request */
6609 }
6610}
6611
6612static void register_dri2(void)
6613{
6614 set_handler("DRI2", dispatch_dri2, dri2_errors, dri2_events, NULL, dri2_replies);
6615}
6616
6617static void dri3QueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6618{
6619 proto_tree_add_item(t, hf_x11_dri3_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
6620 *offsetp += 4;
6621 proto_tree_add_item(t, hf_x11_dri3_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
6622 *offsetp += 4;
6623}
6624static void dri3QueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6625{
6626 int sequence_number;
6627
6628 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
6629
6630 REPLY(reply);
6631 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6632 *offsetp += 1;
6633 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6634 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6635 "%d (dri3-QueryVersion)", sequence_number);
6636 *offsetp += 2;
6637 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6638 *offsetp += 4;
6639 proto_tree_add_item(t, hf_x11_dri3_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
6640 *offsetp += 4;
6641 proto_tree_add_item(t, hf_x11_dri3_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
6642 *offsetp += 4;
6643}
6644
6645static void dri3Open(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6646{
6647 proto_tree_add_item(t, hf_x11_dri3_Open_drawable, tvb, *offsetp, 4, byte_order);
6648 *offsetp += 4;
6649 proto_tree_add_item(t, hf_x11_dri3_Open_provider, tvb, *offsetp, 4, byte_order);
6650 *offsetp += 4;
6651}
6652static void dri3Open_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6653{
6654 int sequence_number;
6655
6656 col_append_fstr(pinfo->cinfo, COL_INFO, "-Open");
6657
6658 REPLY(reply);
6659 proto_tree_add_item(t, hf_x11_dri3_Open_reply_nfd, tvb, *offsetp, 1, byte_order);
6660 *offsetp += 1;
6661 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6662 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6663 "%d (dri3-Open)", sequence_number);
6664 *offsetp += 2;
6665 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6666 *offsetp += 4;
6667 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
6668 *offsetp += 24;
6669}
6670
6671static void dri3PixmapFromBuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6672{
6673 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_pixmap, tvb, *offsetp, 4, byte_order);
6674 *offsetp += 4;
6675 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_drawable, tvb, *offsetp, 4, byte_order);
6676 *offsetp += 4;
6677 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_size, tvb, *offsetp, 4, byte_order);
6678 *offsetp += 4;
6679 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_width, tvb, *offsetp, 2, byte_order);
6680 *offsetp += 2;
6681 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_height, tvb, *offsetp, 2, byte_order);
6682 *offsetp += 2;
6683 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_stride, tvb, *offsetp, 2, byte_order);
6684 *offsetp += 2;
6685 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_depth, tvb, *offsetp, 1, byte_order);
6686 *offsetp += 1;
6687 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffer_bpp, tvb, *offsetp, 1, byte_order);
6688 *offsetp += 1;
6689}
6690
6691static void dri3BufferFromPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6692{
6693 proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_pixmap, tvb, *offsetp, 4, byte_order);
6694 *offsetp += 4;
6695}
6696static void dri3BufferFromPixmap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6697{
6698 int sequence_number;
6699
6700 col_append_fstr(pinfo->cinfo, COL_INFO, "-BufferFromPixmap");
6701
6702 REPLY(reply);
6703 proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_nfd, tvb, *offsetp, 1, byte_order);
6704 *offsetp += 1;
6705 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6706 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6707 "%d (dri3-BufferFromPixmap)", sequence_number);
6708 *offsetp += 2;
6709 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6710 *offsetp += 4;
6711 proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_size, tvb, *offsetp, 4, byte_order);
6712 *offsetp += 4;
6713 proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_width, tvb, *offsetp, 2, byte_order);
6714 *offsetp += 2;
6715 proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_height, tvb, *offsetp, 2, byte_order);
6716 *offsetp += 2;
6717 proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_stride, tvb, *offsetp, 2, byte_order);
6718 *offsetp += 2;
6719 proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_depth, tvb, *offsetp, 1, byte_order);
6720 *offsetp += 1;
6721 proto_tree_add_item(t, hf_x11_dri3_BufferFromPixmap_reply_bpp, tvb, *offsetp, 1, byte_order);
6722 *offsetp += 1;
6723 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
6724 *offsetp += 12;
6725}
6726
6727static void dri3FenceFromFD(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6728{
6729 proto_tree_add_item(t, hf_x11_dri3_FenceFromFD_drawable, tvb, *offsetp, 4, byte_order);
6730 *offsetp += 4;
6731 proto_tree_add_item(t, hf_x11_dri3_FenceFromFD_fence, tvb, *offsetp, 4, byte_order);
6732 *offsetp += 4;
6733 proto_tree_add_item(t, hf_x11_dri3_FenceFromFD_initially_triggered, tvb, *offsetp, 1, byte_order);
6734 *offsetp += 1;
6735 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
6736 *offsetp += 3;
6737}
6738
6739static void dri3FDFromFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6740{
6741 proto_tree_add_item(t, hf_x11_dri3_FDFromFence_drawable, tvb, *offsetp, 4, byte_order);
6742 *offsetp += 4;
6743 proto_tree_add_item(t, hf_x11_dri3_FDFromFence_fence, tvb, *offsetp, 4, byte_order);
6744 *offsetp += 4;
6745}
6746static void dri3FDFromFence_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6747{
6748 int sequence_number;
6749
6750 col_append_fstr(pinfo->cinfo, COL_INFO, "-FDFromFence");
6751
6752 REPLY(reply);
6753 proto_tree_add_item(t, hf_x11_dri3_FDFromFence_reply_nfd, tvb, *offsetp, 1, byte_order);
6754 *offsetp += 1;
6755 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6756 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6757 "%d (dri3-FDFromFence)", sequence_number);
6758 *offsetp += 2;
6759 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6760 *offsetp += 4;
6761 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
6762 *offsetp += 24;
6763}
6764
6765static void dri3GetSupportedModifiers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6766{
6767 proto_tree_add_item(t, hf_x11_dri3_GetSupportedModifiers_window, tvb, *offsetp, 4, byte_order);
6768 *offsetp += 4;
6769 proto_tree_add_item(t, hf_x11_dri3_GetSupportedModifiers_depth, tvb, *offsetp, 1, byte_order);
6770 *offsetp += 1;
6771 proto_tree_add_item(t, hf_x11_dri3_GetSupportedModifiers_bpp, tvb, *offsetp, 1, byte_order);
6772 *offsetp += 1;
6773 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
6774 *offsetp += 2;
6775}
6776static void dri3GetSupportedModifiers_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6777{
6778 int sequence_number;
6779 int f_num_window_modifiers;
6780 int f_num_screen_modifiers;
6781
6782 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSupportedModifiers");
6783
6784 REPLY(reply);
6785 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
6786 *offsetp += 1;
6787 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6788 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6789 "%d (dri3-GetSupportedModifiers)", sequence_number);
6790 *offsetp += 2;
6791 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6792 *offsetp += 4;
6793 f_num_window_modifiers = tvb_get_uint32(tvb, *offsetp, byte_order);
6794 proto_tree_add_item(t, hf_x11_dri3_GetSupportedModifiers_reply_num_window_modifiers, tvb, *offsetp, 4, byte_order);
6795 *offsetp += 4;
6796 f_num_screen_modifiers = tvb_get_uint32(tvb, *offsetp, byte_order);
6797 proto_tree_add_item(t, hf_x11_dri3_GetSupportedModifiers_reply_num_screen_modifiers, tvb, *offsetp, 4, byte_order);
6798 *offsetp += 4;
6799 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
6800 *offsetp += 16;
6801 listOfCard64(tvb, offsetp, t, hf_x11_dri3_GetSupportedModifiers_reply_window_modifiers, hf_x11_dri3_GetSupportedModifiers_reply_window_modifiers_item, f_num_window_modifiers, byte_order);
6802 listOfCard64(tvb, offsetp, t, hf_x11_dri3_GetSupportedModifiers_reply_screen_modifiers, hf_x11_dri3_GetSupportedModifiers_reply_screen_modifiers_item, f_num_screen_modifiers, byte_order);
6803}
6804
6805static void dri3PixmapFromBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6806{
6807 int f_num_buffers;
6808 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_pixmap, tvb, *offsetp, 4, byte_order);
6809 *offsetp += 4;
6810 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_window, tvb, *offsetp, 4, byte_order);
6811 *offsetp += 4;
6812 f_num_buffers = tvb_get_uint8(tvb, *offsetp);
6813 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_num_buffers, tvb, *offsetp, 1, byte_order);
6814 *offsetp += 1;
6815 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
6816 *offsetp += 3;
6817 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_width, tvb, *offsetp, 2, byte_order);
6818 *offsetp += 2;
6819 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_height, tvb, *offsetp, 2, byte_order);
6820 *offsetp += 2;
6821 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_stride0, tvb, *offsetp, 4, byte_order);
6822 *offsetp += 4;
6823 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_offset0, tvb, *offsetp, 4, byte_order);
6824 *offsetp += 4;
6825 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_stride1, tvb, *offsetp, 4, byte_order);
6826 *offsetp += 4;
6827 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_offset1, tvb, *offsetp, 4, byte_order);
6828 *offsetp += 4;
6829 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_stride2, tvb, *offsetp, 4, byte_order);
6830 *offsetp += 4;
6831 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_offset2, tvb, *offsetp, 4, byte_order);
6832 *offsetp += 4;
6833 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_stride3, tvb, *offsetp, 4, byte_order);
6834 *offsetp += 4;
6835 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_offset3, tvb, *offsetp, 4, byte_order);
6836 *offsetp += 4;
6837 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_depth, tvb, *offsetp, 1, byte_order);
6838 *offsetp += 1;
6839 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_bpp, tvb, *offsetp, 1, byte_order);
6840 *offsetp += 1;
6841 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
6842 *offsetp += 2;
6843 proto_tree_add_item(t, hf_x11_dri3_PixmapFromBuffers_modifier, tvb, *offsetp, 8, byte_order);
6844 *offsetp += 8;
6845 length -= f_num_buffers * 1;
6846}
6847
6848static void dri3BuffersFromPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6849{
6850 proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_pixmap, tvb, *offsetp, 4, byte_order);
6851 *offsetp += 4;
6852}
6853static void dri3BuffersFromPixmap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6854{
6855 int sequence_number;
6856 int f_nfd;
6857
6858 col_append_fstr(pinfo->cinfo, COL_INFO, "-BuffersFromPixmap");
6859
6860 REPLY(reply);
6861 f_nfd = tvb_get_uint8(tvb, *offsetp);
6862 proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_reply_nfd, tvb, *offsetp, 1, byte_order);
6863 *offsetp += 1;
6864 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
6865 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
6866 "%d (dri3-BuffersFromPixmap)", sequence_number);
6867 *offsetp += 2;
6868 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
6869 *offsetp += 4;
6870 proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_reply_width, tvb, *offsetp, 2, byte_order);
6871 *offsetp += 2;
6872 proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_reply_height, tvb, *offsetp, 2, byte_order);
6873 *offsetp += 2;
6874 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
6875 *offsetp += 4;
6876 proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_reply_modifier, tvb, *offsetp, 8, byte_order);
6877 *offsetp += 8;
6878 proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_reply_depth, tvb, *offsetp, 1, byte_order);
6879 *offsetp += 1;
6880 proto_tree_add_item(t, hf_x11_dri3_BuffersFromPixmap_reply_bpp, tvb, *offsetp, 1, byte_order);
6881 *offsetp += 1;
6882 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 6, ENC_NA);
6883 *offsetp += 6;
6884 listOfCard32(tvb, offsetp, t, hf_x11_dri3_BuffersFromPixmap_reply_strides, hf_x11_dri3_BuffersFromPixmap_reply_strides_item, f_nfd, byte_order);
6885 listOfCard32(tvb, offsetp, t, hf_x11_dri3_BuffersFromPixmap_reply_offsets, hf_x11_dri3_BuffersFromPixmap_reply_offsets_item, f_nfd, byte_order);
6886}
6887
6888static void dri3SetDRMDeviceInUse(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6889{
6890 proto_tree_add_item(t, hf_x11_dri3_SetDRMDeviceInUse_window, tvb, *offsetp, 4, byte_order);
6891 *offsetp += 4;
6892 proto_tree_add_item(t, hf_x11_dri3_SetDRMDeviceInUse_drmMajor, tvb, *offsetp, 4, byte_order);
6893 *offsetp += 4;
6894 proto_tree_add_item(t, hf_x11_dri3_SetDRMDeviceInUse_drmMinor, tvb, *offsetp, 4, byte_order);
6895 *offsetp += 4;
6896}
6897
6898static void dri3ImportSyncobj(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6899{
6900 proto_tree_add_item(t, hf_x11_dri3_ImportSyncobj_syncobj, tvb, *offsetp, 4, byte_order);
6901 *offsetp += 4;
6902 proto_tree_add_item(t, hf_x11_dri3_ImportSyncobj_drawable, tvb, *offsetp, 4, byte_order);
6903 *offsetp += 4;
6904}
6905
6906static void dri3FreeSyncobj(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6907{
6908 proto_tree_add_item(t, hf_x11_dri3_FreeSyncobj_syncobj, tvb, *offsetp, 4, byte_order);
6909 *offsetp += 4;
6910}
6911static const value_string dri3_extension_minor[] = {
6912 { 0, "QueryVersion" },
6913 { 1, "Open" },
6914 { 2, "PixmapFromBuffer" },
6915 { 3, "BufferFromPixmap" },
6916 { 4, "FenceFromFD" },
6917 { 5, "FDFromFence" },
6918 { 6, "GetSupportedModifiers" },
6919 { 7, "PixmapFromBuffers" },
6920 { 8, "BuffersFromPixmap" },
6921 { 9, "SetDRMDeviceInUse" },
6922 { 10, "ImportSyncobj" },
6923 { 11, "FreeSyncobj" },
6924 { 0, NULL }
6925};
6926static const x11_event_info dri3_events[] = {
6927 { NULL, NULL }
6928};
6929static const x11_reply_info dri3_replies[] = {
6930 { 0, dri3QueryVersion_Reply },
6931 { 1, dri3Open_Reply },
6932 { 3, dri3BufferFromPixmap_Reply },
6933 { 5, dri3FDFromFence_Reply },
6934 { 6, dri3GetSupportedModifiers_Reply },
6935 { 8, dri3BuffersFromPixmap_Reply },
6936 { 0, NULL }
6937};
6938
6939static void dispatch_dri3(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
6940{
6941 int minor, length;
6942 minor = CARD8(dri3_extension_minor);
6943 length = REQUEST_LENGTH();
6944
6945 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
6946 val_to_str(minor, dri3_extension_minor,
6947 "<Unknown opcode %d>"));
6948 switch (minor) {
6949 case 0:
6950 dri3QueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
6951 break;
6952 case 1:
6953 dri3Open(tvb, pinfo, offsetp, t, byte_order, length);
6954 break;
6955 case 2:
6956 dri3PixmapFromBuffer(tvb, pinfo, offsetp, t, byte_order, length);
6957 break;
6958 case 3:
6959 dri3BufferFromPixmap(tvb, pinfo, offsetp, t, byte_order, length);
6960 break;
6961 case 4:
6962 dri3FenceFromFD(tvb, pinfo, offsetp, t, byte_order, length);
6963 break;
6964 case 5:
6965 dri3FDFromFence(tvb, pinfo, offsetp, t, byte_order, length);
6966 break;
6967 case 6:
6968 dri3GetSupportedModifiers(tvb, pinfo, offsetp, t, byte_order, length);
6969 break;
6970 case 7:
6971 dri3PixmapFromBuffers(tvb, pinfo, offsetp, t, byte_order, length);
6972 break;
6973 case 8:
6974 dri3BuffersFromPixmap(tvb, pinfo, offsetp, t, byte_order, length);
6975 break;
6976 case 9:
6977 dri3SetDRMDeviceInUse(tvb, pinfo, offsetp, t, byte_order, length);
6978 break;
6979 case 10:
6980 dri3ImportSyncobj(tvb, pinfo, offsetp, t, byte_order, length);
6981 break;
6982 case 11:
6983 dri3FreeSyncobj(tvb, pinfo, offsetp, t, byte_order, length);
6984 break;
6985 /* No need for a default case here, since Unknown is printed above,
6986 and UNDECODED() is taken care of by dissect_x11_request */
6987 }
6988}
6989
6990static void register_dri3(void)
6991{
6992 set_handler("DRI3", dispatch_dri3, dri3_errors, dri3_events, NULL, dri3_replies);
6993}
6994
6995static void geQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
6996{
6997 proto_tree_add_item(t, hf_x11_ge_QueryVersion_client_major_version, tvb, *offsetp, 2, byte_order);
6998 *offsetp += 2;
6999 proto_tree_add_item(t, hf_x11_ge_QueryVersion_client_minor_version, tvb, *offsetp, 2, byte_order);
7000 *offsetp += 2;
7001}
7002static void geQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7003{
7004 int sequence_number;
7005
7006 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
7007
7008 REPLY(reply);
7009 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7010 *offsetp += 1;
7011 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7012 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7013 "%d (ge-QueryVersion)", sequence_number);
7014 *offsetp += 2;
7015 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7016 *offsetp += 4;
7017 proto_tree_add_item(t, hf_x11_ge_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
7018 *offsetp += 2;
7019 proto_tree_add_item(t, hf_x11_ge_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
7020 *offsetp += 2;
7021 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
7022 *offsetp += 20;
7023}
7024static const value_string ge_extension_minor[] = {
7025 { 0, "QueryVersion" },
7026 { 0, NULL }
7027};
7028static const x11_event_info ge_events[] = {
7029 { NULL, NULL }
7030};
7031static const x11_reply_info ge_replies[] = {
7032 { 0, geQueryVersion_Reply },
7033 { 0, NULL }
7034};
7035
7036static void dispatch_ge(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7037{
7038 int minor, length;
7039 minor = CARD8(ge_extension_minor);
7040 length = REQUEST_LENGTH();
7041
7042 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
7043 val_to_str(minor, ge_extension_minor,
7044 "<Unknown opcode %d>"));
7045 switch (minor) {
7046 case 0:
7047 geQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
7048 break;
7049 /* No need for a default case here, since Unknown is printed above,
7050 and UNDECODED() is taken care of by dissect_x11_request */
7051 }
7052}
7053
7054static void register_ge(void)
7055{
7056 set_handler("Generic Event Extension", dispatch_ge, ge_errors, ge_events, NULL, ge_replies);
7057}
7058
7059static void glxBufferSwapComplete(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
7060{
7061 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7062 *offsetp += 1;
7063 CARD16(event_sequencenumber);
7064 proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_event_type, tvb, *offsetp, 2, byte_order);
7065 *offsetp += 2;
7066 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
7067 *offsetp += 2;
7068 proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_drawable, tvb, *offsetp, 4, byte_order);
7069 *offsetp += 4;
7070 proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_ust_hi, tvb, *offsetp, 4, byte_order);
7071 *offsetp += 4;
7072 proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_ust_lo, tvb, *offsetp, 4, byte_order);
7073 *offsetp += 4;
7074 proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_msc_hi, tvb, *offsetp, 4, byte_order);
7075 *offsetp += 4;
7076 proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_msc_lo, tvb, *offsetp, 4, byte_order);
7077 *offsetp += 4;
7078 proto_tree_add_item(t, hf_x11_glx_BufferSwapComplete_sbc, tvb, *offsetp, 4, byte_order);
7079 *offsetp += 4;
7080}
7081
7082
7083static void glxRender(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7084{
7085 proto_tree_add_item(t, hf_x11_glx_Render_context_tag, tvb, *offsetp, 4, byte_order);
7086 *offsetp += 4;
7087 dispatch_glx_render(tvb, pinfo, offsetp, t, byte_order, (length - 8));
7088}
7089
7090static void glxRenderLarge(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7091{
7092 int f_data_len;
7093 proto_tree_add_item(t, hf_x11_glx_RenderLarge_context_tag, tvb, *offsetp, 4, byte_order);
7094 *offsetp += 4;
7095 proto_tree_add_item(t, hf_x11_glx_RenderLarge_request_num, tvb, *offsetp, 2, byte_order);
7096 *offsetp += 2;
7097 proto_tree_add_item(t, hf_x11_glx_RenderLarge_request_total, tvb, *offsetp, 2, byte_order);
7098 *offsetp += 2;
7099 f_data_len = tvb_get_uint32(tvb, *offsetp, byte_order);
7100 proto_tree_add_item(t, hf_x11_glx_RenderLarge_data_len, tvb, *offsetp, 4, byte_order);
7101 *offsetp += 4;
7102 listOfByte(tvb, offsetp, t, hf_x11_glx_RenderLarge_data, f_data_len, byte_order);
7103 length -= f_data_len * 1;
7104}
7105
7106static void glxCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7107{
7108 proto_tree_add_item(t, hf_x11_glx_CreateContext_context, tvb, *offsetp, 4, byte_order);
7109 *offsetp += 4;
7110 proto_tree_add_item(t, hf_x11_glx_CreateContext_visual, tvb, *offsetp, 4, byte_order);
7111 *offsetp += 4;
7112 proto_tree_add_item(t, hf_x11_glx_CreateContext_screen, tvb, *offsetp, 4, byte_order);
7113 *offsetp += 4;
7114 proto_tree_add_item(t, hf_x11_glx_CreateContext_share_list, tvb, *offsetp, 4, byte_order);
7115 *offsetp += 4;
7116 proto_tree_add_item(t, hf_x11_glx_CreateContext_is_direct, tvb, *offsetp, 1, byte_order);
7117 *offsetp += 1;
7118 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
7119 *offsetp += 3;
7120}
7121
7122static void glxDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7123{
7124 proto_tree_add_item(t, hf_x11_glx_DestroyContext_context, tvb, *offsetp, 4, byte_order);
7125 *offsetp += 4;
7126}
7127
7128static void glxMakeCurrent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7129{
7130 proto_tree_add_item(t, hf_x11_glx_MakeCurrent_drawable, tvb, *offsetp, 4, byte_order);
7131 *offsetp += 4;
7132 proto_tree_add_item(t, hf_x11_glx_MakeCurrent_context, tvb, *offsetp, 4, byte_order);
7133 *offsetp += 4;
7134 proto_tree_add_item(t, hf_x11_glx_MakeCurrent_old_context_tag, tvb, *offsetp, 4, byte_order);
7135 *offsetp += 4;
7136}
7137static void glxMakeCurrent_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7138{
7139 int sequence_number;
7140
7141 col_append_fstr(pinfo->cinfo, COL_INFO, "-MakeCurrent");
7142
7143 REPLY(reply);
7144 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7145 *offsetp += 1;
7146 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7147 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7148 "%d (glx-MakeCurrent)", sequence_number);
7149 *offsetp += 2;
7150 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7151 *offsetp += 4;
7152 proto_tree_add_item(t, hf_x11_glx_MakeCurrent_reply_context_tag, tvb, *offsetp, 4, byte_order);
7153 *offsetp += 4;
7154 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
7155 *offsetp += 20;
7156}
7157
7158static void glxIsDirect(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7159{
7160 proto_tree_add_item(t, hf_x11_glx_IsDirect_context, tvb, *offsetp, 4, byte_order);
7161 *offsetp += 4;
7162}
7163static void glxIsDirect_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7164{
7165 int sequence_number;
7166
7167 col_append_fstr(pinfo->cinfo, COL_INFO, "-IsDirect");
7168
7169 REPLY(reply);
7170 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7171 *offsetp += 1;
7172 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7173 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7174 "%d (glx-IsDirect)", sequence_number);
7175 *offsetp += 2;
7176 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7177 *offsetp += 4;
7178 proto_tree_add_item(t, hf_x11_glx_IsDirect_reply_is_direct, tvb, *offsetp, 1, byte_order);
7179 *offsetp += 1;
7180 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
7181 *offsetp += 23;
7182}
7183
7184static void glxQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7185{
7186 proto_tree_add_item(t, hf_x11_glx_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
7187 *offsetp += 4;
7188 proto_tree_add_item(t, hf_x11_glx_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
7189 *offsetp += 4;
7190}
7191static void glxQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7192{
7193 int sequence_number;
7194
7195 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
7196
7197 REPLY(reply);
7198 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7199 *offsetp += 1;
7200 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7201 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7202 "%d (glx-QueryVersion)", sequence_number);
7203 *offsetp += 2;
7204 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7205 *offsetp += 4;
7206 proto_tree_add_item(t, hf_x11_glx_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
7207 *offsetp += 4;
7208 proto_tree_add_item(t, hf_x11_glx_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
7209 *offsetp += 4;
7210 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
7211 *offsetp += 16;
7212}
7213
7214static void glxWaitGL(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7215{
7216 proto_tree_add_item(t, hf_x11_glx_WaitGL_context_tag, tvb, *offsetp, 4, byte_order);
7217 *offsetp += 4;
7218}
7219
7220static void glxWaitX(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7221{
7222 proto_tree_add_item(t, hf_x11_glx_WaitX_context_tag, tvb, *offsetp, 4, byte_order);
7223 *offsetp += 4;
7224}
7225
7226static void glxCopyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7227{
7228 proto_tree_add_item(t, hf_x11_glx_CopyContext_src, tvb, *offsetp, 4, byte_order);
7229 *offsetp += 4;
7230 proto_tree_add_item(t, hf_x11_glx_CopyContext_dest, tvb, *offsetp, 4, byte_order);
7231 *offsetp += 4;
7232 proto_tree_add_item(t, hf_x11_glx_CopyContext_mask, tvb, *offsetp, 4, byte_order);
7233 *offsetp += 4;
7234 proto_tree_add_item(t, hf_x11_glx_CopyContext_src_context_tag, tvb, *offsetp, 4, byte_order);
7235 *offsetp += 4;
7236}
7237
7238static void glxSwapBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7239{
7240 proto_tree_add_item(t, hf_x11_glx_SwapBuffers_context_tag, tvb, *offsetp, 4, byte_order);
7241 *offsetp += 4;
7242 proto_tree_add_item(t, hf_x11_glx_SwapBuffers_drawable, tvb, *offsetp, 4, byte_order);
7243 *offsetp += 4;
7244}
7245
7246static void glxUseXFont(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7247{
7248 proto_tree_add_item(t, hf_x11_glx_UseXFont_context_tag, tvb, *offsetp, 4, byte_order);
7249 *offsetp += 4;
7250 proto_tree_add_item(t, hf_x11_glx_UseXFont_font, tvb, *offsetp, 4, byte_order);
7251 *offsetp += 4;
7252 proto_tree_add_item(t, hf_x11_glx_UseXFont_first, tvb, *offsetp, 4, byte_order);
7253 *offsetp += 4;
7254 proto_tree_add_item(t, hf_x11_glx_UseXFont_count, tvb, *offsetp, 4, byte_order);
7255 *offsetp += 4;
7256 proto_tree_add_item(t, hf_x11_glx_UseXFont_list_base, tvb, *offsetp, 4, byte_order);
7257 *offsetp += 4;
7258}
7259
7260static void glxCreateGLXPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7261{
7262 proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_screen, tvb, *offsetp, 4, byte_order);
7263 *offsetp += 4;
7264 proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_visual, tvb, *offsetp, 4, byte_order);
7265 *offsetp += 4;
7266 proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_pixmap, tvb, *offsetp, 4, byte_order);
7267 *offsetp += 4;
7268 proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_glx_pixmap, tvb, *offsetp, 4, byte_order);
7269 *offsetp += 4;
7270}
7271
7272static void glxGetVisualConfigs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7273{
7274 proto_tree_add_item(t, hf_x11_glx_GetVisualConfigs_screen, tvb, *offsetp, 4, byte_order);
7275 *offsetp += 4;
7276}
7277static void glxGetVisualConfigs_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7278{
7279 int sequence_number;
7280 int f_length;
7281
7282 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVisualConfigs");
7283
7284 REPLY(reply);
7285 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7286 *offsetp += 1;
7287 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7288 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7289 "%d (glx-GetVisualConfigs)", sequence_number);
7290 *offsetp += 2;
7291 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
7292 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7293 *offsetp += 4;
7294 proto_tree_add_item(t, hf_x11_glx_GetVisualConfigs_reply_num_visuals, tvb, *offsetp, 4, byte_order);
7295 *offsetp += 4;
7296 proto_tree_add_item(t, hf_x11_glx_GetVisualConfigs_reply_num_properties, tvb, *offsetp, 4, byte_order);
7297 *offsetp += 4;
7298 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
7299 *offsetp += 16;
7300 listOfCard32(tvb, offsetp, t, hf_x11_glx_GetVisualConfigs_reply_property_list, hf_x11_glx_GetVisualConfigs_reply_property_list_item, f_length, byte_order);
7301}
7302
7303static void glxDestroyGLXPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7304{
7305 proto_tree_add_item(t, hf_x11_glx_DestroyGLXPixmap_glx_pixmap, tvb, *offsetp, 4, byte_order);
7306 *offsetp += 4;
7307}
7308
7309static void glxVendorPrivate(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7310{
7311 proto_tree_add_item(t, hf_x11_glx_VendorPrivate_vendor_code, tvb, *offsetp, 4, byte_order);
7312 *offsetp += 4;
7313 proto_tree_add_item(t, hf_x11_glx_VendorPrivate_context_tag, tvb, *offsetp, 4, byte_order);
7314 *offsetp += 4;
7315 listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivate_data, (length - 12) / 1, byte_order);
7316}
7317
7318static void glxVendorPrivateWithReply(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7319{
7320 proto_tree_add_item(t, hf_x11_glx_VendorPrivateWithReply_vendor_code, tvb, *offsetp, 4, byte_order);
7321 *offsetp += 4;
7322 proto_tree_add_item(t, hf_x11_glx_VendorPrivateWithReply_context_tag, tvb, *offsetp, 4, byte_order);
7323 *offsetp += 4;
7324 listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivateWithReply_data, (length - 12) / 1, byte_order);
7325}
7326static void glxVendorPrivateWithReply_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7327{
7328 int sequence_number;
7329 int f_length;
7330
7331 col_append_fstr(pinfo->cinfo, COL_INFO, "-VendorPrivateWithReply");
7332
7333 REPLY(reply);
7334 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7335 *offsetp += 1;
7336 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7337 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7338 "%d (glx-VendorPrivateWithReply)", sequence_number);
7339 *offsetp += 2;
7340 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
7341 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7342 *offsetp += 4;
7343 proto_tree_add_item(t, hf_x11_glx_VendorPrivateWithReply_reply_retval, tvb, *offsetp, 4, byte_order);
7344 *offsetp += 4;
7345 listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivateWithReply_reply_data1, 24, byte_order);
7346 listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivateWithReply_reply_data2, (f_length * 4), byte_order);
7347}
7348
7349static void glxQueryExtensionsString(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7350{
7351 proto_tree_add_item(t, hf_x11_glx_QueryExtensionsString_screen, tvb, *offsetp, 4, byte_order);
7352 *offsetp += 4;
7353}
7354static void glxQueryExtensionsString_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7355{
7356 int sequence_number;
7357
7358 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryExtensionsString");
7359
7360 REPLY(reply);
7361 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7362 *offsetp += 1;
7363 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7364 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7365 "%d (glx-QueryExtensionsString)", sequence_number);
7366 *offsetp += 2;
7367 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7368 *offsetp += 4;
7369 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7370 *offsetp += 4;
7371 proto_tree_add_item(t, hf_x11_glx_QueryExtensionsString_reply_n, tvb, *offsetp, 4, byte_order);
7372 *offsetp += 4;
7373 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
7374 *offsetp += 16;
7375}
7376
7377static void glxQueryServerString(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7378{
7379 proto_tree_add_item(t, hf_x11_glx_QueryServerString_screen, tvb, *offsetp, 4, byte_order);
7380 *offsetp += 4;
7381 proto_tree_add_item(t, hf_x11_glx_QueryServerString_name, tvb, *offsetp, 4, byte_order);
7382 *offsetp += 4;
7383}
7384static void glxQueryServerString_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7385{
7386 int sequence_number;
7387 int f_str_len;
7388
7389 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryServerString");
7390
7391 REPLY(reply);
7392 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7393 *offsetp += 1;
7394 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7395 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7396 "%d (glx-QueryServerString)", sequence_number);
7397 *offsetp += 2;
7398 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7399 *offsetp += 4;
7400 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7401 *offsetp += 4;
7402 f_str_len = tvb_get_uint32(tvb, *offsetp, byte_order);
7403 proto_tree_add_item(t, hf_x11_glx_QueryServerString_reply_str_len, tvb, *offsetp, 4, byte_order);
7404 *offsetp += 4;
7405 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
7406 *offsetp += 16;
7407 listOfByte(tvb, offsetp, t, hf_x11_glx_QueryServerString_reply_string, f_str_len, byte_order);
7408}
7409
7410static void glxClientInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7411{
7412 int f_str_len;
7413 proto_tree_add_item(t, hf_x11_glx_ClientInfo_major_version, tvb, *offsetp, 4, byte_order);
7414 *offsetp += 4;
7415 proto_tree_add_item(t, hf_x11_glx_ClientInfo_minor_version, tvb, *offsetp, 4, byte_order);
7416 *offsetp += 4;
7417 f_str_len = tvb_get_uint32(tvb, *offsetp, byte_order);
7418 proto_tree_add_item(t, hf_x11_glx_ClientInfo_str_len, tvb, *offsetp, 4, byte_order);
7419 *offsetp += 4;
7420 listOfByte(tvb, offsetp, t, hf_x11_glx_ClientInfo_string, f_str_len, byte_order);
7421 length -= f_str_len * 1;
7422}
7423
7424static void glxGetFBConfigs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7425{
7426 proto_tree_add_item(t, hf_x11_glx_GetFBConfigs_screen, tvb, *offsetp, 4, byte_order);
7427 *offsetp += 4;
7428}
7429static void glxGetFBConfigs_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7430{
7431 int sequence_number;
7432 int f_length;
7433
7434 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetFBConfigs");
7435
7436 REPLY(reply);
7437 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7438 *offsetp += 1;
7439 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7440 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7441 "%d (glx-GetFBConfigs)", sequence_number);
7442 *offsetp += 2;
7443 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
7444 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7445 *offsetp += 4;
7446 proto_tree_add_item(t, hf_x11_glx_GetFBConfigs_reply_num_FB_configs, tvb, *offsetp, 4, byte_order);
7447 *offsetp += 4;
7448 proto_tree_add_item(t, hf_x11_glx_GetFBConfigs_reply_num_properties, tvb, *offsetp, 4, byte_order);
7449 *offsetp += 4;
7450 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
7451 *offsetp += 16;
7452 listOfCard32(tvb, offsetp, t, hf_x11_glx_GetFBConfigs_reply_property_list, hf_x11_glx_GetFBConfigs_reply_property_list_item, f_length, byte_order);
7453}
7454
7455static void glxCreatePixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7456{
7457 int f_num_attribs;
7458 proto_tree_add_item(t, hf_x11_glx_CreatePixmap_screen, tvb, *offsetp, 4, byte_order);
7459 *offsetp += 4;
7460 proto_tree_add_item(t, hf_x11_glx_CreatePixmap_fbconfig, tvb, *offsetp, 4, byte_order);
7461 *offsetp += 4;
7462 proto_tree_add_item(t, hf_x11_glx_CreatePixmap_pixmap, tvb, *offsetp, 4, byte_order);
7463 *offsetp += 4;
7464 proto_tree_add_item(t, hf_x11_glx_CreatePixmap_glx_pixmap, tvb, *offsetp, 4, byte_order);
7465 *offsetp += 4;
7466 f_num_attribs = tvb_get_uint32(tvb, *offsetp, byte_order);
7467 proto_tree_add_item(t, hf_x11_glx_CreatePixmap_num_attribs, tvb, *offsetp, 4, byte_order);
7468 *offsetp += 4;
7469 listOfCard32(tvb, offsetp, t, hf_x11_glx_CreatePixmap_attribs, hf_x11_glx_CreatePixmap_attribs_item, (f_num_attribs * 2), byte_order);
7470 length -= (f_num_attribs * 2) * 4;
7471}
7472
7473static void glxDestroyPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7474{
7475 proto_tree_add_item(t, hf_x11_glx_DestroyPixmap_glx_pixmap, tvb, *offsetp, 4, byte_order);
7476 *offsetp += 4;
7477}
7478
7479static void glxCreateNewContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7480{
7481 proto_tree_add_item(t, hf_x11_glx_CreateNewContext_context, tvb, *offsetp, 4, byte_order);
7482 *offsetp += 4;
7483 proto_tree_add_item(t, hf_x11_glx_CreateNewContext_fbconfig, tvb, *offsetp, 4, byte_order);
7484 *offsetp += 4;
7485 proto_tree_add_item(t, hf_x11_glx_CreateNewContext_screen, tvb, *offsetp, 4, byte_order);
7486 *offsetp += 4;
7487 proto_tree_add_item(t, hf_x11_glx_CreateNewContext_render_type, tvb, *offsetp, 4, byte_order);
7488 *offsetp += 4;
7489 proto_tree_add_item(t, hf_x11_glx_CreateNewContext_share_list, tvb, *offsetp, 4, byte_order);
7490 *offsetp += 4;
7491 proto_tree_add_item(t, hf_x11_glx_CreateNewContext_is_direct, tvb, *offsetp, 1, byte_order);
7492 *offsetp += 1;
7493 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
7494 *offsetp += 3;
7495}
7496
7497static void glxQueryContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7498{
7499 proto_tree_add_item(t, hf_x11_glx_QueryContext_context, tvb, *offsetp, 4, byte_order);
7500 *offsetp += 4;
7501}
7502static void glxQueryContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7503{
7504 int sequence_number;
7505 int f_num_attribs;
7506
7507 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryContext");
7508
7509 REPLY(reply);
7510 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7511 *offsetp += 1;
7512 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7513 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7514 "%d (glx-QueryContext)", sequence_number);
7515 *offsetp += 2;
7516 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7517 *offsetp += 4;
7518 f_num_attribs = tvb_get_uint32(tvb, *offsetp, byte_order);
7519 proto_tree_add_item(t, hf_x11_glx_QueryContext_reply_num_attribs, tvb, *offsetp, 4, byte_order);
7520 *offsetp += 4;
7521 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
7522 *offsetp += 20;
7523 listOfCard32(tvb, offsetp, t, hf_x11_glx_QueryContext_reply_attribs, hf_x11_glx_QueryContext_reply_attribs_item, (f_num_attribs * 2), byte_order);
7524}
7525
7526static void glxMakeContextCurrent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7527{
7528 proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_old_context_tag, tvb, *offsetp, 4, byte_order);
7529 *offsetp += 4;
7530 proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_drawable, tvb, *offsetp, 4, byte_order);
7531 *offsetp += 4;
7532 proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_read_drawable, tvb, *offsetp, 4, byte_order);
7533 *offsetp += 4;
7534 proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_context, tvb, *offsetp, 4, byte_order);
7535 *offsetp += 4;
7536}
7537static void glxMakeContextCurrent_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7538{
7539 int sequence_number;
7540
7541 col_append_fstr(pinfo->cinfo, COL_INFO, "-MakeContextCurrent");
7542
7543 REPLY(reply);
7544 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7545 *offsetp += 1;
7546 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7547 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7548 "%d (glx-MakeContextCurrent)", sequence_number);
7549 *offsetp += 2;
7550 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7551 *offsetp += 4;
7552 proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_reply_context_tag, tvb, *offsetp, 4, byte_order);
7553 *offsetp += 4;
7554 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
7555 *offsetp += 20;
7556}
7557
7558static void glxCreatePbuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7559{
7560 int f_num_attribs;
7561 proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_screen, tvb, *offsetp, 4, byte_order);
7562 *offsetp += 4;
7563 proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_fbconfig, tvb, *offsetp, 4, byte_order);
7564 *offsetp += 4;
7565 proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_pbuffer, tvb, *offsetp, 4, byte_order);
7566 *offsetp += 4;
7567 f_num_attribs = tvb_get_uint32(tvb, *offsetp, byte_order);
7568 proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_num_attribs, tvb, *offsetp, 4, byte_order);
7569 *offsetp += 4;
7570 listOfCard32(tvb, offsetp, t, hf_x11_glx_CreatePbuffer_attribs, hf_x11_glx_CreatePbuffer_attribs_item, (f_num_attribs * 2), byte_order);
7571 length -= (f_num_attribs * 2) * 4;
7572}
7573
7574static void glxDestroyPbuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7575{
7576 proto_tree_add_item(t, hf_x11_glx_DestroyPbuffer_pbuffer, tvb, *offsetp, 4, byte_order);
7577 *offsetp += 4;
7578}
7579
7580static void glxGetDrawableAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7581{
7582 proto_tree_add_item(t, hf_x11_glx_GetDrawableAttributes_drawable, tvb, *offsetp, 4, byte_order);
7583 *offsetp += 4;
7584}
7585static void glxGetDrawableAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7586{
7587 int sequence_number;
7588 int f_num_attribs;
7589
7590 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDrawableAttributes");
7591
7592 REPLY(reply);
7593 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7594 *offsetp += 1;
7595 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7596 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7597 "%d (glx-GetDrawableAttributes)", sequence_number);
7598 *offsetp += 2;
7599 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7600 *offsetp += 4;
7601 f_num_attribs = tvb_get_uint32(tvb, *offsetp, byte_order);
7602 proto_tree_add_item(t, hf_x11_glx_GetDrawableAttributes_reply_num_attribs, tvb, *offsetp, 4, byte_order);
7603 *offsetp += 4;
7604 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
7605 *offsetp += 20;
7606 listOfCard32(tvb, offsetp, t, hf_x11_glx_GetDrawableAttributes_reply_attribs, hf_x11_glx_GetDrawableAttributes_reply_attribs_item, (f_num_attribs * 2), byte_order);
7607}
7608
7609static void glxChangeDrawableAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7610{
7611 int f_num_attribs;
7612 proto_tree_add_item(t, hf_x11_glx_ChangeDrawableAttributes_drawable, tvb, *offsetp, 4, byte_order);
7613 *offsetp += 4;
7614 f_num_attribs = tvb_get_uint32(tvb, *offsetp, byte_order);
7615 proto_tree_add_item(t, hf_x11_glx_ChangeDrawableAttributes_num_attribs, tvb, *offsetp, 4, byte_order);
7616 *offsetp += 4;
7617 listOfCard32(tvb, offsetp, t, hf_x11_glx_ChangeDrawableAttributes_attribs, hf_x11_glx_ChangeDrawableAttributes_attribs_item, (f_num_attribs * 2), byte_order);
7618 length -= (f_num_attribs * 2) * 4;
7619}
7620
7621static void glxCreateWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7622{
7623 int f_num_attribs;
7624 proto_tree_add_item(t, hf_x11_glx_CreateWindow_screen, tvb, *offsetp, 4, byte_order);
7625 *offsetp += 4;
7626 proto_tree_add_item(t, hf_x11_glx_CreateWindow_fbconfig, tvb, *offsetp, 4, byte_order);
7627 *offsetp += 4;
7628 proto_tree_add_item(t, hf_x11_glx_CreateWindow_window, tvb, *offsetp, 4, byte_order);
7629 *offsetp += 4;
7630 proto_tree_add_item(t, hf_x11_glx_CreateWindow_glx_window, tvb, *offsetp, 4, byte_order);
7631 *offsetp += 4;
7632 f_num_attribs = tvb_get_uint32(tvb, *offsetp, byte_order);
7633 proto_tree_add_item(t, hf_x11_glx_CreateWindow_num_attribs, tvb, *offsetp, 4, byte_order);
7634 *offsetp += 4;
7635 listOfCard32(tvb, offsetp, t, hf_x11_glx_CreateWindow_attribs, hf_x11_glx_CreateWindow_attribs_item, (f_num_attribs * 2), byte_order);
7636 length -= (f_num_attribs * 2) * 4;
7637}
7638
7639static void glxDeleteWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7640{
7641 proto_tree_add_item(t, hf_x11_glx_DeleteWindow_glxwindow, tvb, *offsetp, 4, byte_order);
7642 *offsetp += 4;
7643}
7644
7645static void glxSetClientInfoARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7646{
7647 int f_num_versions;
7648 int f_gl_str_len;
7649 int f_glx_str_len;
7650 proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_major_version, tvb, *offsetp, 4, byte_order);
7651 *offsetp += 4;
7652 proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_minor_version, tvb, *offsetp, 4, byte_order);
7653 *offsetp += 4;
7654 f_num_versions = tvb_get_uint32(tvb, *offsetp, byte_order);
7655 proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_num_versions, tvb, *offsetp, 4, byte_order);
7656 *offsetp += 4;
7657 f_gl_str_len = tvb_get_uint32(tvb, *offsetp, byte_order);
7658 proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_gl_str_len, tvb, *offsetp, 4, byte_order);
7659 *offsetp += 4;
7660 f_glx_str_len = tvb_get_uint32(tvb, *offsetp, byte_order);
7661 proto_tree_add_item(t, hf_x11_glx_SetClientInfoARB_glx_str_len, tvb, *offsetp, 4, byte_order);
7662 *offsetp += 4;
7663 listOfCard32(tvb, offsetp, t, hf_x11_glx_SetClientInfoARB_gl_versions, hf_x11_glx_SetClientInfoARB_gl_versions_item, (f_num_versions * 2), byte_order);
7664 length -= (f_num_versions * 2) * 4;
7665 listOfByte(tvb, offsetp, t, hf_x11_glx_SetClientInfoARB_gl_extension_string, f_gl_str_len, byte_order);
7666 length -= f_gl_str_len * 1;
7667 pad_to_4_bytes(tvb, offsetp, t);
7668 length = WS_ROUNDUP_4(length);
7669 listOfByte(tvb, offsetp, t, hf_x11_glx_SetClientInfoARB_glx_extension_string, f_glx_str_len, byte_order);
7670 length -= f_glx_str_len * 1;
7671}
7672
7673static void glxCreateContextAttribsARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7674{
7675 int f_num_attribs;
7676 proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_context, tvb, *offsetp, 4, byte_order);
7677 *offsetp += 4;
7678 proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_fbconfig, tvb, *offsetp, 4, byte_order);
7679 *offsetp += 4;
7680 proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_screen, tvb, *offsetp, 4, byte_order);
7681 *offsetp += 4;
7682 proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_share_list, tvb, *offsetp, 4, byte_order);
7683 *offsetp += 4;
7684 proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_is_direct, tvb, *offsetp, 1, byte_order);
7685 *offsetp += 1;
7686 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
7687 *offsetp += 3;
7688 f_num_attribs = tvb_get_uint32(tvb, *offsetp, byte_order);
7689 proto_tree_add_item(t, hf_x11_glx_CreateContextAttribsARB_num_attribs, tvb, *offsetp, 4, byte_order);
7690 *offsetp += 4;
7691 listOfCard32(tvb, offsetp, t, hf_x11_glx_CreateContextAttribsARB_attribs, hf_x11_glx_CreateContextAttribsARB_attribs_item, (f_num_attribs * 2), byte_order);
7692 length -= (f_num_attribs * 2) * 4;
7693}
7694
7695static void glxSetClientInfo2ARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7696{
7697 int f_num_versions;
7698 int f_gl_str_len;
7699 int f_glx_str_len;
7700 proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_major_version, tvb, *offsetp, 4, byte_order);
7701 *offsetp += 4;
7702 proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_minor_version, tvb, *offsetp, 4, byte_order);
7703 *offsetp += 4;
7704 f_num_versions = tvb_get_uint32(tvb, *offsetp, byte_order);
7705 proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_num_versions, tvb, *offsetp, 4, byte_order);
7706 *offsetp += 4;
7707 f_gl_str_len = tvb_get_uint32(tvb, *offsetp, byte_order);
7708 proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_gl_str_len, tvb, *offsetp, 4, byte_order);
7709 *offsetp += 4;
7710 f_glx_str_len = tvb_get_uint32(tvb, *offsetp, byte_order);
7711 proto_tree_add_item(t, hf_x11_glx_SetClientInfo2ARB_glx_str_len, tvb, *offsetp, 4, byte_order);
7712 *offsetp += 4;
7713 listOfCard32(tvb, offsetp, t, hf_x11_glx_SetClientInfo2ARB_gl_versions, hf_x11_glx_SetClientInfo2ARB_gl_versions_item, (f_num_versions * 3), byte_order);
7714 length -= (f_num_versions * 3) * 4;
7715 listOfByte(tvb, offsetp, t, hf_x11_glx_SetClientInfo2ARB_gl_extension_string, f_gl_str_len, byte_order);
7716 length -= f_gl_str_len * 1;
7717 pad_to_4_bytes(tvb, offsetp, t);
7718 length = WS_ROUNDUP_4(length);
7719 listOfByte(tvb, offsetp, t, hf_x11_glx_SetClientInfo2ARB_glx_extension_string, f_glx_str_len, byte_order);
7720 length -= f_glx_str_len * 1;
7721}
7722
7723static void glxNewList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7724{
7725 proto_tree_add_item(t, hf_x11_glx_NewList_context_tag, tvb, *offsetp, 4, byte_order);
7726 *offsetp += 4;
7727 proto_tree_add_item(t, hf_x11_glx_NewList_list, tvb, *offsetp, 4, byte_order);
7728 *offsetp += 4;
7729 proto_tree_add_item(t, hf_x11_glx_NewList_mode, tvb, *offsetp, 4, byte_order);
7730 *offsetp += 4;
7731}
7732
7733static void glxEndList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7734{
7735 proto_tree_add_item(t, hf_x11_glx_EndList_context_tag, tvb, *offsetp, 4, byte_order);
7736 *offsetp += 4;
7737}
7738
7739static void glxDeleteLists(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7740{
7741 proto_tree_add_item(t, hf_x11_glx_DeleteLists_context_tag, tvb, *offsetp, 4, byte_order);
7742 *offsetp += 4;
7743 proto_tree_add_item(t, hf_x11_glx_DeleteLists_list, tvb, *offsetp, 4, byte_order);
7744 *offsetp += 4;
7745 proto_tree_add_item(t, hf_x11_glx_DeleteLists_range, tvb, *offsetp, 4, byte_order);
7746 *offsetp += 4;
7747}
7748
7749static void glxGenLists(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7750{
7751 proto_tree_add_item(t, hf_x11_glx_GenLists_context_tag, tvb, *offsetp, 4, byte_order);
7752 *offsetp += 4;
7753 proto_tree_add_item(t, hf_x11_glx_GenLists_range, tvb, *offsetp, 4, byte_order);
7754 *offsetp += 4;
7755}
7756static void glxGenLists_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7757{
7758 int sequence_number;
7759
7760 col_append_fstr(pinfo->cinfo, COL_INFO, "-GenLists");
7761
7762 REPLY(reply);
7763 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7764 *offsetp += 1;
7765 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7766 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7767 "%d (glx-GenLists)", sequence_number);
7768 *offsetp += 2;
7769 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7770 *offsetp += 4;
7771 proto_tree_add_item(t, hf_x11_glx_GenLists_reply_ret_val, tvb, *offsetp, 4, byte_order);
7772 *offsetp += 4;
7773}
7774
7775static void glxFeedbackBuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7776{
7777 proto_tree_add_item(t, hf_x11_glx_FeedbackBuffer_context_tag, tvb, *offsetp, 4, byte_order);
7778 *offsetp += 4;
7779 proto_tree_add_item(t, hf_x11_glx_FeedbackBuffer_size, tvb, *offsetp, 4, byte_order);
7780 *offsetp += 4;
7781 proto_tree_add_item(t, hf_x11_glx_FeedbackBuffer_type, tvb, *offsetp, 4, byte_order);
7782 *offsetp += 4;
7783}
7784
7785static void glxSelectBuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7786{
7787 proto_tree_add_item(t, hf_x11_glx_SelectBuffer_context_tag, tvb, *offsetp, 4, byte_order);
7788 *offsetp += 4;
7789 proto_tree_add_item(t, hf_x11_glx_SelectBuffer_size, tvb, *offsetp, 4, byte_order);
7790 *offsetp += 4;
7791}
7792
7793static void glxRenderMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7794{
7795 proto_tree_add_item(t, hf_x11_glx_RenderMode_context_tag, tvb, *offsetp, 4, byte_order);
7796 *offsetp += 4;
7797 proto_tree_add_item(t, hf_x11_glx_RenderMode_mode, tvb, *offsetp, 4, byte_order);
7798 *offsetp += 4;
7799}
7800static void glxRenderMode_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7801{
7802 int sequence_number;
7803 int f_n;
7804
7805 col_append_fstr(pinfo->cinfo, COL_INFO, "-RenderMode");
7806
7807 REPLY(reply);
7808 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7809 *offsetp += 1;
7810 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7811 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7812 "%d (glx-RenderMode)", sequence_number);
7813 *offsetp += 2;
7814 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7815 *offsetp += 4;
7816 proto_tree_add_item(t, hf_x11_glx_RenderMode_reply_ret_val, tvb, *offsetp, 4, byte_order);
7817 *offsetp += 4;
7818 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
7819 proto_tree_add_item(t, hf_x11_glx_RenderMode_reply_n, tvb, *offsetp, 4, byte_order);
7820 *offsetp += 4;
7821 proto_tree_add_item(t, hf_x11_glx_RenderMode_reply_new_mode, tvb, *offsetp, 4, byte_order);
7822 *offsetp += 4;
7823 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
7824 *offsetp += 12;
7825 listOfCard32(tvb, offsetp, t, hf_x11_glx_RenderMode_reply_data, hf_x11_glx_RenderMode_reply_data_item, f_n, byte_order);
7826}
7827
7828static void glxFinish(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7829{
7830 proto_tree_add_item(t, hf_x11_glx_Finish_context_tag, tvb, *offsetp, 4, byte_order);
7831 *offsetp += 4;
7832}
7833static void glxFinish_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7834{
7835 int sequence_number;
7836
7837 col_append_fstr(pinfo->cinfo, COL_INFO, "-Finish");
7838
7839 REPLY(reply);
7840 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7841 *offsetp += 1;
7842 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7843 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7844 "%d (glx-Finish)", sequence_number);
7845 *offsetp += 2;
7846 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7847 *offsetp += 4;
7848}
7849
7850static void glxPixelStoref(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7851{
7852 proto_tree_add_item(t, hf_x11_glx_PixelStoref_context_tag, tvb, *offsetp, 4, byte_order);
7853 *offsetp += 4;
7854 proto_tree_add_item(t, hf_x11_glx_PixelStoref_pname, tvb, *offsetp, 4, byte_order);
7855 *offsetp += 4;
7856 proto_tree_add_item(t, hf_x11_glx_PixelStoref_datum, tvb, *offsetp, 4, byte_order);
7857 *offsetp += 4;
7858}
7859
7860static void glxPixelStorei(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7861{
7862 proto_tree_add_item(t, hf_x11_glx_PixelStorei_context_tag, tvb, *offsetp, 4, byte_order);
7863 *offsetp += 4;
7864 proto_tree_add_item(t, hf_x11_glx_PixelStorei_pname, tvb, *offsetp, 4, byte_order);
7865 *offsetp += 4;
7866 proto_tree_add_item(t, hf_x11_glx_PixelStorei_datum, tvb, *offsetp, 4, byte_order);
7867 *offsetp += 4;
7868}
7869
7870static void glxReadPixels(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7871{
7872 proto_tree_add_item(t, hf_x11_glx_ReadPixels_context_tag, tvb, *offsetp, 4, byte_order);
7873 *offsetp += 4;
7874 proto_tree_add_item(t, hf_x11_glx_ReadPixels_x, tvb, *offsetp, 4, byte_order);
7875 *offsetp += 4;
7876 proto_tree_add_item(t, hf_x11_glx_ReadPixels_y, tvb, *offsetp, 4, byte_order);
7877 *offsetp += 4;
7878 proto_tree_add_item(t, hf_x11_glx_ReadPixels_width, tvb, *offsetp, 4, byte_order);
7879 *offsetp += 4;
7880 proto_tree_add_item(t, hf_x11_glx_ReadPixels_height, tvb, *offsetp, 4, byte_order);
7881 *offsetp += 4;
7882 proto_tree_add_item(t, hf_x11_glx_ReadPixels_format, tvb, *offsetp, 4, byte_order);
7883 *offsetp += 4;
7884 proto_tree_add_item(t, hf_x11_glx_ReadPixels_type, tvb, *offsetp, 4, byte_order);
7885 *offsetp += 4;
7886 proto_tree_add_item(t, hf_x11_glx_ReadPixels_swap_bytes, tvb, *offsetp, 1, byte_order);
7887 *offsetp += 1;
7888 proto_tree_add_item(t, hf_x11_glx_ReadPixels_lsb_first, tvb, *offsetp, 1, byte_order);
7889 *offsetp += 1;
7890}
7891static void glxReadPixels_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7892{
7893 int sequence_number;
7894 int f_length;
7895
7896 col_append_fstr(pinfo->cinfo, COL_INFO, "-ReadPixels");
7897
7898 REPLY(reply);
7899 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7900 *offsetp += 1;
7901 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7902 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7903 "%d (glx-ReadPixels)", sequence_number);
7904 *offsetp += 2;
7905 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
7906 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7907 *offsetp += 4;
7908 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
7909 *offsetp += 24;
7910 listOfByte(tvb, offsetp, t, hf_x11_glx_ReadPixels_reply_data, (f_length * 4), byte_order);
7911}
7912
7913static void glxGetBooleanv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7914{
7915 proto_tree_add_item(t, hf_x11_glx_GetBooleanv_context_tag, tvb, *offsetp, 4, byte_order);
7916 *offsetp += 4;
7917 proto_tree_add_item(t, hf_x11_glx_GetBooleanv_pname, tvb, *offsetp, 4, byte_order);
7918 *offsetp += 4;
7919}
7920static void glxGetBooleanv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7921{
7922 int sequence_number;
7923 int f_n;
7924
7925 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetBooleanv");
7926
7927 REPLY(reply);
7928 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7929 *offsetp += 1;
7930 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7931 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7932 "%d (glx-GetBooleanv)", sequence_number);
7933 *offsetp += 2;
7934 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7935 *offsetp += 4;
7936 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
7937 *offsetp += 4;
7938 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
7939 proto_tree_add_item(t, hf_x11_glx_GetBooleanv_reply_n, tvb, *offsetp, 4, byte_order);
7940 *offsetp += 4;
7941 proto_tree_add_item(t, hf_x11_glx_GetBooleanv_reply_datum, tvb, *offsetp, 1, byte_order);
7942 *offsetp += 1;
7943 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
7944 *offsetp += 15;
7945 listOfByte(tvb, offsetp, t, hf_x11_glx_GetBooleanv_reply_data, f_n, byte_order);
7946}
7947
7948static void glxGetClipPlane(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7949{
7950 proto_tree_add_item(t, hf_x11_glx_GetClipPlane_context_tag, tvb, *offsetp, 4, byte_order);
7951 *offsetp += 4;
7952 proto_tree_add_item(t, hf_x11_glx_GetClipPlane_plane, tvb, *offsetp, 4, byte_order);
7953 *offsetp += 4;
7954}
7955static void glxGetClipPlane_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7956{
7957 int sequence_number;
7958 int f_length;
7959
7960 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetClipPlane");
7961
7962 REPLY(reply);
7963 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7964 *offsetp += 1;
7965 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7966 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7967 "%d (glx-GetClipPlane)", sequence_number);
7968 *offsetp += 2;
7969 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
7970 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7971 *offsetp += 4;
7972 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
7973 *offsetp += 24;
7974 listOfDouble(tvb, offsetp, t, hf_x11_glx_GetClipPlane_reply_data, hf_x11_glx_GetClipPlane_reply_data_item, (f_length / 2), byte_order);
7975}
7976
7977static void glxGetDoublev(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
7978{
7979 proto_tree_add_item(t, hf_x11_glx_GetDoublev_context_tag, tvb, *offsetp, 4, byte_order);
7980 *offsetp += 4;
7981 proto_tree_add_item(t, hf_x11_glx_GetDoublev_pname, tvb, *offsetp, 4, byte_order);
7982 *offsetp += 4;
7983}
7984static void glxGetDoublev_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
7985{
7986 int sequence_number;
7987 int f_n;
7988
7989 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDoublev");
7990
7991 REPLY(reply);
7992 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
7993 *offsetp += 1;
7994 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
7995 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
7996 "%d (glx-GetDoublev)", sequence_number);
7997 *offsetp += 2;
7998 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
7999 *offsetp += 4;
8000 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8001 *offsetp += 4;
8002 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8003 proto_tree_add_item(t, hf_x11_glx_GetDoublev_reply_n, tvb, *offsetp, 4, byte_order);
8004 *offsetp += 4;
8005 proto_tree_add_item(t, hf_x11_glx_GetDoublev_reply_datum, tvb, *offsetp, 8, byte_order);
8006 *offsetp += 8;
8007 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8008 *offsetp += 8;
8009 listOfDouble(tvb, offsetp, t, hf_x11_glx_GetDoublev_reply_data, hf_x11_glx_GetDoublev_reply_data_item, f_n, byte_order);
8010}
8011
8012static void glxGetError(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8013{
8014 proto_tree_add_item(t, hf_x11_glx_GetError_context_tag, tvb, *offsetp, 4, byte_order);
8015 *offsetp += 4;
8016}
8017static void glxGetError_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8018{
8019 int sequence_number;
8020
8021 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetError");
8022
8023 REPLY(reply);
8024 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8025 *offsetp += 1;
8026 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8027 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8028 "%d (glx-GetError)", sequence_number);
8029 *offsetp += 2;
8030 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8031 *offsetp += 4;
8032 proto_tree_add_item(t, hf_x11_glx_GetError_reply_error, tvb, *offsetp, 4, byte_order);
8033 *offsetp += 4;
8034}
8035
8036static void glxGetFloatv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8037{
8038 proto_tree_add_item(t, hf_x11_glx_GetFloatv_context_tag, tvb, *offsetp, 4, byte_order);
8039 *offsetp += 4;
8040 proto_tree_add_item(t, hf_x11_glx_GetFloatv_pname, tvb, *offsetp, 4, byte_order);
8041 *offsetp += 4;
8042}
8043static void glxGetFloatv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8044{
8045 int sequence_number;
8046 int f_n;
8047
8048 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetFloatv");
8049
8050 REPLY(reply);
8051 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8052 *offsetp += 1;
8053 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8054 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8055 "%d (glx-GetFloatv)", sequence_number);
8056 *offsetp += 2;
8057 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8058 *offsetp += 4;
8059 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8060 *offsetp += 4;
8061 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8062 proto_tree_add_item(t, hf_x11_glx_GetFloatv_reply_n, tvb, *offsetp, 4, byte_order);
8063 *offsetp += 4;
8064 proto_tree_add_item(t, hf_x11_glx_GetFloatv_reply_datum, tvb, *offsetp, 4, byte_order);
8065 *offsetp += 4;
8066 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8067 *offsetp += 12;
8068 listOfFloat(tvb, offsetp, t, hf_x11_glx_GetFloatv_reply_data, hf_x11_glx_GetFloatv_reply_data_item, f_n, byte_order);
8069}
8070
8071static void glxGetIntegerv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8072{
8073 proto_tree_add_item(t, hf_x11_glx_GetIntegerv_context_tag, tvb, *offsetp, 4, byte_order);
8074 *offsetp += 4;
8075 proto_tree_add_item(t, hf_x11_glx_GetIntegerv_pname, tvb, *offsetp, 4, byte_order);
8076 *offsetp += 4;
8077}
8078static void glxGetIntegerv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8079{
8080 int sequence_number;
8081 int f_n;
8082
8083 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetIntegerv");
8084
8085 REPLY(reply);
8086 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8087 *offsetp += 1;
8088 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8089 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8090 "%d (glx-GetIntegerv)", sequence_number);
8091 *offsetp += 2;
8092 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8093 *offsetp += 4;
8094 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8095 *offsetp += 4;
8096 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8097 proto_tree_add_item(t, hf_x11_glx_GetIntegerv_reply_n, tvb, *offsetp, 4, byte_order);
8098 *offsetp += 4;
8099 proto_tree_add_item(t, hf_x11_glx_GetIntegerv_reply_datum, tvb, *offsetp, 4, byte_order);
8100 *offsetp += 4;
8101 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8102 *offsetp += 12;
8103 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetIntegerv_reply_data, hf_x11_glx_GetIntegerv_reply_data_item, f_n, byte_order);
8104}
8105
8106static void glxGetLightfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8107{
8108 proto_tree_add_item(t, hf_x11_glx_GetLightfv_context_tag, tvb, *offsetp, 4, byte_order);
8109 *offsetp += 4;
8110 proto_tree_add_item(t, hf_x11_glx_GetLightfv_light, tvb, *offsetp, 4, byte_order);
8111 *offsetp += 4;
8112 proto_tree_add_item(t, hf_x11_glx_GetLightfv_pname, tvb, *offsetp, 4, byte_order);
8113 *offsetp += 4;
8114}
8115static void glxGetLightfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8116{
8117 int sequence_number;
8118 int f_n;
8119
8120 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetLightfv");
8121
8122 REPLY(reply);
8123 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8124 *offsetp += 1;
8125 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8126 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8127 "%d (glx-GetLightfv)", sequence_number);
8128 *offsetp += 2;
8129 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8130 *offsetp += 4;
8131 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8132 *offsetp += 4;
8133 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8134 proto_tree_add_item(t, hf_x11_glx_GetLightfv_reply_n, tvb, *offsetp, 4, byte_order);
8135 *offsetp += 4;
8136 proto_tree_add_item(t, hf_x11_glx_GetLightfv_reply_datum, tvb, *offsetp, 4, byte_order);
8137 *offsetp += 4;
8138 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8139 *offsetp += 12;
8140 listOfFloat(tvb, offsetp, t, hf_x11_glx_GetLightfv_reply_data, hf_x11_glx_GetLightfv_reply_data_item, f_n, byte_order);
8141}
8142
8143static void glxGetLightiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8144{
8145 proto_tree_add_item(t, hf_x11_glx_GetLightiv_context_tag, tvb, *offsetp, 4, byte_order);
8146 *offsetp += 4;
8147 proto_tree_add_item(t, hf_x11_glx_GetLightiv_light, tvb, *offsetp, 4, byte_order);
8148 *offsetp += 4;
8149 proto_tree_add_item(t, hf_x11_glx_GetLightiv_pname, tvb, *offsetp, 4, byte_order);
8150 *offsetp += 4;
8151}
8152static void glxGetLightiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8153{
8154 int sequence_number;
8155 int f_n;
8156
8157 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetLightiv");
8158
8159 REPLY(reply);
8160 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8161 *offsetp += 1;
8162 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8163 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8164 "%d (glx-GetLightiv)", sequence_number);
8165 *offsetp += 2;
8166 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8167 *offsetp += 4;
8168 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8169 *offsetp += 4;
8170 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8171 proto_tree_add_item(t, hf_x11_glx_GetLightiv_reply_n, tvb, *offsetp, 4, byte_order);
8172 *offsetp += 4;
8173 proto_tree_add_item(t, hf_x11_glx_GetLightiv_reply_datum, tvb, *offsetp, 4, byte_order);
8174 *offsetp += 4;
8175 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8176 *offsetp += 12;
8177 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetLightiv_reply_data, hf_x11_glx_GetLightiv_reply_data_item, f_n, byte_order);
8178}
8179
8180static void glxGetMapdv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8181{
8182 proto_tree_add_item(t, hf_x11_glx_GetMapdv_context_tag, tvb, *offsetp, 4, byte_order);
8183 *offsetp += 4;
8184 proto_tree_add_item(t, hf_x11_glx_GetMapdv_target, tvb, *offsetp, 4, byte_order);
8185 *offsetp += 4;
8186 proto_tree_add_item(t, hf_x11_glx_GetMapdv_query, tvb, *offsetp, 4, byte_order);
8187 *offsetp += 4;
8188}
8189static void glxGetMapdv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8190{
8191 int sequence_number;
8192 int f_n;
8193
8194 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMapdv");
8195
8196 REPLY(reply);
8197 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8198 *offsetp += 1;
8199 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8200 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8201 "%d (glx-GetMapdv)", sequence_number);
8202 *offsetp += 2;
8203 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8204 *offsetp += 4;
8205 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8206 *offsetp += 4;
8207 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8208 proto_tree_add_item(t, hf_x11_glx_GetMapdv_reply_n, tvb, *offsetp, 4, byte_order);
8209 *offsetp += 4;
8210 proto_tree_add_item(t, hf_x11_glx_GetMapdv_reply_datum, tvb, *offsetp, 8, byte_order);
8211 *offsetp += 8;
8212 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8213 *offsetp += 8;
8214 listOfDouble(tvb, offsetp, t, hf_x11_glx_GetMapdv_reply_data, hf_x11_glx_GetMapdv_reply_data_item, f_n, byte_order);
8215}
8216
8217static void glxGetMapfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8218{
8219 proto_tree_add_item(t, hf_x11_glx_GetMapfv_context_tag, tvb, *offsetp, 4, byte_order);
8220 *offsetp += 4;
8221 proto_tree_add_item(t, hf_x11_glx_GetMapfv_target, tvb, *offsetp, 4, byte_order);
8222 *offsetp += 4;
8223 proto_tree_add_item(t, hf_x11_glx_GetMapfv_query, tvb, *offsetp, 4, byte_order);
8224 *offsetp += 4;
8225}
8226static void glxGetMapfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8227{
8228 int sequence_number;
8229 int f_n;
8230
8231 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMapfv");
8232
8233 REPLY(reply);
8234 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8235 *offsetp += 1;
8236 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8237 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8238 "%d (glx-GetMapfv)", sequence_number);
8239 *offsetp += 2;
8240 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8241 *offsetp += 4;
8242 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8243 *offsetp += 4;
8244 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8245 proto_tree_add_item(t, hf_x11_glx_GetMapfv_reply_n, tvb, *offsetp, 4, byte_order);
8246 *offsetp += 4;
8247 proto_tree_add_item(t, hf_x11_glx_GetMapfv_reply_datum, tvb, *offsetp, 4, byte_order);
8248 *offsetp += 4;
8249 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8250 *offsetp += 12;
8251 listOfFloat(tvb, offsetp, t, hf_x11_glx_GetMapfv_reply_data, hf_x11_glx_GetMapfv_reply_data_item, f_n, byte_order);
8252}
8253
8254static void glxGetMapiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8255{
8256 proto_tree_add_item(t, hf_x11_glx_GetMapiv_context_tag, tvb, *offsetp, 4, byte_order);
8257 *offsetp += 4;
8258 proto_tree_add_item(t, hf_x11_glx_GetMapiv_target, tvb, *offsetp, 4, byte_order);
8259 *offsetp += 4;
8260 proto_tree_add_item(t, hf_x11_glx_GetMapiv_query, tvb, *offsetp, 4, byte_order);
8261 *offsetp += 4;
8262}
8263static void glxGetMapiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8264{
8265 int sequence_number;
8266 int f_n;
8267
8268 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMapiv");
8269
8270 REPLY(reply);
8271 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8272 *offsetp += 1;
8273 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8274 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8275 "%d (glx-GetMapiv)", sequence_number);
8276 *offsetp += 2;
8277 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8278 *offsetp += 4;
8279 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8280 *offsetp += 4;
8281 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8282 proto_tree_add_item(t, hf_x11_glx_GetMapiv_reply_n, tvb, *offsetp, 4, byte_order);
8283 *offsetp += 4;
8284 proto_tree_add_item(t, hf_x11_glx_GetMapiv_reply_datum, tvb, *offsetp, 4, byte_order);
8285 *offsetp += 4;
8286 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8287 *offsetp += 12;
8288 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetMapiv_reply_data, hf_x11_glx_GetMapiv_reply_data_item, f_n, byte_order);
8289}
8290
8291static void glxGetMaterialfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8292{
8293 proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_context_tag, tvb, *offsetp, 4, byte_order);
8294 *offsetp += 4;
8295 proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_face, tvb, *offsetp, 4, byte_order);
8296 *offsetp += 4;
8297 proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_pname, tvb, *offsetp, 4, byte_order);
8298 *offsetp += 4;
8299}
8300static void glxGetMaterialfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8301{
8302 int sequence_number;
8303 int f_n;
8304
8305 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMaterialfv");
8306
8307 REPLY(reply);
8308 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8309 *offsetp += 1;
8310 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8311 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8312 "%d (glx-GetMaterialfv)", sequence_number);
8313 *offsetp += 2;
8314 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8315 *offsetp += 4;
8316 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8317 *offsetp += 4;
8318 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8319 proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_reply_n, tvb, *offsetp, 4, byte_order);
8320 *offsetp += 4;
8321 proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_reply_datum, tvb, *offsetp, 4, byte_order);
8322 *offsetp += 4;
8323 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8324 *offsetp += 12;
8325 listOfFloat(tvb, offsetp, t, hf_x11_glx_GetMaterialfv_reply_data, hf_x11_glx_GetMaterialfv_reply_data_item, f_n, byte_order);
8326}
8327
8328static void glxGetMaterialiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8329{
8330 proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_context_tag, tvb, *offsetp, 4, byte_order);
8331 *offsetp += 4;
8332 proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_face, tvb, *offsetp, 4, byte_order);
8333 *offsetp += 4;
8334 proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_pname, tvb, *offsetp, 4, byte_order);
8335 *offsetp += 4;
8336}
8337static void glxGetMaterialiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8338{
8339 int sequence_number;
8340 int f_n;
8341
8342 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMaterialiv");
8343
8344 REPLY(reply);
8345 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8346 *offsetp += 1;
8347 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8348 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8349 "%d (glx-GetMaterialiv)", sequence_number);
8350 *offsetp += 2;
8351 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8352 *offsetp += 4;
8353 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8354 *offsetp += 4;
8355 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8356 proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_reply_n, tvb, *offsetp, 4, byte_order);
8357 *offsetp += 4;
8358 proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_reply_datum, tvb, *offsetp, 4, byte_order);
8359 *offsetp += 4;
8360 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8361 *offsetp += 12;
8362 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetMaterialiv_reply_data, hf_x11_glx_GetMaterialiv_reply_data_item, f_n, byte_order);
8363}
8364
8365static void glxGetPixelMapfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8366{
8367 proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_context_tag, tvb, *offsetp, 4, byte_order);
8368 *offsetp += 4;
8369 proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_map, tvb, *offsetp, 4, byte_order);
8370 *offsetp += 4;
8371}
8372static void glxGetPixelMapfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8373{
8374 int sequence_number;
8375 int f_n;
8376
8377 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPixelMapfv");
8378
8379 REPLY(reply);
8380 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8381 *offsetp += 1;
8382 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8383 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8384 "%d (glx-GetPixelMapfv)", sequence_number);
8385 *offsetp += 2;
8386 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8387 *offsetp += 4;
8388 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8389 *offsetp += 4;
8390 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8391 proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_reply_n, tvb, *offsetp, 4, byte_order);
8392 *offsetp += 4;
8393 proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_reply_datum, tvb, *offsetp, 4, byte_order);
8394 *offsetp += 4;
8395 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8396 *offsetp += 12;
8397 listOfFloat(tvb, offsetp, t, hf_x11_glx_GetPixelMapfv_reply_data, hf_x11_glx_GetPixelMapfv_reply_data_item, f_n, byte_order);
8398}
8399
8400static void glxGetPixelMapuiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8401{
8402 proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_context_tag, tvb, *offsetp, 4, byte_order);
8403 *offsetp += 4;
8404 proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_map, tvb, *offsetp, 4, byte_order);
8405 *offsetp += 4;
8406}
8407static void glxGetPixelMapuiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8408{
8409 int sequence_number;
8410 int f_n;
8411
8412 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPixelMapuiv");
8413
8414 REPLY(reply);
8415 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8416 *offsetp += 1;
8417 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8418 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8419 "%d (glx-GetPixelMapuiv)", sequence_number);
8420 *offsetp += 2;
8421 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8422 *offsetp += 4;
8423 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8424 *offsetp += 4;
8425 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8426 proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_reply_n, tvb, *offsetp, 4, byte_order);
8427 *offsetp += 4;
8428 proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_reply_datum, tvb, *offsetp, 4, byte_order);
8429 *offsetp += 4;
8430 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8431 *offsetp += 12;
8432 listOfCard32(tvb, offsetp, t, hf_x11_glx_GetPixelMapuiv_reply_data, hf_x11_glx_GetPixelMapuiv_reply_data_item, f_n, byte_order);
8433}
8434
8435static void glxGetPixelMapusv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8436{
8437 proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_context_tag, tvb, *offsetp, 4, byte_order);
8438 *offsetp += 4;
8439 proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_map, tvb, *offsetp, 4, byte_order);
8440 *offsetp += 4;
8441}
8442static void glxGetPixelMapusv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8443{
8444 int sequence_number;
8445 int f_n;
8446
8447 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPixelMapusv");
8448
8449 REPLY(reply);
8450 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8451 *offsetp += 1;
8452 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8453 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8454 "%d (glx-GetPixelMapusv)", sequence_number);
8455 *offsetp += 2;
8456 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8457 *offsetp += 4;
8458 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8459 *offsetp += 4;
8460 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8461 proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_reply_n, tvb, *offsetp, 4, byte_order);
8462 *offsetp += 4;
8463 proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_reply_datum, tvb, *offsetp, 2, byte_order);
8464 *offsetp += 2;
8465 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
8466 *offsetp += 16;
8467 listOfCard16(tvb, offsetp, t, hf_x11_glx_GetPixelMapusv_reply_data, hf_x11_glx_GetPixelMapusv_reply_data_item, f_n, byte_order);
8468}
8469
8470static void glxGetPolygonStipple(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8471{
8472 proto_tree_add_item(t, hf_x11_glx_GetPolygonStipple_context_tag, tvb, *offsetp, 4, byte_order);
8473 *offsetp += 4;
8474 proto_tree_add_item(t, hf_x11_glx_GetPolygonStipple_lsb_first, tvb, *offsetp, 1, byte_order);
8475 *offsetp += 1;
8476}
8477static void glxGetPolygonStipple_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8478{
8479 int sequence_number;
8480 int f_length;
8481
8482 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPolygonStipple");
8483
8484 REPLY(reply);
8485 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8486 *offsetp += 1;
8487 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8488 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8489 "%d (glx-GetPolygonStipple)", sequence_number);
8490 *offsetp += 2;
8491 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
8492 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8493 *offsetp += 4;
8494 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
8495 *offsetp += 24;
8496 listOfByte(tvb, offsetp, t, hf_x11_glx_GetPolygonStipple_reply_data, (f_length * 4), byte_order);
8497}
8498
8499static void glxGetString(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8500{
8501 proto_tree_add_item(t, hf_x11_glx_GetString_context_tag, tvb, *offsetp, 4, byte_order);
8502 *offsetp += 4;
8503 proto_tree_add_item(t, hf_x11_glx_GetString_name, tvb, *offsetp, 4, byte_order);
8504 *offsetp += 4;
8505}
8506static void glxGetString_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8507{
8508 int sequence_number;
8509 int f_n;
8510
8511 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetString");
8512
8513 REPLY(reply);
8514 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8515 *offsetp += 1;
8516 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8517 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8518 "%d (glx-GetString)", sequence_number);
8519 *offsetp += 2;
8520 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8521 *offsetp += 4;
8522 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8523 *offsetp += 4;
8524 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8525 proto_tree_add_item(t, hf_x11_glx_GetString_reply_n, tvb, *offsetp, 4, byte_order);
8526 *offsetp += 4;
8527 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
8528 *offsetp += 16;
8529 listOfByte(tvb, offsetp, t, hf_x11_glx_GetString_reply_string, f_n, byte_order);
8530}
8531
8532static void glxGetTexEnvfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8533{
8534 proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_context_tag, tvb, *offsetp, 4, byte_order);
8535 *offsetp += 4;
8536 proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_target, tvb, *offsetp, 4, byte_order);
8537 *offsetp += 4;
8538 proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_pname, tvb, *offsetp, 4, byte_order);
8539 *offsetp += 4;
8540}
8541static void glxGetTexEnvfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8542{
8543 int sequence_number;
8544 int f_n;
8545
8546 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexEnvfv");
8547
8548 REPLY(reply);
8549 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8550 *offsetp += 1;
8551 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8552 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8553 "%d (glx-GetTexEnvfv)", sequence_number);
8554 *offsetp += 2;
8555 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8556 *offsetp += 4;
8557 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8558 *offsetp += 4;
8559 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8560 proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_reply_n, tvb, *offsetp, 4, byte_order);
8561 *offsetp += 4;
8562 proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_reply_datum, tvb, *offsetp, 4, byte_order);
8563 *offsetp += 4;
8564 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8565 *offsetp += 12;
8566 listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexEnvfv_reply_data, hf_x11_glx_GetTexEnvfv_reply_data_item, f_n, byte_order);
8567}
8568
8569static void glxGetTexEnviv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8570{
8571 proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_context_tag, tvb, *offsetp, 4, byte_order);
8572 *offsetp += 4;
8573 proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_target, tvb, *offsetp, 4, byte_order);
8574 *offsetp += 4;
8575 proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_pname, tvb, *offsetp, 4, byte_order);
8576 *offsetp += 4;
8577}
8578static void glxGetTexEnviv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8579{
8580 int sequence_number;
8581 int f_n;
8582
8583 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexEnviv");
8584
8585 REPLY(reply);
8586 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8587 *offsetp += 1;
8588 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8589 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8590 "%d (glx-GetTexEnviv)", sequence_number);
8591 *offsetp += 2;
8592 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8593 *offsetp += 4;
8594 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8595 *offsetp += 4;
8596 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8597 proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_reply_n, tvb, *offsetp, 4, byte_order);
8598 *offsetp += 4;
8599 proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_reply_datum, tvb, *offsetp, 4, byte_order);
8600 *offsetp += 4;
8601 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8602 *offsetp += 12;
8603 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexEnviv_reply_data, hf_x11_glx_GetTexEnviv_reply_data_item, f_n, byte_order);
8604}
8605
8606static void glxGetTexGendv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8607{
8608 proto_tree_add_item(t, hf_x11_glx_GetTexGendv_context_tag, tvb, *offsetp, 4, byte_order);
8609 *offsetp += 4;
8610 proto_tree_add_item(t, hf_x11_glx_GetTexGendv_coord, tvb, *offsetp, 4, byte_order);
8611 *offsetp += 4;
8612 proto_tree_add_item(t, hf_x11_glx_GetTexGendv_pname, tvb, *offsetp, 4, byte_order);
8613 *offsetp += 4;
8614}
8615static void glxGetTexGendv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8616{
8617 int sequence_number;
8618 int f_n;
8619
8620 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexGendv");
8621
8622 REPLY(reply);
8623 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8624 *offsetp += 1;
8625 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8626 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8627 "%d (glx-GetTexGendv)", sequence_number);
8628 *offsetp += 2;
8629 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8630 *offsetp += 4;
8631 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8632 *offsetp += 4;
8633 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8634 proto_tree_add_item(t, hf_x11_glx_GetTexGendv_reply_n, tvb, *offsetp, 4, byte_order);
8635 *offsetp += 4;
8636 proto_tree_add_item(t, hf_x11_glx_GetTexGendv_reply_datum, tvb, *offsetp, 8, byte_order);
8637 *offsetp += 8;
8638 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8639 *offsetp += 8;
8640 listOfDouble(tvb, offsetp, t, hf_x11_glx_GetTexGendv_reply_data, hf_x11_glx_GetTexGendv_reply_data_item, f_n, byte_order);
8641}
8642
8643static void glxGetTexGenfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8644{
8645 proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_context_tag, tvb, *offsetp, 4, byte_order);
8646 *offsetp += 4;
8647 proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_coord, tvb, *offsetp, 4, byte_order);
8648 *offsetp += 4;
8649 proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_pname, tvb, *offsetp, 4, byte_order);
8650 *offsetp += 4;
8651}
8652static void glxGetTexGenfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8653{
8654 int sequence_number;
8655 int f_n;
8656
8657 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexGenfv");
8658
8659 REPLY(reply);
8660 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8661 *offsetp += 1;
8662 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8663 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8664 "%d (glx-GetTexGenfv)", sequence_number);
8665 *offsetp += 2;
8666 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8667 *offsetp += 4;
8668 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8669 *offsetp += 4;
8670 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8671 proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_reply_n, tvb, *offsetp, 4, byte_order);
8672 *offsetp += 4;
8673 proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_reply_datum, tvb, *offsetp, 4, byte_order);
8674 *offsetp += 4;
8675 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8676 *offsetp += 12;
8677 listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexGenfv_reply_data, hf_x11_glx_GetTexGenfv_reply_data_item, f_n, byte_order);
8678}
8679
8680static void glxGetTexGeniv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8681{
8682 proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_context_tag, tvb, *offsetp, 4, byte_order);
8683 *offsetp += 4;
8684 proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_coord, tvb, *offsetp, 4, byte_order);
8685 *offsetp += 4;
8686 proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_pname, tvb, *offsetp, 4, byte_order);
8687 *offsetp += 4;
8688}
8689static void glxGetTexGeniv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8690{
8691 int sequence_number;
8692 int f_n;
8693
8694 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexGeniv");
8695
8696 REPLY(reply);
8697 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8698 *offsetp += 1;
8699 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8700 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8701 "%d (glx-GetTexGeniv)", sequence_number);
8702 *offsetp += 2;
8703 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8704 *offsetp += 4;
8705 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8706 *offsetp += 4;
8707 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8708 proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_reply_n, tvb, *offsetp, 4, byte_order);
8709 *offsetp += 4;
8710 proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_reply_datum, tvb, *offsetp, 4, byte_order);
8711 *offsetp += 4;
8712 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8713 *offsetp += 12;
8714 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexGeniv_reply_data, hf_x11_glx_GetTexGeniv_reply_data_item, f_n, byte_order);
8715}
8716
8717static void glxGetTexImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8718{
8719 proto_tree_add_item(t, hf_x11_glx_GetTexImage_context_tag, tvb, *offsetp, 4, byte_order);
8720 *offsetp += 4;
8721 proto_tree_add_item(t, hf_x11_glx_GetTexImage_target, tvb, *offsetp, 4, byte_order);
8722 *offsetp += 4;
8723 proto_tree_add_item(t, hf_x11_glx_GetTexImage_level, tvb, *offsetp, 4, byte_order);
8724 *offsetp += 4;
8725 proto_tree_add_item(t, hf_x11_glx_GetTexImage_format, tvb, *offsetp, 4, byte_order);
8726 *offsetp += 4;
8727 proto_tree_add_item(t, hf_x11_glx_GetTexImage_type, tvb, *offsetp, 4, byte_order);
8728 *offsetp += 4;
8729 proto_tree_add_item(t, hf_x11_glx_GetTexImage_swap_bytes, tvb, *offsetp, 1, byte_order);
8730 *offsetp += 1;
8731}
8732static void glxGetTexImage_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8733{
8734 int sequence_number;
8735 int f_length;
8736
8737 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexImage");
8738
8739 REPLY(reply);
8740 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8741 *offsetp += 1;
8742 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8743 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8744 "%d (glx-GetTexImage)", sequence_number);
8745 *offsetp += 2;
8746 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
8747 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8748 *offsetp += 4;
8749 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
8750 *offsetp += 8;
8751 proto_tree_add_item(t, hf_x11_glx_GetTexImage_reply_width, tvb, *offsetp, 4, byte_order);
8752 *offsetp += 4;
8753 proto_tree_add_item(t, hf_x11_glx_GetTexImage_reply_height, tvb, *offsetp, 4, byte_order);
8754 *offsetp += 4;
8755 proto_tree_add_item(t, hf_x11_glx_GetTexImage_reply_depth, tvb, *offsetp, 4, byte_order);
8756 *offsetp += 4;
8757 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8758 *offsetp += 4;
8759 listOfByte(tvb, offsetp, t, hf_x11_glx_GetTexImage_reply_data, (f_length * 4), byte_order);
8760}
8761
8762static void glxGetTexParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8763{
8764 proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
8765 *offsetp += 4;
8766 proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_target, tvb, *offsetp, 4, byte_order);
8767 *offsetp += 4;
8768 proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_pname, tvb, *offsetp, 4, byte_order);
8769 *offsetp += 4;
8770}
8771static void glxGetTexParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8772{
8773 int sequence_number;
8774 int f_n;
8775
8776 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexParameterfv");
8777
8778 REPLY(reply);
8779 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8780 *offsetp += 1;
8781 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8782 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8783 "%d (glx-GetTexParameterfv)", sequence_number);
8784 *offsetp += 2;
8785 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8786 *offsetp += 4;
8787 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8788 *offsetp += 4;
8789 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8790 proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
8791 *offsetp += 4;
8792 proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
8793 *offsetp += 4;
8794 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8795 *offsetp += 12;
8796 listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexParameterfv_reply_data, hf_x11_glx_GetTexParameterfv_reply_data_item, f_n, byte_order);
8797}
8798
8799static void glxGetTexParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8800{
8801 proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
8802 *offsetp += 4;
8803 proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_target, tvb, *offsetp, 4, byte_order);
8804 *offsetp += 4;
8805 proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_pname, tvb, *offsetp, 4, byte_order);
8806 *offsetp += 4;
8807}
8808static void glxGetTexParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8809{
8810 int sequence_number;
8811 int f_n;
8812
8813 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexParameteriv");
8814
8815 REPLY(reply);
8816 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8817 *offsetp += 1;
8818 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8819 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8820 "%d (glx-GetTexParameteriv)", sequence_number);
8821 *offsetp += 2;
8822 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8823 *offsetp += 4;
8824 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8825 *offsetp += 4;
8826 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8827 proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
8828 *offsetp += 4;
8829 proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
8830 *offsetp += 4;
8831 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8832 *offsetp += 12;
8833 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexParameteriv_reply_data, hf_x11_glx_GetTexParameteriv_reply_data_item, f_n, byte_order);
8834}
8835
8836static void glxGetTexLevelParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8837{
8838 proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
8839 *offsetp += 4;
8840 proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_target, tvb, *offsetp, 4, byte_order);
8841 *offsetp += 4;
8842 proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_level, tvb, *offsetp, 4, byte_order);
8843 *offsetp += 4;
8844 proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_pname, tvb, *offsetp, 4, byte_order);
8845 *offsetp += 4;
8846}
8847static void glxGetTexLevelParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8848{
8849 int sequence_number;
8850 int f_n;
8851
8852 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexLevelParameterfv");
8853
8854 REPLY(reply);
8855 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8856 *offsetp += 1;
8857 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8858 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8859 "%d (glx-GetTexLevelParameterfv)", sequence_number);
8860 *offsetp += 2;
8861 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8862 *offsetp += 4;
8863 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8864 *offsetp += 4;
8865 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8866 proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
8867 *offsetp += 4;
8868 proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
8869 *offsetp += 4;
8870 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8871 *offsetp += 12;
8872 listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexLevelParameterfv_reply_data, hf_x11_glx_GetTexLevelParameterfv_reply_data_item, f_n, byte_order);
8873}
8874
8875static void glxGetTexLevelParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8876{
8877 proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
8878 *offsetp += 4;
8879 proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_target, tvb, *offsetp, 4, byte_order);
8880 *offsetp += 4;
8881 proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_level, tvb, *offsetp, 4, byte_order);
8882 *offsetp += 4;
8883 proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_pname, tvb, *offsetp, 4, byte_order);
8884 *offsetp += 4;
8885}
8886static void glxGetTexLevelParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8887{
8888 int sequence_number;
8889 int f_n;
8890
8891 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexLevelParameteriv");
8892
8893 REPLY(reply);
8894 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8895 *offsetp += 1;
8896 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8897 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8898 "%d (glx-GetTexLevelParameteriv)", sequence_number);
8899 *offsetp += 2;
8900 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8901 *offsetp += 4;
8902 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
8903 *offsetp += 4;
8904 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8905 proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
8906 *offsetp += 4;
8907 proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
8908 *offsetp += 4;
8909 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
8910 *offsetp += 12;
8911 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexLevelParameteriv_reply_data, hf_x11_glx_GetTexLevelParameteriv_reply_data_item, f_n, byte_order);
8912}
8913
8914static void glxIsEnabled(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8915{
8916 proto_tree_add_item(t, hf_x11_glx_IsEnabled_context_tag, tvb, *offsetp, 4, byte_order);
8917 *offsetp += 4;
8918 proto_tree_add_item(t, hf_x11_glx_IsEnabled_capability, tvb, *offsetp, 4, byte_order);
8919 *offsetp += 4;
8920}
8921static void glxIsEnabled_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8922{
8923 int sequence_number;
8924
8925 col_append_fstr(pinfo->cinfo, COL_INFO, "-IsEnabled");
8926
8927 REPLY(reply);
8928 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8929 *offsetp += 1;
8930 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8931 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8932 "%d (glx-IsEnabled)", sequence_number);
8933 *offsetp += 2;
8934 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8935 *offsetp += 4;
8936 proto_tree_add_item(t, hf_x11_glx_IsEnabled_reply_ret_val, tvb, *offsetp, 4, byte_order);
8937 *offsetp += 4;
8938}
8939
8940static void glxIsList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8941{
8942 proto_tree_add_item(t, hf_x11_glx_IsList_context_tag, tvb, *offsetp, 4, byte_order);
8943 *offsetp += 4;
8944 proto_tree_add_item(t, hf_x11_glx_IsList_list, tvb, *offsetp, 4, byte_order);
8945 *offsetp += 4;
8946}
8947static void glxIsList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8948{
8949 int sequence_number;
8950
8951 col_append_fstr(pinfo->cinfo, COL_INFO, "-IsList");
8952
8953 REPLY(reply);
8954 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8955 *offsetp += 1;
8956 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8957 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8958 "%d (glx-IsList)", sequence_number);
8959 *offsetp += 2;
8960 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8961 *offsetp += 4;
8962 proto_tree_add_item(t, hf_x11_glx_IsList_reply_ret_val, tvb, *offsetp, 4, byte_order);
8963 *offsetp += 4;
8964}
8965
8966static void glxFlush(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8967{
8968 proto_tree_add_item(t, hf_x11_glx_Flush_context_tag, tvb, *offsetp, 4, byte_order);
8969 *offsetp += 4;
8970}
8971
8972static void glxAreTexturesResident(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
8973{
8974 int f_n;
8975 proto_tree_add_item(t, hf_x11_glx_AreTexturesResident_context_tag, tvb, *offsetp, 4, byte_order);
8976 *offsetp += 4;
8977 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
8978 proto_tree_add_item(t, hf_x11_glx_AreTexturesResident_n, tvb, *offsetp, 4, byte_order);
8979 *offsetp += 4;
8980 listOfCard32(tvb, offsetp, t, hf_x11_glx_AreTexturesResident_textures, hf_x11_glx_AreTexturesResident_textures_item, f_n, byte_order);
8981 length -= f_n * 4;
8982}
8983static void glxAreTexturesResident_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
8984{
8985 int sequence_number;
8986 int f_length;
8987
8988 col_append_fstr(pinfo->cinfo, COL_INFO, "-AreTexturesResident");
8989
8990 REPLY(reply);
8991 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
8992 *offsetp += 1;
8993 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
8994 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
8995 "%d (glx-AreTexturesResident)", sequence_number);
8996 *offsetp += 2;
8997 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
8998 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
8999 *offsetp += 4;
9000 proto_tree_add_item(t, hf_x11_glx_AreTexturesResident_reply_ret_val, tvb, *offsetp, 4, byte_order);
9001 *offsetp += 4;
9002 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
9003 *offsetp += 20;
9004 listOfByte(tvb, offsetp, t, hf_x11_glx_AreTexturesResident_reply_data, (f_length * 4), byte_order);
9005}
9006
9007static void glxDeleteTextures(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9008{
9009 int f_n;
9010 proto_tree_add_item(t, hf_x11_glx_DeleteTextures_context_tag, tvb, *offsetp, 4, byte_order);
9011 *offsetp += 4;
9012 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
9013 proto_tree_add_item(t, hf_x11_glx_DeleteTextures_n, tvb, *offsetp, 4, byte_order);
9014 *offsetp += 4;
9015 listOfCard32(tvb, offsetp, t, hf_x11_glx_DeleteTextures_textures, hf_x11_glx_DeleteTextures_textures_item, f_n, byte_order);
9016 length -= f_n * 4;
9017}
9018
9019static void glxGenTextures(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9020{
9021 proto_tree_add_item(t, hf_x11_glx_GenTextures_context_tag, tvb, *offsetp, 4, byte_order);
9022 *offsetp += 4;
9023 proto_tree_add_item(t, hf_x11_glx_GenTextures_n, tvb, *offsetp, 4, byte_order);
9024 *offsetp += 4;
9025}
9026static void glxGenTextures_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9027{
9028 int sequence_number;
9029 int f_length;
9030
9031 col_append_fstr(pinfo->cinfo, COL_INFO, "-GenTextures");
9032
9033 REPLY(reply);
9034 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9035 *offsetp += 1;
9036 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9037 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9038 "%d (glx-GenTextures)", sequence_number);
9039 *offsetp += 2;
9040 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
9041 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9042 *offsetp += 4;
9043 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
9044 *offsetp += 24;
9045 listOfCard32(tvb, offsetp, t, hf_x11_glx_GenTextures_reply_data, hf_x11_glx_GenTextures_reply_data_item, f_length, byte_order);
9046}
9047
9048static void glxIsTexture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9049{
9050 proto_tree_add_item(t, hf_x11_glx_IsTexture_context_tag, tvb, *offsetp, 4, byte_order);
9051 *offsetp += 4;
9052 proto_tree_add_item(t, hf_x11_glx_IsTexture_texture, tvb, *offsetp, 4, byte_order);
9053 *offsetp += 4;
9054}
9055static void glxIsTexture_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9056{
9057 int sequence_number;
9058
9059 col_append_fstr(pinfo->cinfo, COL_INFO, "-IsTexture");
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_uint16(tvb, *offsetp, byte_order);
9065 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9066 "%d (glx-IsTexture)", 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_glx_IsTexture_reply_ret_val, tvb, *offsetp, 4, byte_order);
9071 *offsetp += 4;
9072}
9073
9074static void glxGetColorTable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9075{
9076 proto_tree_add_item(t, hf_x11_glx_GetColorTable_context_tag, tvb, *offsetp, 4, byte_order);
9077 *offsetp += 4;
9078 proto_tree_add_item(t, hf_x11_glx_GetColorTable_target, tvb, *offsetp, 4, byte_order);
9079 *offsetp += 4;
9080 proto_tree_add_item(t, hf_x11_glx_GetColorTable_format, tvb, *offsetp, 4, byte_order);
9081 *offsetp += 4;
9082 proto_tree_add_item(t, hf_x11_glx_GetColorTable_type, tvb, *offsetp, 4, byte_order);
9083 *offsetp += 4;
9084 proto_tree_add_item(t, hf_x11_glx_GetColorTable_swap_bytes, tvb, *offsetp, 1, byte_order);
9085 *offsetp += 1;
9086}
9087static void glxGetColorTable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9088{
9089 int sequence_number;
9090 int f_length;
9091
9092 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetColorTable");
9093
9094 REPLY(reply);
9095 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9096 *offsetp += 1;
9097 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9098 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9099 "%d (glx-GetColorTable)", sequence_number);
9100 *offsetp += 2;
9101 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
9102 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9103 *offsetp += 4;
9104 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
9105 *offsetp += 8;
9106 proto_tree_add_item(t, hf_x11_glx_GetColorTable_reply_width, tvb, *offsetp, 4, byte_order);
9107 *offsetp += 4;
9108 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9109 *offsetp += 12;
9110 listOfByte(tvb, offsetp, t, hf_x11_glx_GetColorTable_reply_data, (f_length * 4), byte_order);
9111}
9112
9113static void glxGetColorTableParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9114{
9115 proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
9116 *offsetp += 4;
9117 proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_target, tvb, *offsetp, 4, byte_order);
9118 *offsetp += 4;
9119 proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_pname, tvb, *offsetp, 4, byte_order);
9120 *offsetp += 4;
9121}
9122static void glxGetColorTableParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9123{
9124 int sequence_number;
9125 int f_n;
9126
9127 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetColorTableParameterfv");
9128
9129 REPLY(reply);
9130 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9131 *offsetp += 1;
9132 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9133 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9134 "%d (glx-GetColorTableParameterfv)", sequence_number);
9135 *offsetp += 2;
9136 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9137 *offsetp += 4;
9138 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9139 *offsetp += 4;
9140 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
9141 proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
9142 *offsetp += 4;
9143 proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
9144 *offsetp += 4;
9145 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9146 *offsetp += 12;
9147 listOfFloat(tvb, offsetp, t, hf_x11_glx_GetColorTableParameterfv_reply_data, hf_x11_glx_GetColorTableParameterfv_reply_data_item, f_n, byte_order);
9148}
9149
9150static void glxGetColorTableParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9151{
9152 proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
9153 *offsetp += 4;
9154 proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_target, tvb, *offsetp, 4, byte_order);
9155 *offsetp += 4;
9156 proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_pname, tvb, *offsetp, 4, byte_order);
9157 *offsetp += 4;
9158}
9159static void glxGetColorTableParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9160{
9161 int sequence_number;
9162 int f_n;
9163
9164 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetColorTableParameteriv");
9165
9166 REPLY(reply);
9167 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9168 *offsetp += 1;
9169 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9170 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9171 "%d (glx-GetColorTableParameteriv)", sequence_number);
9172 *offsetp += 2;
9173 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9174 *offsetp += 4;
9175 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9176 *offsetp += 4;
9177 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
9178 proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
9179 *offsetp += 4;
9180 proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
9181 *offsetp += 4;
9182 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9183 *offsetp += 12;
9184 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetColorTableParameteriv_reply_data, hf_x11_glx_GetColorTableParameteriv_reply_data_item, f_n, byte_order);
9185}
9186
9187static void glxGetConvolutionFilter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9188{
9189 proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_context_tag, tvb, *offsetp, 4, byte_order);
9190 *offsetp += 4;
9191 proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_target, tvb, *offsetp, 4, byte_order);
9192 *offsetp += 4;
9193 proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_format, tvb, *offsetp, 4, byte_order);
9194 *offsetp += 4;
9195 proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_type, tvb, *offsetp, 4, byte_order);
9196 *offsetp += 4;
9197 proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_swap_bytes, tvb, *offsetp, 1, byte_order);
9198 *offsetp += 1;
9199}
9200static void glxGetConvolutionFilter_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9201{
9202 int sequence_number;
9203 int f_length;
9204
9205 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetConvolutionFilter");
9206
9207 REPLY(reply);
9208 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9209 *offsetp += 1;
9210 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9211 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9212 "%d (glx-GetConvolutionFilter)", sequence_number);
9213 *offsetp += 2;
9214 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
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_unused, tvb, *offsetp, 8, ENC_NA);
9218 *offsetp += 8;
9219 proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_reply_width, tvb, *offsetp, 4, byte_order);
9220 *offsetp += 4;
9221 proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_reply_height, tvb, *offsetp, 4, byte_order);
9222 *offsetp += 4;
9223 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
9224 *offsetp += 8;
9225 listOfByte(tvb, offsetp, t, hf_x11_glx_GetConvolutionFilter_reply_data, (f_length * 4), byte_order);
9226}
9227
9228static void glxGetConvolutionParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9229{
9230 proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
9231 *offsetp += 4;
9232 proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_target, tvb, *offsetp, 4, byte_order);
9233 *offsetp += 4;
9234 proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_pname, tvb, *offsetp, 4, byte_order);
9235 *offsetp += 4;
9236}
9237static void glxGetConvolutionParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9238{
9239 int sequence_number;
9240 int f_n;
9241
9242 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetConvolutionParameterfv");
9243
9244 REPLY(reply);
9245 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9246 *offsetp += 1;
9247 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9248 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9249 "%d (glx-GetConvolutionParameterfv)", sequence_number);
9250 *offsetp += 2;
9251 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9252 *offsetp += 4;
9253 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9254 *offsetp += 4;
9255 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
9256 proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
9257 *offsetp += 4;
9258 proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
9259 *offsetp += 4;
9260 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9261 *offsetp += 12;
9262 listOfFloat(tvb, offsetp, t, hf_x11_glx_GetConvolutionParameterfv_reply_data, hf_x11_glx_GetConvolutionParameterfv_reply_data_item, f_n, byte_order);
9263}
9264
9265static void glxGetConvolutionParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9266{
9267 proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
9268 *offsetp += 4;
9269 proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_target, tvb, *offsetp, 4, byte_order);
9270 *offsetp += 4;
9271 proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_pname, tvb, *offsetp, 4, byte_order);
9272 *offsetp += 4;
9273}
9274static void glxGetConvolutionParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9275{
9276 int sequence_number;
9277 int f_n;
9278
9279 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetConvolutionParameteriv");
9280
9281 REPLY(reply);
9282 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9283 *offsetp += 1;
9284 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9285 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9286 "%d (glx-GetConvolutionParameteriv)", sequence_number);
9287 *offsetp += 2;
9288 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9289 *offsetp += 4;
9290 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9291 *offsetp += 4;
9292 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
9293 proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
9294 *offsetp += 4;
9295 proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
9296 *offsetp += 4;
9297 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9298 *offsetp += 12;
9299 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetConvolutionParameteriv_reply_data, hf_x11_glx_GetConvolutionParameteriv_reply_data_item, f_n, byte_order);
9300}
9301
9302static void glxGetSeparableFilter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9303{
9304 proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_context_tag, tvb, *offsetp, 4, byte_order);
9305 *offsetp += 4;
9306 proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_target, tvb, *offsetp, 4, byte_order);
9307 *offsetp += 4;
9308 proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_format, tvb, *offsetp, 4, byte_order);
9309 *offsetp += 4;
9310 proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_type, tvb, *offsetp, 4, byte_order);
9311 *offsetp += 4;
9312 proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_swap_bytes, tvb, *offsetp, 1, byte_order);
9313 *offsetp += 1;
9314}
9315static void glxGetSeparableFilter_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9316{
9317 int sequence_number;
9318 int f_length;
9319
9320 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSeparableFilter");
9321
9322 REPLY(reply);
9323 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9324 *offsetp += 1;
9325 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9326 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9327 "%d (glx-GetSeparableFilter)", sequence_number);
9328 *offsetp += 2;
9329 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
9330 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9331 *offsetp += 4;
9332 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
9333 *offsetp += 8;
9334 proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_reply_row_w, tvb, *offsetp, 4, byte_order);
9335 *offsetp += 4;
9336 proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_reply_col_h, tvb, *offsetp, 4, byte_order);
9337 *offsetp += 4;
9338 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
9339 *offsetp += 8;
9340 listOfByte(tvb, offsetp, t, hf_x11_glx_GetSeparableFilter_reply_rows_and_cols, (f_length * 4), byte_order);
9341}
9342
9343static void glxGetHistogram(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9344{
9345 proto_tree_add_item(t, hf_x11_glx_GetHistogram_context_tag, tvb, *offsetp, 4, byte_order);
9346 *offsetp += 4;
9347 proto_tree_add_item(t, hf_x11_glx_GetHistogram_target, tvb, *offsetp, 4, byte_order);
9348 *offsetp += 4;
9349 proto_tree_add_item(t, hf_x11_glx_GetHistogram_format, tvb, *offsetp, 4, byte_order);
9350 *offsetp += 4;
9351 proto_tree_add_item(t, hf_x11_glx_GetHistogram_type, tvb, *offsetp, 4, byte_order);
9352 *offsetp += 4;
9353 proto_tree_add_item(t, hf_x11_glx_GetHistogram_swap_bytes, tvb, *offsetp, 1, byte_order);
9354 *offsetp += 1;
9355 proto_tree_add_item(t, hf_x11_glx_GetHistogram_reset, tvb, *offsetp, 1, byte_order);
9356 *offsetp += 1;
9357}
9358static void glxGetHistogram_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9359{
9360 int sequence_number;
9361 int f_length;
9362
9363 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetHistogram");
9364
9365 REPLY(reply);
9366 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9367 *offsetp += 1;
9368 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9369 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9370 "%d (glx-GetHistogram)", sequence_number);
9371 *offsetp += 2;
9372 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
9373 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9374 *offsetp += 4;
9375 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
9376 *offsetp += 8;
9377 proto_tree_add_item(t, hf_x11_glx_GetHistogram_reply_width, tvb, *offsetp, 4, byte_order);
9378 *offsetp += 4;
9379 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9380 *offsetp += 12;
9381 listOfByte(tvb, offsetp, t, hf_x11_glx_GetHistogram_reply_data, (f_length * 4), byte_order);
9382}
9383
9384static void glxGetHistogramParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9385{
9386 proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
9387 *offsetp += 4;
9388 proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_target, tvb, *offsetp, 4, byte_order);
9389 *offsetp += 4;
9390 proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_pname, tvb, *offsetp, 4, byte_order);
9391 *offsetp += 4;
9392}
9393static void glxGetHistogramParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9394{
9395 int sequence_number;
9396 int f_n;
9397
9398 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetHistogramParameterfv");
9399
9400 REPLY(reply);
9401 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9402 *offsetp += 1;
9403 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9404 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9405 "%d (glx-GetHistogramParameterfv)", sequence_number);
9406 *offsetp += 2;
9407 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9408 *offsetp += 4;
9409 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9410 *offsetp += 4;
9411 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
9412 proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
9413 *offsetp += 4;
9414 proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
9415 *offsetp += 4;
9416 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9417 *offsetp += 12;
9418 listOfFloat(tvb, offsetp, t, hf_x11_glx_GetHistogramParameterfv_reply_data, hf_x11_glx_GetHistogramParameterfv_reply_data_item, f_n, byte_order);
9419}
9420
9421static void glxGetHistogramParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9422{
9423 proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
9424 *offsetp += 4;
9425 proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_target, tvb, *offsetp, 4, byte_order);
9426 *offsetp += 4;
9427 proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_pname, tvb, *offsetp, 4, byte_order);
9428 *offsetp += 4;
9429}
9430static void glxGetHistogramParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9431{
9432 int sequence_number;
9433 int f_n;
9434
9435 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetHistogramParameteriv");
9436
9437 REPLY(reply);
9438 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9439 *offsetp += 1;
9440 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9441 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9442 "%d (glx-GetHistogramParameteriv)", sequence_number);
9443 *offsetp += 2;
9444 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9445 *offsetp += 4;
9446 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9447 *offsetp += 4;
9448 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
9449 proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
9450 *offsetp += 4;
9451 proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
9452 *offsetp += 4;
9453 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9454 *offsetp += 12;
9455 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetHistogramParameteriv_reply_data, hf_x11_glx_GetHistogramParameteriv_reply_data_item, f_n, byte_order);
9456}
9457
9458static void glxGetMinmax(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9459{
9460 proto_tree_add_item(t, hf_x11_glx_GetMinmax_context_tag, tvb, *offsetp, 4, byte_order);
9461 *offsetp += 4;
9462 proto_tree_add_item(t, hf_x11_glx_GetMinmax_target, tvb, *offsetp, 4, byte_order);
9463 *offsetp += 4;
9464 proto_tree_add_item(t, hf_x11_glx_GetMinmax_format, tvb, *offsetp, 4, byte_order);
9465 *offsetp += 4;
9466 proto_tree_add_item(t, hf_x11_glx_GetMinmax_type, tvb, *offsetp, 4, byte_order);
9467 *offsetp += 4;
9468 proto_tree_add_item(t, hf_x11_glx_GetMinmax_swap_bytes, tvb, *offsetp, 1, byte_order);
9469 *offsetp += 1;
9470 proto_tree_add_item(t, hf_x11_glx_GetMinmax_reset, tvb, *offsetp, 1, byte_order);
9471 *offsetp += 1;
9472}
9473static void glxGetMinmax_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9474{
9475 int sequence_number;
9476 int f_length;
9477
9478 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMinmax");
9479
9480 REPLY(reply);
9481 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9482 *offsetp += 1;
9483 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9484 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9485 "%d (glx-GetMinmax)", sequence_number);
9486 *offsetp += 2;
9487 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
9488 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9489 *offsetp += 4;
9490 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
9491 *offsetp += 24;
9492 listOfByte(tvb, offsetp, t, hf_x11_glx_GetMinmax_reply_data, (f_length * 4), byte_order);
9493}
9494
9495static void glxGetMinmaxParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9496{
9497 proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_context_tag, tvb, *offsetp, 4, byte_order);
9498 *offsetp += 4;
9499 proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_target, tvb, *offsetp, 4, byte_order);
9500 *offsetp += 4;
9501 proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_pname, tvb, *offsetp, 4, byte_order);
9502 *offsetp += 4;
9503}
9504static void glxGetMinmaxParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9505{
9506 int sequence_number;
9507 int f_n;
9508
9509 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMinmaxParameterfv");
9510
9511 REPLY(reply);
9512 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9513 *offsetp += 1;
9514 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9515 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9516 "%d (glx-GetMinmaxParameterfv)", sequence_number);
9517 *offsetp += 2;
9518 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9519 *offsetp += 4;
9520 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9521 *offsetp += 4;
9522 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
9523 proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_reply_n, tvb, *offsetp, 4, byte_order);
9524 *offsetp += 4;
9525 proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_reply_datum, tvb, *offsetp, 4, byte_order);
9526 *offsetp += 4;
9527 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9528 *offsetp += 12;
9529 listOfFloat(tvb, offsetp, t, hf_x11_glx_GetMinmaxParameterfv_reply_data, hf_x11_glx_GetMinmaxParameterfv_reply_data_item, f_n, byte_order);
9530}
9531
9532static void glxGetMinmaxParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9533{
9534 proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_context_tag, tvb, *offsetp, 4, byte_order);
9535 *offsetp += 4;
9536 proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_target, tvb, *offsetp, 4, byte_order);
9537 *offsetp += 4;
9538 proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_pname, tvb, *offsetp, 4, byte_order);
9539 *offsetp += 4;
9540}
9541static void glxGetMinmaxParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9542{
9543 int sequence_number;
9544 int f_n;
9545
9546 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMinmaxParameteriv");
9547
9548 REPLY(reply);
9549 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9550 *offsetp += 1;
9551 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9552 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9553 "%d (glx-GetMinmaxParameteriv)", sequence_number);
9554 *offsetp += 2;
9555 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9556 *offsetp += 4;
9557 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9558 *offsetp += 4;
9559 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
9560 proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_reply_n, tvb, *offsetp, 4, byte_order);
9561 *offsetp += 4;
9562 proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_reply_datum, tvb, *offsetp, 4, byte_order);
9563 *offsetp += 4;
9564 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9565 *offsetp += 12;
9566 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetMinmaxParameteriv_reply_data, hf_x11_glx_GetMinmaxParameteriv_reply_data_item, f_n, byte_order);
9567}
9568
9569static void glxGetCompressedTexImageARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9570{
9571 proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_context_tag, tvb, *offsetp, 4, byte_order);
9572 *offsetp += 4;
9573 proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_target, tvb, *offsetp, 4, byte_order);
9574 *offsetp += 4;
9575 proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_level, tvb, *offsetp, 4, byte_order);
9576 *offsetp += 4;
9577}
9578static void glxGetCompressedTexImageARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9579{
9580 int sequence_number;
9581 int f_length;
9582
9583 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCompressedTexImageARB");
9584
9585 REPLY(reply);
9586 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9587 *offsetp += 1;
9588 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9589 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9590 "%d (glx-GetCompressedTexImageARB)", sequence_number);
9591 *offsetp += 2;
9592 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
9593 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9594 *offsetp += 4;
9595 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
9596 *offsetp += 8;
9597 proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_reply_size, tvb, *offsetp, 4, byte_order);
9598 *offsetp += 4;
9599 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9600 *offsetp += 12;
9601 listOfByte(tvb, offsetp, t, hf_x11_glx_GetCompressedTexImageARB_reply_data, (f_length * 4), byte_order);
9602}
9603
9604static void glxDeleteQueriesARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9605{
9606 int f_n;
9607 proto_tree_add_item(t, hf_x11_glx_DeleteQueriesARB_context_tag, tvb, *offsetp, 4, byte_order);
9608 *offsetp += 4;
9609 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
9610 proto_tree_add_item(t, hf_x11_glx_DeleteQueriesARB_n, tvb, *offsetp, 4, byte_order);
9611 *offsetp += 4;
9612 listOfCard32(tvb, offsetp, t, hf_x11_glx_DeleteQueriesARB_ids, hf_x11_glx_DeleteQueriesARB_ids_item, f_n, byte_order);
9613 length -= f_n * 4;
9614}
9615
9616static void glxGenQueriesARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9617{
9618 proto_tree_add_item(t, hf_x11_glx_GenQueriesARB_context_tag, tvb, *offsetp, 4, byte_order);
9619 *offsetp += 4;
9620 proto_tree_add_item(t, hf_x11_glx_GenQueriesARB_n, tvb, *offsetp, 4, byte_order);
9621 *offsetp += 4;
9622}
9623static void glxGenQueriesARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9624{
9625 int sequence_number;
9626 int f_length;
9627
9628 col_append_fstr(pinfo->cinfo, COL_INFO, "-GenQueriesARB");
9629
9630 REPLY(reply);
9631 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9632 *offsetp += 1;
9633 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9634 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9635 "%d (glx-GenQueriesARB)", sequence_number);
9636 *offsetp += 2;
9637 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
9638 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9639 *offsetp += 4;
9640 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
9641 *offsetp += 24;
9642 listOfCard32(tvb, offsetp, t, hf_x11_glx_GenQueriesARB_reply_data, hf_x11_glx_GenQueriesARB_reply_data_item, f_length, byte_order);
9643}
9644
9645static void glxIsQueryARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9646{
9647 proto_tree_add_item(t, hf_x11_glx_IsQueryARB_context_tag, tvb, *offsetp, 4, byte_order);
9648 *offsetp += 4;
9649 proto_tree_add_item(t, hf_x11_glx_IsQueryARB_id, tvb, *offsetp, 4, byte_order);
9650 *offsetp += 4;
9651}
9652static void glxIsQueryARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9653{
9654 int sequence_number;
9655
9656 col_append_fstr(pinfo->cinfo, COL_INFO, "-IsQueryARB");
9657
9658 REPLY(reply);
9659 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9660 *offsetp += 1;
9661 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9662 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9663 "%d (glx-IsQueryARB)", sequence_number);
9664 *offsetp += 2;
9665 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9666 *offsetp += 4;
9667 proto_tree_add_item(t, hf_x11_glx_IsQueryARB_reply_ret_val, tvb, *offsetp, 4, byte_order);
9668 *offsetp += 4;
9669}
9670
9671static void glxGetQueryivARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9672{
9673 proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_context_tag, tvb, *offsetp, 4, byte_order);
9674 *offsetp += 4;
9675 proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_target, tvb, *offsetp, 4, byte_order);
9676 *offsetp += 4;
9677 proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_pname, tvb, *offsetp, 4, byte_order);
9678 *offsetp += 4;
9679}
9680static void glxGetQueryivARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9681{
9682 int sequence_number;
9683 int f_n;
9684
9685 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetQueryivARB");
9686
9687 REPLY(reply);
9688 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9689 *offsetp += 1;
9690 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9691 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9692 "%d (glx-GetQueryivARB)", sequence_number);
9693 *offsetp += 2;
9694 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9695 *offsetp += 4;
9696 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9697 *offsetp += 4;
9698 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
9699 proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_reply_n, tvb, *offsetp, 4, byte_order);
9700 *offsetp += 4;
9701 proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_reply_datum, tvb, *offsetp, 4, byte_order);
9702 *offsetp += 4;
9703 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9704 *offsetp += 12;
9705 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetQueryivARB_reply_data, hf_x11_glx_GetQueryivARB_reply_data_item, f_n, byte_order);
9706}
9707
9708static void glxGetQueryObjectivARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9709{
9710 proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_context_tag, tvb, *offsetp, 4, byte_order);
9711 *offsetp += 4;
9712 proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_id, tvb, *offsetp, 4, byte_order);
9713 *offsetp += 4;
9714 proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_pname, tvb, *offsetp, 4, byte_order);
9715 *offsetp += 4;
9716}
9717static void glxGetQueryObjectivARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9718{
9719 int sequence_number;
9720 int f_n;
9721
9722 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetQueryObjectivARB");
9723
9724 REPLY(reply);
9725 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9726 *offsetp += 1;
9727 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9728 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9729 "%d (glx-GetQueryObjectivARB)", sequence_number);
9730 *offsetp += 2;
9731 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9732 *offsetp += 4;
9733 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9734 *offsetp += 4;
9735 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
9736 proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_reply_n, tvb, *offsetp, 4, byte_order);
9737 *offsetp += 4;
9738 proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_reply_datum, tvb, *offsetp, 4, byte_order);
9739 *offsetp += 4;
9740 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9741 *offsetp += 12;
9742 listOfInt32(tvb, offsetp, t, hf_x11_glx_GetQueryObjectivARB_reply_data, hf_x11_glx_GetQueryObjectivARB_reply_data_item, f_n, byte_order);
9743}
9744
9745static void glxGetQueryObjectuivARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
9746{
9747 proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_context_tag, tvb, *offsetp, 4, byte_order);
9748 *offsetp += 4;
9749 proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_id, tvb, *offsetp, 4, byte_order);
9750 *offsetp += 4;
9751 proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_pname, tvb, *offsetp, 4, byte_order);
9752 *offsetp += 4;
9753}
9754static void glxGetQueryObjectuivARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9755{
9756 int sequence_number;
9757 int f_n;
9758
9759 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetQueryObjectuivARB");
9760
9761 REPLY(reply);
9762 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
9763 *offsetp += 1;
9764 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
9765 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
9766 "%d (glx-GetQueryObjectuivARB)", sequence_number);
9767 *offsetp += 2;
9768 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
9769 *offsetp += 4;
9770 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
9771 *offsetp += 4;
9772 f_n = tvb_get_uint32(tvb, *offsetp, byte_order);
9773 proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_reply_n, tvb, *offsetp, 4, byte_order);
9774 *offsetp += 4;
9775 proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_reply_datum, tvb, *offsetp, 4, byte_order);
9776 *offsetp += 4;
9777 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
9778 *offsetp += 12;
9779 listOfCard32(tvb, offsetp, t, hf_x11_glx_GetQueryObjectuivARB_reply_data, hf_x11_glx_GetQueryObjectuivARB_reply_data_item, f_n, byte_order);
9780}
9781static const value_string glx_extension_minor[] = {
9782 { 1, "Render" },
9783 { 2, "RenderLarge" },
9784 { 3, "CreateContext" },
9785 { 4, "DestroyContext" },
9786 { 5, "MakeCurrent" },
9787 { 6, "IsDirect" },
9788 { 7, "QueryVersion" },
9789 { 8, "WaitGL" },
9790 { 9, "WaitX" },
9791 { 10, "CopyContext" },
9792 { 11, "SwapBuffers" },
9793 { 12, "UseXFont" },
9794 { 13, "CreateGLXPixmap" },
9795 { 14, "GetVisualConfigs" },
9796 { 15, "DestroyGLXPixmap" },
9797 { 16, "VendorPrivate" },
9798 { 17, "VendorPrivateWithReply" },
9799 { 18, "QueryExtensionsString" },
9800 { 19, "QueryServerString" },
9801 { 20, "ClientInfo" },
9802 { 21, "GetFBConfigs" },
9803 { 22, "CreatePixmap" },
9804 { 23, "DestroyPixmap" },
9805 { 24, "CreateNewContext" },
9806 { 25, "QueryContext" },
9807 { 26, "MakeContextCurrent" },
9808 { 27, "CreatePbuffer" },
9809 { 28, "DestroyPbuffer" },
9810 { 29, "GetDrawableAttributes" },
9811 { 30, "ChangeDrawableAttributes" },
9812 { 31, "CreateWindow" },
9813 { 32, "DeleteWindow" },
9814 { 33, "SetClientInfoARB" },
9815 { 34, "CreateContextAttribsARB" },
9816 { 35, "SetClientInfo2ARB" },
9817 { 101, "NewList" },
9818 { 102, "EndList" },
9819 { 103, "DeleteLists" },
9820 { 104, "GenLists" },
9821 { 105, "FeedbackBuffer" },
9822 { 106, "SelectBuffer" },
9823 { 107, "RenderMode" },
9824 { 108, "Finish" },
9825 { 109, "PixelStoref" },
9826 { 110, "PixelStorei" },
9827 { 111, "ReadPixels" },
9828 { 112, "GetBooleanv" },
9829 { 113, "GetClipPlane" },
9830 { 114, "GetDoublev" },
9831 { 115, "GetError" },
9832 { 116, "GetFloatv" },
9833 { 117, "GetIntegerv" },
9834 { 118, "GetLightfv" },
9835 { 119, "GetLightiv" },
9836 { 120, "GetMapdv" },
9837 { 121, "GetMapfv" },
9838 { 122, "GetMapiv" },
9839 { 123, "GetMaterialfv" },
9840 { 124, "GetMaterialiv" },
9841 { 125, "GetPixelMapfv" },
9842 { 126, "GetPixelMapuiv" },
9843 { 127, "GetPixelMapusv" },
9844 { 128, "GetPolygonStipple" },
9845 { 129, "GetString" },
9846 { 130, "GetTexEnvfv" },
9847 { 131, "GetTexEnviv" },
9848 { 132, "GetTexGendv" },
9849 { 133, "GetTexGenfv" },
9850 { 134, "GetTexGeniv" },
9851 { 135, "GetTexImage" },
9852 { 136, "GetTexParameterfv" },
9853 { 137, "GetTexParameteriv" },
9854 { 138, "GetTexLevelParameterfv" },
9855 { 139, "GetTexLevelParameteriv" },
9856 { 140, "IsEnabled" },
9857 { 141, "IsList" },
9858 { 142, "Flush" },
9859 { 143, "AreTexturesResident" },
9860 { 144, "DeleteTextures" },
9861 { 145, "GenTextures" },
9862 { 146, "IsTexture" },
9863 { 147, "GetColorTable" },
9864 { 148, "GetColorTableParameterfv" },
9865 { 149, "GetColorTableParameteriv" },
9866 { 150, "GetConvolutionFilter" },
9867 { 151, "GetConvolutionParameterfv" },
9868 { 152, "GetConvolutionParameteriv" },
9869 { 153, "GetSeparableFilter" },
9870 { 154, "GetHistogram" },
9871 { 155, "GetHistogramParameterfv" },
9872 { 156, "GetHistogramParameteriv" },
9873 { 157, "GetMinmax" },
9874 { 158, "GetMinmaxParameterfv" },
9875 { 159, "GetMinmaxParameteriv" },
9876 { 160, "GetCompressedTexImageARB" },
9877 { 161, "DeleteQueriesARB" },
9878 { 162, "GenQueriesARB" },
9879 { 163, "IsQueryARB" },
9880 { 164, "GetQueryivARB" },
9881 { 165, "GetQueryObjectivARB" },
9882 { 166, "GetQueryObjectuivARB" },
9883 { 0, NULL }
9884};
9885static const x11_event_info glx_events[] = {
9886 { "glx-BufferSwapComplete", glxBufferSwapComplete },
9887 { NULL, NULL }
9888};
9889static const x11_reply_info glx_replies[] = {
9890 { 5, glxMakeCurrent_Reply },
9891 { 6, glxIsDirect_Reply },
9892 { 7, glxQueryVersion_Reply },
9893 { 14, glxGetVisualConfigs_Reply },
9894 { 17, glxVendorPrivateWithReply_Reply },
9895 { 18, glxQueryExtensionsString_Reply },
9896 { 19, glxQueryServerString_Reply },
9897 { 21, glxGetFBConfigs_Reply },
9898 { 25, glxQueryContext_Reply },
9899 { 26, glxMakeContextCurrent_Reply },
9900 { 29, glxGetDrawableAttributes_Reply },
9901 { 104, glxGenLists_Reply },
9902 { 107, glxRenderMode_Reply },
9903 { 108, glxFinish_Reply },
9904 { 111, glxReadPixels_Reply },
9905 { 112, glxGetBooleanv_Reply },
9906 { 113, glxGetClipPlane_Reply },
9907 { 114, glxGetDoublev_Reply },
9908 { 115, glxGetError_Reply },
9909 { 116, glxGetFloatv_Reply },
9910 { 117, glxGetIntegerv_Reply },
9911 { 118, glxGetLightfv_Reply },
9912 { 119, glxGetLightiv_Reply },
9913 { 120, glxGetMapdv_Reply },
9914 { 121, glxGetMapfv_Reply },
9915 { 122, glxGetMapiv_Reply },
9916 { 123, glxGetMaterialfv_Reply },
9917 { 124, glxGetMaterialiv_Reply },
9918 { 125, glxGetPixelMapfv_Reply },
9919 { 126, glxGetPixelMapuiv_Reply },
9920 { 127, glxGetPixelMapusv_Reply },
9921 { 128, glxGetPolygonStipple_Reply },
9922 { 129, glxGetString_Reply },
9923 { 130, glxGetTexEnvfv_Reply },
9924 { 131, glxGetTexEnviv_Reply },
9925 { 132, glxGetTexGendv_Reply },
9926 { 133, glxGetTexGenfv_Reply },
9927 { 134, glxGetTexGeniv_Reply },
9928 { 135, glxGetTexImage_Reply },
9929 { 136, glxGetTexParameterfv_Reply },
9930 { 137, glxGetTexParameteriv_Reply },
9931 { 138, glxGetTexLevelParameterfv_Reply },
9932 { 139, glxGetTexLevelParameteriv_Reply },
9933 { 140, glxIsEnabled_Reply },
9934 { 141, glxIsList_Reply },
9935 { 143, glxAreTexturesResident_Reply },
9936 { 145, glxGenTextures_Reply },
9937 { 146, glxIsTexture_Reply },
9938 { 147, glxGetColorTable_Reply },
9939 { 148, glxGetColorTableParameterfv_Reply },
9940 { 149, glxGetColorTableParameteriv_Reply },
9941 { 150, glxGetConvolutionFilter_Reply },
9942 { 151, glxGetConvolutionParameterfv_Reply },
9943 { 152, glxGetConvolutionParameteriv_Reply },
9944 { 153, glxGetSeparableFilter_Reply },
9945 { 154, glxGetHistogram_Reply },
9946 { 155, glxGetHistogramParameterfv_Reply },
9947 { 156, glxGetHistogramParameteriv_Reply },
9948 { 157, glxGetMinmax_Reply },
9949 { 158, glxGetMinmaxParameterfv_Reply },
9950 { 159, glxGetMinmaxParameteriv_Reply },
9951 { 160, glxGetCompressedTexImageARB_Reply },
9952 { 162, glxGenQueriesARB_Reply },
9953 { 163, glxIsQueryARB_Reply },
9954 { 164, glxGetQueryivARB_Reply },
9955 { 165, glxGetQueryObjectivARB_Reply },
9956 { 166, glxGetQueryObjectuivARB_Reply },
9957 { 0, NULL }
9958};
9959
9960static void dispatch_glx(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
9961{
9962 int minor, length;
9963 minor = CARD8(glx_extension_minor);
9964 length = REQUEST_LENGTH();
9965
9966 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
9967 val_to_str(minor, glx_extension_minor,
9968 "<Unknown opcode %d>"));
9969 switch (minor) {
9970 case 1:
9971 glxRender(tvb, pinfo, offsetp, t, byte_order, length);
9972 break;
9973 case 2:
9974 glxRenderLarge(tvb, pinfo, offsetp, t, byte_order, length);
9975 break;
9976 case 3:
9977 glxCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
9978 break;
9979 case 4:
9980 glxDestroyContext(tvb, pinfo, offsetp, t, byte_order, length);
9981 break;
9982 case 5:
9983 glxMakeCurrent(tvb, pinfo, offsetp, t, byte_order, length);
9984 break;
9985 case 6:
9986 glxIsDirect(tvb, pinfo, offsetp, t, byte_order, length);
9987 break;
9988 case 7:
9989 glxQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
9990 break;
9991 case 8:
9992 glxWaitGL(tvb, pinfo, offsetp, t, byte_order, length);
9993 break;
9994 case 9:
9995 glxWaitX(tvb, pinfo, offsetp, t, byte_order, length);
9996 break;
9997 case 10:
9998 glxCopyContext(tvb, pinfo, offsetp, t, byte_order, length);
9999 break;
10000 case 11:
10001 glxSwapBuffers(tvb, pinfo, offsetp, t, byte_order, length);
10002 break;
10003 case 12:
10004 glxUseXFont(tvb, pinfo, offsetp, t, byte_order, length);
10005 break;
10006 case 13:
10007 glxCreateGLXPixmap(tvb, pinfo, offsetp, t, byte_order, length);
10008 break;
10009 case 14:
10010 glxGetVisualConfigs(tvb, pinfo, offsetp, t, byte_order, length);
10011 break;
10012 case 15:
10013 glxDestroyGLXPixmap(tvb, pinfo, offsetp, t, byte_order, length);
10014 break;
10015 case 16:
10016 glxVendorPrivate(tvb, pinfo, offsetp, t, byte_order, length);
10017 break;
10018 case 17:
10019 glxVendorPrivateWithReply(tvb, pinfo, offsetp, t, byte_order, length);
10020 break;
10021 case 18:
10022 glxQueryExtensionsString(tvb, pinfo, offsetp, t, byte_order, length);
10023 break;
10024 case 19:
10025 glxQueryServerString(tvb, pinfo, offsetp, t, byte_order, length);
10026 break;
10027 case 20:
10028 glxClientInfo(tvb, pinfo, offsetp, t, byte_order, length);
10029 break;
10030 case 21:
10031 glxGetFBConfigs(tvb, pinfo, offsetp, t, byte_order, length);
10032 break;
10033 case 22:
10034 glxCreatePixmap(tvb, pinfo, offsetp, t, byte_order, length);
10035 break;
10036 case 23:
10037 glxDestroyPixmap(tvb, pinfo, offsetp, t, byte_order, length);
10038 break;
10039 case 24:
10040 glxCreateNewContext(tvb, pinfo, offsetp, t, byte_order, length);
10041 break;
10042 case 25:
10043 glxQueryContext(tvb, pinfo, offsetp, t, byte_order, length);
10044 break;
10045 case 26:
10046 glxMakeContextCurrent(tvb, pinfo, offsetp, t, byte_order, length);
10047 break;
10048 case 27:
10049 glxCreatePbuffer(tvb, pinfo, offsetp, t, byte_order, length);
10050 break;
10051 case 28:
10052 glxDestroyPbuffer(tvb, pinfo, offsetp, t, byte_order, length);
10053 break;
10054 case 29:
10055 glxGetDrawableAttributes(tvb, pinfo, offsetp, t, byte_order, length);
10056 break;
10057 case 30:
10058 glxChangeDrawableAttributes(tvb, pinfo, offsetp, t, byte_order, length);
10059 break;
10060 case 31:
10061 glxCreateWindow(tvb, pinfo, offsetp, t, byte_order, length);
10062 break;
10063 case 32:
10064 glxDeleteWindow(tvb, pinfo, offsetp, t, byte_order, length);
10065 break;
10066 case 33:
10067 glxSetClientInfoARB(tvb, pinfo, offsetp, t, byte_order, length);
10068 break;
10069 case 34:
10070 glxCreateContextAttribsARB(tvb, pinfo, offsetp, t, byte_order, length);
10071 break;
10072 case 35:
10073 glxSetClientInfo2ARB(tvb, pinfo, offsetp, t, byte_order, length);
10074 break;
10075 case 101:
10076 glxNewList(tvb, pinfo, offsetp, t, byte_order, length);
10077 break;
10078 case 102:
10079 glxEndList(tvb, pinfo, offsetp, t, byte_order, length);
10080 break;
10081 case 103:
10082 glxDeleteLists(tvb, pinfo, offsetp, t, byte_order, length);
10083 break;
10084 case 104:
10085 glxGenLists(tvb, pinfo, offsetp, t, byte_order, length);
10086 break;
10087 case 105:
10088 glxFeedbackBuffer(tvb, pinfo, offsetp, t, byte_order, length);
10089 break;
10090 case 106:
10091 glxSelectBuffer(tvb, pinfo, offsetp, t, byte_order, length);
10092 break;
10093 case 107:
10094 glxRenderMode(tvb, pinfo, offsetp, t, byte_order, length);
10095 break;
10096 case 108:
10097 glxFinish(tvb, pinfo, offsetp, t, byte_order, length);
10098 break;
10099 case 109:
10100 glxPixelStoref(tvb, pinfo, offsetp, t, byte_order, length);
10101 break;
10102 case 110:
10103 glxPixelStorei(tvb, pinfo, offsetp, t, byte_order, length);
10104 break;
10105 case 111:
10106 glxReadPixels(tvb, pinfo, offsetp, t, byte_order, length);
10107 break;
10108 case 112:
10109 glxGetBooleanv(tvb, pinfo, offsetp, t, byte_order, length);
10110 break;
10111 case 113:
10112 glxGetClipPlane(tvb, pinfo, offsetp, t, byte_order, length);
10113 break;
10114 case 114:
10115 glxGetDoublev(tvb, pinfo, offsetp, t, byte_order, length);
10116 break;
10117 case 115:
10118 glxGetError(tvb, pinfo, offsetp, t, byte_order, length);
10119 break;
10120 case 116:
10121 glxGetFloatv(tvb, pinfo, offsetp, t, byte_order, length);
10122 break;
10123 case 117:
10124 glxGetIntegerv(tvb, pinfo, offsetp, t, byte_order, length);
10125 break;
10126 case 118:
10127 glxGetLightfv(tvb, pinfo, offsetp, t, byte_order, length);
10128 break;
10129 case 119:
10130 glxGetLightiv(tvb, pinfo, offsetp, t, byte_order, length);
10131 break;
10132 case 120:
10133 glxGetMapdv(tvb, pinfo, offsetp, t, byte_order, length);
10134 break;
10135 case 121:
10136 glxGetMapfv(tvb, pinfo, offsetp, t, byte_order, length);
10137 break;
10138 case 122:
10139 glxGetMapiv(tvb, pinfo, offsetp, t, byte_order, length);
10140 break;
10141 case 123:
10142 glxGetMaterialfv(tvb, pinfo, offsetp, t, byte_order, length);
10143 break;
10144 case 124:
10145 glxGetMaterialiv(tvb, pinfo, offsetp, t, byte_order, length);
10146 break;
10147 case 125:
10148 glxGetPixelMapfv(tvb, pinfo, offsetp, t, byte_order, length);
10149 break;
10150 case 126:
10151 glxGetPixelMapuiv(tvb, pinfo, offsetp, t, byte_order, length);
10152 break;
10153 case 127:
10154 glxGetPixelMapusv(tvb, pinfo, offsetp, t, byte_order, length);
10155 break;
10156 case 128:
10157 glxGetPolygonStipple(tvb, pinfo, offsetp, t, byte_order, length);
10158 break;
10159 case 129:
10160 glxGetString(tvb, pinfo, offsetp, t, byte_order, length);
10161 break;
10162 case 130:
10163 glxGetTexEnvfv(tvb, pinfo, offsetp, t, byte_order, length);
10164 break;
10165 case 131:
10166 glxGetTexEnviv(tvb, pinfo, offsetp, t, byte_order, length);
10167 break;
10168 case 132:
10169 glxGetTexGendv(tvb, pinfo, offsetp, t, byte_order, length);
10170 break;
10171 case 133:
10172 glxGetTexGenfv(tvb, pinfo, offsetp, t, byte_order, length);
10173 break;
10174 case 134:
10175 glxGetTexGeniv(tvb, pinfo, offsetp, t, byte_order, length);
10176 break;
10177 case 135:
10178 glxGetTexImage(tvb, pinfo, offsetp, t, byte_order, length);
10179 break;
10180 case 136:
10181 glxGetTexParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
10182 break;
10183 case 137:
10184 glxGetTexParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
10185 break;
10186 case 138:
10187 glxGetTexLevelParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
10188 break;
10189 case 139:
10190 glxGetTexLevelParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
10191 break;
10192 case 140:
10193 glxIsEnabled(tvb, pinfo, offsetp, t, byte_order, length);
10194 break;
10195 case 141:
10196 glxIsList(tvb, pinfo, offsetp, t, byte_order, length);
10197 break;
10198 case 142:
10199 glxFlush(tvb, pinfo, offsetp, t, byte_order, length);
10200 break;
10201 case 143:
10202 glxAreTexturesResident(tvb, pinfo, offsetp, t, byte_order, length);
10203 break;
10204 case 144:
10205 glxDeleteTextures(tvb, pinfo, offsetp, t, byte_order, length);
10206 break;
10207 case 145:
10208 glxGenTextures(tvb, pinfo, offsetp, t, byte_order, length);
10209 break;
10210 case 146:
10211 glxIsTexture(tvb, pinfo, offsetp, t, byte_order, length);
10212 break;
10213 case 147:
10214 glxGetColorTable(tvb, pinfo, offsetp, t, byte_order, length);
10215 break;
10216 case 148:
10217 glxGetColorTableParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
10218 break;
10219 case 149:
10220 glxGetColorTableParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
10221 break;
10222 case 150:
10223 glxGetConvolutionFilter(tvb, pinfo, offsetp, t, byte_order, length);
10224 break;
10225 case 151:
10226 glxGetConvolutionParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
10227 break;
10228 case 152:
10229 glxGetConvolutionParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
10230 break;
10231 case 153:
10232 glxGetSeparableFilter(tvb, pinfo, offsetp, t, byte_order, length);
10233 break;
10234 case 154:
10235 glxGetHistogram(tvb, pinfo, offsetp, t, byte_order, length);
10236 break;
10237 case 155:
10238 glxGetHistogramParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
10239 break;
10240 case 156:
10241 glxGetHistogramParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
10242 break;
10243 case 157:
10244 glxGetMinmax(tvb, pinfo, offsetp, t, byte_order, length);
10245 break;
10246 case 158:
10247 glxGetMinmaxParameterfv(tvb, pinfo, offsetp, t, byte_order, length);
10248 break;
10249 case 159:
10250 glxGetMinmaxParameteriv(tvb, pinfo, offsetp, t, byte_order, length);
10251 break;
10252 case 160:
10253 glxGetCompressedTexImageARB(tvb, pinfo, offsetp, t, byte_order, length);
10254 break;
10255 case 161:
10256 glxDeleteQueriesARB(tvb, pinfo, offsetp, t, byte_order, length);
10257 break;
10258 case 162:
10259 glxGenQueriesARB(tvb, pinfo, offsetp, t, byte_order, length);
10260 break;
10261 case 163:
10262 glxIsQueryARB(tvb, pinfo, offsetp, t, byte_order, length);
10263 break;
10264 case 164:
10265 glxGetQueryivARB(tvb, pinfo, offsetp, t, byte_order, length);
10266 break;
10267 case 165:
10268 glxGetQueryObjectivARB(tvb, pinfo, offsetp, t, byte_order, length);
10269 break;
10270 case 166:
10271 glxGetQueryObjectuivARB(tvb, pinfo, offsetp, t, byte_order, length);
10272 break;
10273 /* No need for a default case here, since Unknown is printed above,
10274 and UNDECODED() is taken care of by dissect_x11_request */
10275 }
10276}
10277
10278static void register_glx(void)
10279{
10280 set_handler("GLX", dispatch_glx, glx_errors, glx_events, NULL, glx_replies);
10281}
10282
10283static void struct_randr_ScreenSize(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10284{
10285 int i;
10286 for (i = 0; i < count; i++) {
10287 proto_item *item;
10288 proto_tree *t;
10289
10290 item = proto_tree_add_item(root, hf_x11_struct_randr_ScreenSize, tvb, *offsetp, 8, ENC_NA);
10291 t = proto_item_add_subtree(item, ett_x11_rectangle);
10292 proto_tree_add_item(t, hf_x11_struct_randr_ScreenSize_width, tvb, *offsetp, 2, byte_order);
10293 *offsetp += 2;
10294 proto_tree_add_item(t, hf_x11_struct_randr_ScreenSize_height, tvb, *offsetp, 2, byte_order);
10295 *offsetp += 2;
10296 proto_tree_add_item(t, hf_x11_struct_randr_ScreenSize_mwidth, tvb, *offsetp, 2, byte_order);
10297 *offsetp += 2;
10298 proto_tree_add_item(t, hf_x11_struct_randr_ScreenSize_mheight, tvb, *offsetp, 2, byte_order);
10299 *offsetp += 2;
10300 }
10301}
10302
10303static int struct_size_randr_RefreshRates(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
10304{
10305 int size = 0;
10306 int f_nRates;
10307 f_nRates = tvb_get_uint16(tvb, *offsetp + size + 0, byte_order);
10308 size += f_nRates * 2;
10309 return size + 2;
10310}
10311
10312static void struct_randr_RefreshRates(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10313{
10314 int i;
10315 for (i = 0; i < count; i++) {
10316 proto_item *item;
10317 proto_tree *t;
10318 int f_nRates;
10319
10320 item = proto_tree_add_item(root, hf_x11_struct_randr_RefreshRates, tvb, *offsetp, struct_size_randr_RefreshRates(tvb, offsetp, byte_order), ENC_NA);
10321 t = proto_item_add_subtree(item, ett_x11_rectangle);
10322 f_nRates = tvb_get_uint16(tvb, *offsetp, byte_order);
10323 proto_tree_add_item(t, hf_x11_struct_randr_RefreshRates_nRates, tvb, *offsetp, 2, byte_order);
10324 *offsetp += 2;
10325 listOfCard16(tvb, offsetp, t, hf_x11_struct_randr_RefreshRates_rates, hf_x11_struct_randr_RefreshRates_rates_item, f_nRates, byte_order);
10326 }
10327}
10328
10329static void struct_randr_ModeInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10330{
10331 int i;
10332 for (i = 0; i < count; i++) {
10333 proto_item *item;
10334 proto_tree *t;
10335
10336 item = proto_tree_add_item(root, hf_x11_struct_randr_ModeInfo, tvb, *offsetp, 32, ENC_NA);
10337 t = proto_item_add_subtree(item, ett_x11_rectangle);
10338 proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_id, tvb, *offsetp, 4, byte_order);
10339 *offsetp += 4;
10340 proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_width, tvb, *offsetp, 2, byte_order);
10341 *offsetp += 2;
10342 proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_height, tvb, *offsetp, 2, byte_order);
10343 *offsetp += 2;
10344 proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_dot_clock, tvb, *offsetp, 4, byte_order);
10345 *offsetp += 4;
10346 proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_hsync_start, tvb, *offsetp, 2, byte_order);
10347 *offsetp += 2;
10348 proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_hsync_end, tvb, *offsetp, 2, byte_order);
10349 *offsetp += 2;
10350 proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_htotal, tvb, *offsetp, 2, byte_order);
10351 *offsetp += 2;
10352 proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_hskew, tvb, *offsetp, 2, byte_order);
10353 *offsetp += 2;
10354 proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_vsync_start, tvb, *offsetp, 2, byte_order);
10355 *offsetp += 2;
10356 proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_vsync_end, tvb, *offsetp, 2, byte_order);
10357 *offsetp += 2;
10358 proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_vtotal, tvb, *offsetp, 2, byte_order);
10359 *offsetp += 2;
10360 proto_tree_add_item(t, hf_x11_struct_randr_ModeInfo_name_len, tvb, *offsetp, 2, byte_order);
10361 *offsetp += 2;
10362 {
10363 static int* const mode_flags_bits [] = {
10364 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_HsyncPositive,
10365 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_HsyncNegative,
10366 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_VsyncPositive,
10367 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_VsyncNegative,
10368 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_Interlace,
10369 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_DoubleScan,
10370 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_Csync,
10371 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_CsyncPositive,
10372 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_CsyncNegative,
10373 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_HskewPresent,
10374 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_Bcast,
10375 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_PixelMultiplex,
10376 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_DoubleClock,
10377 &hf_x11_struct_randr_ModeInfo_mode_flags_mask_HalveClock,
10378 NULL
10379 };
10380 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_randr_ModeInfo_mode_flags, ett_x11_rectangle, mode_flags_bits, byte_order);
10381 }
10382 *offsetp += 4;
10383 }
10384}
10385
10386static void struct_randr_CrtcChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10387{
10388 int i;
10389 for (i = 0; i < count; i++) {
10390 proto_item *item;
10391 proto_tree *t;
10392
10393 item = proto_tree_add_item(root, hf_x11_struct_randr_CrtcChange, tvb, *offsetp, 28, ENC_NA);
10394 t = proto_item_add_subtree(item, ett_x11_rectangle);
10395 proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_timestamp, tvb, *offsetp, 4, byte_order);
10396 *offsetp += 4;
10397 proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_window, tvb, *offsetp, 4, byte_order);
10398 *offsetp += 4;
10399 proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_crtc, tvb, *offsetp, 4, byte_order);
10400 *offsetp += 4;
10401 proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_mode, tvb, *offsetp, 4, byte_order);
10402 *offsetp += 4;
10403 {
10404 static int* const rotation_bits [] = {
10405 &hf_x11_struct_randr_CrtcChange_rotation_mask_Rotate_0,
10406 &hf_x11_struct_randr_CrtcChange_rotation_mask_Rotate_90,
10407 &hf_x11_struct_randr_CrtcChange_rotation_mask_Rotate_180,
10408 &hf_x11_struct_randr_CrtcChange_rotation_mask_Rotate_270,
10409 &hf_x11_struct_randr_CrtcChange_rotation_mask_Reflect_X,
10410 &hf_x11_struct_randr_CrtcChange_rotation_mask_Reflect_Y,
10411 NULL
10412 };
10413 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_randr_CrtcChange_rotation, ett_x11_rectangle, rotation_bits, byte_order);
10414 }
10415 *offsetp += 2;
10416 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10417 *offsetp += 2;
10418 proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_x, tvb, *offsetp, 2, byte_order);
10419 *offsetp += 2;
10420 proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_y, tvb, *offsetp, 2, byte_order);
10421 *offsetp += 2;
10422 proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_width, tvb, *offsetp, 2, byte_order);
10423 *offsetp += 2;
10424 proto_tree_add_item(t, hf_x11_struct_randr_CrtcChange_height, tvb, *offsetp, 2, byte_order);
10425 *offsetp += 2;
10426 }
10427}
10428
10429static void struct_randr_OutputChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10430{
10431 int i;
10432 for (i = 0; i < count; i++) {
10433 proto_item *item;
10434 proto_tree *t;
10435
10436 item = proto_tree_add_item(root, hf_x11_struct_randr_OutputChange, tvb, *offsetp, 28, ENC_NA);
10437 t = proto_item_add_subtree(item, ett_x11_rectangle);
10438 proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_timestamp, tvb, *offsetp, 4, byte_order);
10439 *offsetp += 4;
10440 proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_config_timestamp, tvb, *offsetp, 4, byte_order);
10441 *offsetp += 4;
10442 proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_window, tvb, *offsetp, 4, byte_order);
10443 *offsetp += 4;
10444 proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_output, tvb, *offsetp, 4, byte_order);
10445 *offsetp += 4;
10446 proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_crtc, tvb, *offsetp, 4, byte_order);
10447 *offsetp += 4;
10448 proto_tree_add_item(t, hf_x11_struct_randr_OutputChange_mode, tvb, *offsetp, 4, byte_order);
10449 *offsetp += 4;
10450 {
10451 static int* const rotation_bits [] = {
10452 &hf_x11_struct_randr_OutputChange_rotation_mask_Rotate_0,
10453 &hf_x11_struct_randr_OutputChange_rotation_mask_Rotate_90,
10454 &hf_x11_struct_randr_OutputChange_rotation_mask_Rotate_180,
10455 &hf_x11_struct_randr_OutputChange_rotation_mask_Rotate_270,
10456 &hf_x11_struct_randr_OutputChange_rotation_mask_Reflect_X,
10457 &hf_x11_struct_randr_OutputChange_rotation_mask_Reflect_Y,
10458 NULL
10459 };
10460 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_randr_OutputChange_rotation, ett_x11_rectangle, rotation_bits, byte_order);
10461 }
10462 *offsetp += 2;
10463 field8(tvb, offsetp, t, hf_x11_struct_randr_OutputChange_connection, byte_order);
10464 field8(tvb, offsetp, t, hf_x11_struct_randr_OutputChange_subpixel_order, byte_order);
10465 }
10466}
10467
10468static void struct_randr_OutputProperty(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10469{
10470 int i;
10471 for (i = 0; i < count; i++) {
10472 proto_item *item;
10473 proto_tree *t;
10474
10475 item = proto_tree_add_item(root, hf_x11_struct_randr_OutputProperty, tvb, *offsetp, 28, ENC_NA);
10476 t = proto_item_add_subtree(item, ett_x11_rectangle);
10477 proto_tree_add_item(t, hf_x11_struct_randr_OutputProperty_window, tvb, *offsetp, 4, byte_order);
10478 *offsetp += 4;
10479 proto_tree_add_item(t, hf_x11_struct_randr_OutputProperty_output, tvb, *offsetp, 4, byte_order);
10480 *offsetp += 4;
10481 proto_tree_add_item(t, hf_x11_struct_randr_OutputProperty_atom, tvb, *offsetp, 4, byte_order);
10482 *offsetp += 4;
10483 proto_tree_add_item(t, hf_x11_struct_randr_OutputProperty_timestamp, tvb, *offsetp, 4, byte_order);
10484 *offsetp += 4;
10485 field8(tvb, offsetp, t, hf_x11_struct_randr_OutputProperty_status, byte_order);
10486 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
10487 *offsetp += 11;
10488 }
10489}
10490
10491static void struct_randr_ProviderChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10492{
10493 int i;
10494 for (i = 0; i < count; i++) {
10495 proto_item *item;
10496 proto_tree *t;
10497
10498 item = proto_tree_add_item(root, hf_x11_struct_randr_ProviderChange, tvb, *offsetp, 28, ENC_NA);
10499 t = proto_item_add_subtree(item, ett_x11_rectangle);
10500 proto_tree_add_item(t, hf_x11_struct_randr_ProviderChange_timestamp, tvb, *offsetp, 4, byte_order);
10501 *offsetp += 4;
10502 proto_tree_add_item(t, hf_x11_struct_randr_ProviderChange_window, tvb, *offsetp, 4, byte_order);
10503 *offsetp += 4;
10504 proto_tree_add_item(t, hf_x11_struct_randr_ProviderChange_provider, tvb, *offsetp, 4, byte_order);
10505 *offsetp += 4;
10506 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
10507 *offsetp += 16;
10508 }
10509}
10510
10511static void struct_randr_ProviderProperty(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10512{
10513 int i;
10514 for (i = 0; i < count; i++) {
10515 proto_item *item;
10516 proto_tree *t;
10517
10518 item = proto_tree_add_item(root, hf_x11_struct_randr_ProviderProperty, tvb, *offsetp, 28, ENC_NA);
10519 t = proto_item_add_subtree(item, ett_x11_rectangle);
10520 proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_window, tvb, *offsetp, 4, byte_order);
10521 *offsetp += 4;
10522 proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_provider, tvb, *offsetp, 4, byte_order);
10523 *offsetp += 4;
10524 proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_atom, tvb, *offsetp, 4, byte_order);
10525 *offsetp += 4;
10526 proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_timestamp, tvb, *offsetp, 4, byte_order);
10527 *offsetp += 4;
10528 proto_tree_add_item(t, hf_x11_struct_randr_ProviderProperty_state, tvb, *offsetp, 1, byte_order);
10529 *offsetp += 1;
10530 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
10531 *offsetp += 11;
10532 }
10533}
10534
10535static void struct_randr_ResourceChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10536{
10537 int i;
10538 for (i = 0; i < count; i++) {
10539 proto_item *item;
10540 proto_tree *t;
10541
10542 item = proto_tree_add_item(root, hf_x11_struct_randr_ResourceChange, tvb, *offsetp, 28, ENC_NA);
10543 t = proto_item_add_subtree(item, ett_x11_rectangle);
10544 proto_tree_add_item(t, hf_x11_struct_randr_ResourceChange_timestamp, tvb, *offsetp, 4, byte_order);
10545 *offsetp += 4;
10546 proto_tree_add_item(t, hf_x11_struct_randr_ResourceChange_window, tvb, *offsetp, 4, byte_order);
10547 *offsetp += 4;
10548 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
10549 *offsetp += 20;
10550 }
10551}
10552
10553static int struct_size_randr_MonitorInfo(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
10554{
10555 int size = 0;
10556 int f_nOutput;
10557 f_nOutput = tvb_get_uint16(tvb, *offsetp + size + 6, byte_order);
10558 size += f_nOutput * 4;
10559 return size + 24;
10560}
10561
10562static void struct_randr_MonitorInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10563{
10564 int i;
10565 for (i = 0; i < count; i++) {
10566 proto_item *item;
10567 proto_tree *t;
10568 int f_nOutput;
10569
10570 item = proto_tree_add_item(root, hf_x11_struct_randr_MonitorInfo, tvb, *offsetp, struct_size_randr_MonitorInfo(tvb, offsetp, byte_order), ENC_NA);
10571 t = proto_item_add_subtree(item, ett_x11_rectangle);
10572 proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_name, tvb, *offsetp, 4, byte_order);
10573 *offsetp += 4;
10574 proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_primary, tvb, *offsetp, 1, byte_order);
10575 *offsetp += 1;
10576 proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_automatic, tvb, *offsetp, 1, byte_order);
10577 *offsetp += 1;
10578 f_nOutput = tvb_get_uint16(tvb, *offsetp, byte_order);
10579 proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_nOutput, tvb, *offsetp, 2, byte_order);
10580 *offsetp += 2;
10581 proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_x, tvb, *offsetp, 2, byte_order);
10582 *offsetp += 2;
10583 proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_y, tvb, *offsetp, 2, byte_order);
10584 *offsetp += 2;
10585 proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_width, tvb, *offsetp, 2, byte_order);
10586 *offsetp += 2;
10587 proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_height, tvb, *offsetp, 2, byte_order);
10588 *offsetp += 2;
10589 proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_width_in_millimeters, tvb, *offsetp, 4, byte_order);
10590 *offsetp += 4;
10591 proto_tree_add_item(t, hf_x11_struct_randr_MonitorInfo_height_in_millimeters, tvb, *offsetp, 4, byte_order);
10592 *offsetp += 4;
10593 listOfCard32(tvb, offsetp, t, hf_x11_struct_randr_MonitorInfo_outputs, hf_x11_struct_randr_MonitorInfo_outputs_item, f_nOutput, byte_order);
10594 }
10595}
10596
10597static void struct_randr_LeaseNotify(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10598{
10599 int i;
10600 for (i = 0; i < count; i++) {
10601 proto_item *item;
10602 proto_tree *t;
10603
10604 item = proto_tree_add_item(root, hf_x11_struct_randr_LeaseNotify, tvb, *offsetp, 28, ENC_NA);
10605 t = proto_item_add_subtree(item, ett_x11_rectangle);
10606 proto_tree_add_item(t, hf_x11_struct_randr_LeaseNotify_timestamp, tvb, *offsetp, 4, byte_order);
10607 *offsetp += 4;
10608 proto_tree_add_item(t, hf_x11_struct_randr_LeaseNotify_window, tvb, *offsetp, 4, byte_order);
10609 *offsetp += 4;
10610 proto_tree_add_item(t, hf_x11_struct_randr_LeaseNotify_lease, tvb, *offsetp, 4, byte_order);
10611 *offsetp += 4;
10612 proto_tree_add_item(t, hf_x11_struct_randr_LeaseNotify_created, tvb, *offsetp, 1, byte_order);
10613 *offsetp += 1;
10614 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
10615 *offsetp += 15;
10616 }
10617}
10618
10619static void struct_sync_INT64(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10620{
10621 int i;
10622 for (i = 0; i < count; i++) {
10623 proto_item *item;
10624 proto_tree *t;
10625
10626 item = proto_tree_add_item(root, hf_x11_struct_sync_INT64, tvb, *offsetp, 8, ENC_NA);
10627 t = proto_item_add_subtree(item, ett_x11_rectangle);
10628 proto_tree_add_item(t, hf_x11_struct_sync_INT64_hi, tvb, *offsetp, 4, byte_order);
10629 *offsetp += 4;
10630 proto_tree_add_item(t, hf_x11_struct_sync_INT64_lo, tvb, *offsetp, 4, byte_order);
10631 *offsetp += 4;
10632 }
10633}
10634
10635static int struct_size_sync_SYSTEMCOUNTER(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
10636{
10637 int size = 0;
10638 int f_name_len;
10639 f_name_len = tvb_get_uint16(tvb, *offsetp + size + 12, byte_order);
10640 size += f_name_len * 1;
10641 size = (size + 3) & ~3;
10642 return size + 14;
10643}
10644
10645static void struct_sync_SYSTEMCOUNTER(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10646{
10647 int i;
10648 for (i = 0; i < count; i++) {
10649 proto_item *item;
10650 proto_tree *t;
10651 int f_name_len;
10652
10653 item = proto_tree_add_item(root, hf_x11_struct_sync_SYSTEMCOUNTER, tvb, *offsetp, struct_size_sync_SYSTEMCOUNTER(tvb, offsetp, byte_order), ENC_NA);
10654 t = proto_item_add_subtree(item, ett_x11_rectangle);
10655 proto_tree_add_item(t, hf_x11_struct_sync_SYSTEMCOUNTER_counter, tvb, *offsetp, 4, byte_order);
10656 *offsetp += 4;
10657 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
10658 f_name_len = tvb_get_uint16(tvb, *offsetp, byte_order);
10659 proto_tree_add_item(t, hf_x11_struct_sync_SYSTEMCOUNTER_name_len, tvb, *offsetp, 2, byte_order);
10660 *offsetp += 2;
10661 listOfByte(tvb, offsetp, t, hf_x11_struct_sync_SYSTEMCOUNTER_name, f_name_len, byte_order);
10662 pad_to_4_bytes(tvb, offsetp, t);
10663 }
10664}
10665
10666static void struct_sync_TRIGGER(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10667{
10668 int i;
10669 for (i = 0; i < count; i++) {
10670 proto_item *item;
10671 proto_tree *t;
10672
10673 item = proto_tree_add_item(root, hf_x11_struct_sync_TRIGGER, tvb, *offsetp, 20, ENC_NA);
10674 t = proto_item_add_subtree(item, ett_x11_rectangle);
10675 proto_tree_add_item(t, hf_x11_struct_sync_TRIGGER_counter, tvb, *offsetp, 4, byte_order);
10676 *offsetp += 4;
10677 field32(tvb, offsetp, t, hf_x11_struct_sync_TRIGGER_wait_type, byte_order);
10678 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
10679 field32(tvb, offsetp, t, hf_x11_struct_sync_TRIGGER_test_type, byte_order);
10680 }
10681}
10682
10683static void struct_sync_WAITCONDITION(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10684{
10685 int i;
10686 for (i = 0; i < count; i++) {
10687 proto_item *item;
10688 proto_tree *t;
10689
10690 item = proto_tree_add_item(root, hf_x11_struct_sync_WAITCONDITION, tvb, *offsetp, 28, ENC_NA);
10691 t = proto_item_add_subtree(item, ett_x11_rectangle);
10692 struct_sync_TRIGGER(tvb, offsetp, t, byte_order, 1);
10693 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
10694 }
10695}
10696
10697static void struct_present_Notify(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
10698{
10699 int i;
10700 for (i = 0; i < count; i++) {
10701 proto_item *item;
10702 proto_tree *t;
10703
10704 item = proto_tree_add_item(root, hf_x11_struct_present_Notify, tvb, *offsetp, 8, ENC_NA);
10705 t = proto_item_add_subtree(item, ett_x11_rectangle);
10706 proto_tree_add_item(t, hf_x11_struct_present_Notify_window, tvb, *offsetp, 4, byte_order);
10707 *offsetp += 4;
10708 proto_tree_add_item(t, hf_x11_struct_present_Notify_serial, tvb, *offsetp, 4, byte_order);
10709 *offsetp += 4;
10710 }
10711}
10712
10713static void presentQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
10714{
10715 proto_tree_add_item(t, hf_x11_present_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
10716 *offsetp += 4;
10717 proto_tree_add_item(t, hf_x11_present_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
10718 *offsetp += 4;
10719}
10720static void presentQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
10721{
10722 int sequence_number;
10723
10724 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
10725
10726 REPLY(reply);
10727 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10728 *offsetp += 1;
10729 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
10730 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10731 "%d (present-QueryVersion)", sequence_number);
10732 *offsetp += 2;
10733 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10734 *offsetp += 4;
10735 proto_tree_add_item(t, hf_x11_present_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
10736 *offsetp += 4;
10737 proto_tree_add_item(t, hf_x11_present_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
10738 *offsetp += 4;
10739}
10740
10741static void presentPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
10742{
10743 proto_tree_add_item(t, hf_x11_present_Pixmap_window, tvb, *offsetp, 4, byte_order);
10744 *offsetp += 4;
10745 proto_tree_add_item(t, hf_x11_present_Pixmap_pixmap, tvb, *offsetp, 4, byte_order);
10746 *offsetp += 4;
10747 proto_tree_add_item(t, hf_x11_present_Pixmap_serial, tvb, *offsetp, 4, byte_order);
10748 *offsetp += 4;
10749 proto_tree_add_item(t, hf_x11_present_Pixmap_valid, tvb, *offsetp, 4, byte_order);
10750 *offsetp += 4;
10751 proto_tree_add_item(t, hf_x11_present_Pixmap_update, tvb, *offsetp, 4, byte_order);
10752 *offsetp += 4;
10753 proto_tree_add_item(t, hf_x11_present_Pixmap_x_off, tvb, *offsetp, 2, byte_order);
10754 *offsetp += 2;
10755 proto_tree_add_item(t, hf_x11_present_Pixmap_y_off, tvb, *offsetp, 2, byte_order);
10756 *offsetp += 2;
10757 proto_tree_add_item(t, hf_x11_present_Pixmap_target_crtc, tvb, *offsetp, 4, byte_order);
10758 *offsetp += 4;
10759 proto_tree_add_item(t, hf_x11_present_Pixmap_wait_fence, tvb, *offsetp, 4, byte_order);
10760 *offsetp += 4;
10761 proto_tree_add_item(t, hf_x11_present_Pixmap_idle_fence, tvb, *offsetp, 4, byte_order);
10762 *offsetp += 4;
10763 proto_tree_add_item(t, hf_x11_present_Pixmap_options, tvb, *offsetp, 4, byte_order);
10764 *offsetp += 4;
10765 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
10766 *offsetp += 4;
10767 proto_tree_add_item(t, hf_x11_present_Pixmap_target_msc, tvb, *offsetp, 8, byte_order);
10768 *offsetp += 8;
10769 proto_tree_add_item(t, hf_x11_present_Pixmap_divisor, tvb, *offsetp, 8, byte_order);
10770 *offsetp += 8;
10771 proto_tree_add_item(t, hf_x11_present_Pixmap_remainder, tvb, *offsetp, 8, byte_order);
10772 *offsetp += 8;
10773 struct_present_Notify(tvb, offsetp, t, byte_order, (length - 72) / 8);
10774}
10775
10776static void presentNotifyMSC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
10777{
10778 proto_tree_add_item(t, hf_x11_present_NotifyMSC_window, tvb, *offsetp, 4, byte_order);
10779 *offsetp += 4;
10780 proto_tree_add_item(t, hf_x11_present_NotifyMSC_serial, tvb, *offsetp, 4, byte_order);
10781 *offsetp += 4;
10782 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
10783 *offsetp += 4;
10784 proto_tree_add_item(t, hf_x11_present_NotifyMSC_target_msc, tvb, *offsetp, 8, byte_order);
10785 *offsetp += 8;
10786 proto_tree_add_item(t, hf_x11_present_NotifyMSC_divisor, tvb, *offsetp, 8, byte_order);
10787 *offsetp += 8;
10788 proto_tree_add_item(t, hf_x11_present_NotifyMSC_remainder, tvb, *offsetp, 8, byte_order);
10789 *offsetp += 8;
10790}
10791
10792static void presentSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
10793{
10794 proto_tree_add_item(t, hf_x11_present_SelectInput_eid, tvb, *offsetp, 4, byte_order);
10795 *offsetp += 4;
10796 proto_tree_add_item(t, hf_x11_present_SelectInput_window, tvb, *offsetp, 4, byte_order);
10797 *offsetp += 4;
10798 {
10799 static int* const event_mask_bits [] = {
10800 &hf_x11_present_SelectInput_event_mask_mask_ConfigureNotify,
10801 &hf_x11_present_SelectInput_event_mask_mask_CompleteNotify,
10802 &hf_x11_present_SelectInput_event_mask_mask_IdleNotify,
10803 &hf_x11_present_SelectInput_event_mask_mask_RedirectNotify,
10804 NULL
10805 };
10806 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_present_SelectInput_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
10807 }
10808 *offsetp += 4;
10809}
10810
10811static void presentQueryCapabilities(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
10812{
10813 proto_tree_add_item(t, hf_x11_present_QueryCapabilities_target, tvb, *offsetp, 4, byte_order);
10814 *offsetp += 4;
10815}
10816static void presentQueryCapabilities_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
10817{
10818 int sequence_number;
10819
10820 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryCapabilities");
10821
10822 REPLY(reply);
10823 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10824 *offsetp += 1;
10825 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
10826 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
10827 "%d (present-QueryCapabilities)", sequence_number);
10828 *offsetp += 2;
10829 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
10830 *offsetp += 4;
10831 proto_tree_add_item(t, hf_x11_present_QueryCapabilities_reply_capabilities, tvb, *offsetp, 4, byte_order);
10832 *offsetp += 4;
10833}
10834
10835static void presentPixmapSynced(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
10836{
10837 proto_tree_add_item(t, hf_x11_present_PixmapSynced_window, tvb, *offsetp, 4, byte_order);
10838 *offsetp += 4;
10839 proto_tree_add_item(t, hf_x11_present_PixmapSynced_pixmap, tvb, *offsetp, 4, byte_order);
10840 *offsetp += 4;
10841 proto_tree_add_item(t, hf_x11_present_PixmapSynced_serial, tvb, *offsetp, 4, byte_order);
10842 *offsetp += 4;
10843 proto_tree_add_item(t, hf_x11_present_PixmapSynced_valid, tvb, *offsetp, 4, byte_order);
10844 *offsetp += 4;
10845 proto_tree_add_item(t, hf_x11_present_PixmapSynced_update, tvb, *offsetp, 4, byte_order);
10846 *offsetp += 4;
10847 proto_tree_add_item(t, hf_x11_present_PixmapSynced_x_off, tvb, *offsetp, 2, byte_order);
10848 *offsetp += 2;
10849 proto_tree_add_item(t, hf_x11_present_PixmapSynced_y_off, tvb, *offsetp, 2, byte_order);
10850 *offsetp += 2;
10851 proto_tree_add_item(t, hf_x11_present_PixmapSynced_target_crtc, tvb, *offsetp, 4, byte_order);
10852 *offsetp += 4;
10853 proto_tree_add_item(t, hf_x11_present_PixmapSynced_acquire_syncobj, tvb, *offsetp, 4, byte_order);
10854 *offsetp += 4;
10855 proto_tree_add_item(t, hf_x11_present_PixmapSynced_release_syncobj, tvb, *offsetp, 4, byte_order);
10856 *offsetp += 4;
10857 proto_tree_add_item(t, hf_x11_present_PixmapSynced_acquire_point, tvb, *offsetp, 8, byte_order);
10858 *offsetp += 8;
10859 proto_tree_add_item(t, hf_x11_present_PixmapSynced_release_point, tvb, *offsetp, 8, byte_order);
10860 *offsetp += 8;
10861 proto_tree_add_item(t, hf_x11_present_PixmapSynced_options, tvb, *offsetp, 4, byte_order);
10862 *offsetp += 4;
10863 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
10864 *offsetp += 4;
10865 proto_tree_add_item(t, hf_x11_present_PixmapSynced_target_msc, tvb, *offsetp, 8, byte_order);
10866 *offsetp += 8;
10867 proto_tree_add_item(t, hf_x11_present_PixmapSynced_divisor, tvb, *offsetp, 8, byte_order);
10868 *offsetp += 8;
10869 proto_tree_add_item(t, hf_x11_present_PixmapSynced_remainder, tvb, *offsetp, 8, byte_order);
10870 *offsetp += 8;
10871 struct_present_Notify(tvb, offsetp, t, byte_order, (length - 88) / 8);
10872}
10873
10874static void presentCompleteNotify(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
10875{
10876 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 1,
10877 "CompleteNotify (1)");
10878 field8(tvb, offsetp, t, hf_x11_present_CompleteNotify_kind, byte_order);
10879 field8(tvb, offsetp, t, hf_x11_present_CompleteNotify_mode, byte_order);
10880 proto_tree_add_item(t, hf_x11_present_CompleteNotify_event, tvb, *offsetp, 4, byte_order);
10881 *offsetp += 4;
10882 proto_tree_add_item(t, hf_x11_present_CompleteNotify_window, tvb, *offsetp, 4, byte_order);
10883 *offsetp += 4;
10884 proto_tree_add_item(t, hf_x11_present_CompleteNotify_serial, tvb, *offsetp, 4, byte_order);
10885 *offsetp += 4;
10886 proto_tree_add_item(t, hf_x11_present_CompleteNotify_ust, tvb, *offsetp, 8, byte_order);
10887 *offsetp += 8;
10888 proto_tree_add_item(t, hf_x11_present_CompleteNotify_msc, tvb, *offsetp, 8, byte_order);
10889 *offsetp += 8;
10890}
10891
10892
10893static void presentIdleNotify(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
10894{
10895 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 2,
10896 "IdleNotify (2)");
10897 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
10898 *offsetp += 2;
10899 proto_tree_add_item(t, hf_x11_present_IdleNotify_event, tvb, *offsetp, 4, byte_order);
10900 *offsetp += 4;
10901 proto_tree_add_item(t, hf_x11_present_IdleNotify_window, tvb, *offsetp, 4, byte_order);
10902 *offsetp += 4;
10903 proto_tree_add_item(t, hf_x11_present_IdleNotify_serial, tvb, *offsetp, 4, byte_order);
10904 *offsetp += 4;
10905 proto_tree_add_item(t, hf_x11_present_IdleNotify_pixmap, tvb, *offsetp, 4, byte_order);
10906 *offsetp += 4;
10907 proto_tree_add_item(t, hf_x11_present_IdleNotify_idle_fence, tvb, *offsetp, 4, byte_order);
10908 *offsetp += 4;
10909}
10910
10911
10912static void presentRedirectNotify(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
10913{
10914 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 3,
10915 "RedirectNotify (3)");
10916 proto_tree_add_item(t, hf_x11_present_RedirectNotify_update_window, tvb, *offsetp, 1, byte_order);
10917 *offsetp += 1;
10918 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
10919 *offsetp += 1;
10920 proto_tree_add_item(t, hf_x11_present_RedirectNotify_event, tvb, *offsetp, 4, byte_order);
10921 *offsetp += 4;
10922 proto_tree_add_item(t, hf_x11_present_RedirectNotify_event_window, tvb, *offsetp, 4, byte_order);
10923 *offsetp += 4;
10924 proto_tree_add_item(t, hf_x11_present_RedirectNotify_window, tvb, *offsetp, 4, byte_order);
10925 *offsetp += 4;
10926 proto_tree_add_item(t, hf_x11_present_RedirectNotify_pixmap, tvb, *offsetp, 4, byte_order);
10927 *offsetp += 4;
10928 proto_tree_add_item(t, hf_x11_present_RedirectNotify_serial, tvb, *offsetp, 4, byte_order);
10929 *offsetp += 4;
10930 proto_tree_add_item(t, hf_x11_present_RedirectNotify_valid_region, tvb, *offsetp, 4, byte_order);
10931 *offsetp += 4;
10932 proto_tree_add_item(t, hf_x11_present_RedirectNotify_update_region, tvb, *offsetp, 4, byte_order);
10933 *offsetp += 4;
10934 struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, 1);
10935 struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, 1);
10936 proto_tree_add_item(t, hf_x11_present_RedirectNotify_x_off, tvb, *offsetp, 2, byte_order);
10937 *offsetp += 2;
10938 proto_tree_add_item(t, hf_x11_present_RedirectNotify_y_off, tvb, *offsetp, 2, byte_order);
10939 *offsetp += 2;
10940 proto_tree_add_item(t, hf_x11_present_RedirectNotify_target_crtc, tvb, *offsetp, 4, byte_order);
10941 *offsetp += 4;
10942 proto_tree_add_item(t, hf_x11_present_RedirectNotify_wait_fence, tvb, *offsetp, 4, byte_order);
10943 *offsetp += 4;
10944 proto_tree_add_item(t, hf_x11_present_RedirectNotify_idle_fence, tvb, *offsetp, 4, byte_order);
10945 *offsetp += 4;
10946 proto_tree_add_item(t, hf_x11_present_RedirectNotify_options, tvb, *offsetp, 4, byte_order);
10947 *offsetp += 4;
10948 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
10949 *offsetp += 4;
10950 proto_tree_add_item(t, hf_x11_present_RedirectNotify_target_msc, tvb, *offsetp, 8, byte_order);
10951 *offsetp += 8;
10952 proto_tree_add_item(t, hf_x11_present_RedirectNotify_divisor, tvb, *offsetp, 8, byte_order);
10953 *offsetp += 8;
10954 proto_tree_add_item(t, hf_x11_present_RedirectNotify_remainder, tvb, *offsetp, 8, byte_order);
10955 *offsetp += 8;
10956 struct_present_Notify(tvb, offsetp, t, byte_order, (length - 104) / 8);
10957}
10958
10959static const value_string present_extension_minor[] = {
10960 { 0, "QueryVersion" },
10961 { 1, "Pixmap" },
10962 { 2, "NotifyMSC" },
10963 { 3, "SelectInput" },
10964 { 4, "QueryCapabilities" },
10965 { 5, "PixmapSynced" },
10966 { 0, NULL }
10967};
10968static const x11_event_info present_events[] = {
10969 { NULL, NULL }
10970};
10971static const x11_generic_event_info present_generic_events[] = {
10972 { 1, presentCompleteNotify },
10973 { 2, presentIdleNotify },
10974 { 3, presentRedirectNotify },
10975 { 0, NULL },
10976};
10977
10978static const x11_reply_info present_replies[] = {
10979 { 0, presentQueryVersion_Reply },
10980 { 4, presentQueryCapabilities_Reply },
10981 { 0, NULL }
10982};
10983
10984static void dispatch_present(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
10985{
10986 int minor, length;
10987 minor = CARD8(present_extension_minor);
10988 length = REQUEST_LENGTH();
10989
10990 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
10991 val_to_str(minor, present_extension_minor,
10992 "<Unknown opcode %d>"));
10993 switch (minor) {
10994 case 0:
10995 presentQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
10996 break;
10997 case 1:
10998 presentPixmap(tvb, pinfo, offsetp, t, byte_order, length);
10999 break;
11000 case 2:
11001 presentNotifyMSC(tvb, pinfo, offsetp, t, byte_order, length);
11002 break;
11003 case 3:
11004 presentSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
11005 break;
11006 case 4:
11007 presentQueryCapabilities(tvb, pinfo, offsetp, t, byte_order, length);
11008 break;
11009 case 5:
11010 presentPixmapSynced(tvb, pinfo, offsetp, t, byte_order, length);
11011 break;
11012 /* No need for a default case here, since Unknown is printed above,
11013 and UNDECODED() is taken care of by dissect_x11_request */
11014 }
11015}
11016
11017static void register_present(void)
11018{
11019 set_handler("Present", dispatch_present, present_errors, present_events, present_generic_events, present_replies);
11020}
11021
11022static void randrQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11023{
11024 proto_tree_add_item(t, hf_x11_randr_QueryVersion_major_version, tvb, *offsetp, 4, byte_order);
11025 *offsetp += 4;
11026 proto_tree_add_item(t, hf_x11_randr_QueryVersion_minor_version, tvb, *offsetp, 4, byte_order);
11027 *offsetp += 4;
11028}
11029static void randrQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11030{
11031 int sequence_number;
11032
11033 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
11034
11035 REPLY(reply);
11036 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11037 *offsetp += 1;
11038 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11039 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11040 "%d (randr-QueryVersion)", sequence_number);
11041 *offsetp += 2;
11042 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11043 *offsetp += 4;
11044 proto_tree_add_item(t, hf_x11_randr_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
11045 *offsetp += 4;
11046 proto_tree_add_item(t, hf_x11_randr_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
11047 *offsetp += 4;
11048 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
11049 *offsetp += 16;
11050}
11051
11052static void randrSetScreenConfig(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11053{
11054 proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_window, tvb, *offsetp, 4, byte_order);
11055 *offsetp += 4;
11056 proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_timestamp, tvb, *offsetp, 4, byte_order);
11057 *offsetp += 4;
11058 proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_config_timestamp, tvb, *offsetp, 4, byte_order);
11059 *offsetp += 4;
11060 proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_sizeID, tvb, *offsetp, 2, byte_order);
11061 *offsetp += 2;
11062 {
11063 static int* const rotation_bits [] = {
11064 &hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_0,
11065 &hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_90,
11066 &hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_180,
11067 &hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_270,
11068 &hf_x11_randr_SetScreenConfig_rotation_mask_Reflect_X,
11069 &hf_x11_randr_SetScreenConfig_rotation_mask_Reflect_Y,
11070 NULL
11071 };
11072 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_SetScreenConfig_rotation, ett_x11_rectangle, rotation_bits, byte_order);
11073 }
11074 *offsetp += 2;
11075 proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_rate, tvb, *offsetp, 2, byte_order);
11076 *offsetp += 2;
11077 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11078 *offsetp += 2;
11079}
11080static void randrSetScreenConfig_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11081{
11082 int sequence_number;
11083
11084 col_append_fstr(pinfo->cinfo, COL_INFO, "-SetScreenConfig");
11085
11086 REPLY(reply);
11087 field8(tvb, offsetp, t, hf_x11_randr_SetScreenConfig_reply_status, byte_order);
11088 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11089 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11090 "%d (randr-SetScreenConfig)", sequence_number);
11091 *offsetp += 2;
11092 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11093 *offsetp += 4;
11094 proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_reply_new_timestamp, tvb, *offsetp, 4, byte_order);
11095 *offsetp += 4;
11096 proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_reply_config_timestamp, tvb, *offsetp, 4, byte_order);
11097 *offsetp += 4;
11098 proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_reply_root, tvb, *offsetp, 4, byte_order);
11099 *offsetp += 4;
11100 field16(tvb, offsetp, t, hf_x11_randr_SetScreenConfig_reply_subpixel_order, byte_order);
11101 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
11102 *offsetp += 10;
11103}
11104
11105static void randrSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11106{
11107 proto_tree_add_item(t, hf_x11_randr_SelectInput_window, tvb, *offsetp, 4, byte_order);
11108 *offsetp += 4;
11109 {
11110 static int* const enable_bits [] = {
11111 &hf_x11_randr_SelectInput_enable_mask_ScreenChange,
11112 &hf_x11_randr_SelectInput_enable_mask_CrtcChange,
11113 &hf_x11_randr_SelectInput_enable_mask_OutputChange,
11114 &hf_x11_randr_SelectInput_enable_mask_OutputProperty,
11115 &hf_x11_randr_SelectInput_enable_mask_ProviderChange,
11116 &hf_x11_randr_SelectInput_enable_mask_ProviderProperty,
11117 &hf_x11_randr_SelectInput_enable_mask_ResourceChange,
11118 &hf_x11_randr_SelectInput_enable_mask_Lease,
11119 NULL
11120 };
11121 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_SelectInput_enable, ett_x11_rectangle, enable_bits, byte_order);
11122 }
11123 *offsetp += 2;
11124 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11125 *offsetp += 2;
11126}
11127
11128static void randrGetScreenInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11129{
11130 proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_window, tvb, *offsetp, 4, byte_order);
11131 *offsetp += 4;
11132}
11133static void randrGetScreenInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11134{
11135 int sequence_number;
11136 int f_nSizes;
11137 int f_nInfo;
11138
11139 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenInfo");
11140
11141 REPLY(reply);
11142 {
11143 static int* const rotations_bits [] = {
11144 &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_0,
11145 &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_90,
11146 &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_180,
11147 &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_270,
11148 &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Reflect_X,
11149 &hf_x11_randr_GetScreenInfo_reply_rotations_mask_Reflect_Y,
11150 NULL
11151 };
11152 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetScreenInfo_reply_rotations, ett_x11_rectangle, rotations_bits, byte_order);
11153 }
11154 *offsetp += 1;
11155 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11156 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11157 "%d (randr-GetScreenInfo)", sequence_number);
11158 *offsetp += 2;
11159 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11160 *offsetp += 4;
11161 proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_root, tvb, *offsetp, 4, byte_order);
11162 *offsetp += 4;
11163 proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_timestamp, tvb, *offsetp, 4, byte_order);
11164 *offsetp += 4;
11165 proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_config_timestamp, tvb, *offsetp, 4, byte_order);
11166 *offsetp += 4;
11167 f_nSizes = tvb_get_uint16(tvb, *offsetp, byte_order);
11168 proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_nSizes, tvb, *offsetp, 2, byte_order);
11169 *offsetp += 2;
11170 proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_sizeID, tvb, *offsetp, 2, byte_order);
11171 *offsetp += 2;
11172 {
11173 static int* const rotation_bits [] = {
11174 &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_0,
11175 &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_90,
11176 &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_180,
11177 &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_270,
11178 &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Reflect_X,
11179 &hf_x11_randr_GetScreenInfo_reply_rotation_mask_Reflect_Y,
11180 NULL
11181 };
11182 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetScreenInfo_reply_rotation, ett_x11_rectangle, rotation_bits, byte_order);
11183 }
11184 *offsetp += 2;
11185 proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_rate, tvb, *offsetp, 2, byte_order);
11186 *offsetp += 2;
11187 f_nInfo = tvb_get_uint16(tvb, *offsetp, byte_order);
11188 proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_nInfo, tvb, *offsetp, 2, byte_order);
11189 *offsetp += 2;
11190 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11191 *offsetp += 2;
11192 struct_randr_ScreenSize(tvb, offsetp, t, byte_order, f_nSizes);
11193 struct_randr_RefreshRates(tvb, offsetp, t, byte_order, (f_nInfo - f_nSizes));
11194}
11195
11196static void randrGetScreenSizeRange(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11197{
11198 proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_window, tvb, *offsetp, 4, byte_order);
11199 *offsetp += 4;
11200}
11201static void randrGetScreenSizeRange_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11202{
11203 int sequence_number;
11204
11205 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenSizeRange");
11206
11207 REPLY(reply);
11208 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11209 *offsetp += 1;
11210 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11211 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11212 "%d (randr-GetScreenSizeRange)", sequence_number);
11213 *offsetp += 2;
11214 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11215 *offsetp += 4;
11216 proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_min_width, tvb, *offsetp, 2, byte_order);
11217 *offsetp += 2;
11218 proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_min_height, tvb, *offsetp, 2, byte_order);
11219 *offsetp += 2;
11220 proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_max_width, tvb, *offsetp, 2, byte_order);
11221 *offsetp += 2;
11222 proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_max_height, tvb, *offsetp, 2, byte_order);
11223 *offsetp += 2;
11224 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
11225 *offsetp += 16;
11226}
11227
11228static void randrSetScreenSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11229{
11230 proto_tree_add_item(t, hf_x11_randr_SetScreenSize_window, tvb, *offsetp, 4, byte_order);
11231 *offsetp += 4;
11232 proto_tree_add_item(t, hf_x11_randr_SetScreenSize_width, tvb, *offsetp, 2, byte_order);
11233 *offsetp += 2;
11234 proto_tree_add_item(t, hf_x11_randr_SetScreenSize_height, tvb, *offsetp, 2, byte_order);
11235 *offsetp += 2;
11236 proto_tree_add_item(t, hf_x11_randr_SetScreenSize_mm_width, tvb, *offsetp, 4, byte_order);
11237 *offsetp += 4;
11238 proto_tree_add_item(t, hf_x11_randr_SetScreenSize_mm_height, tvb, *offsetp, 4, byte_order);
11239 *offsetp += 4;
11240}
11241
11242static void randrGetScreenResources(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11243{
11244 proto_tree_add_item(t, hf_x11_randr_GetScreenResources_window, tvb, *offsetp, 4, byte_order);
11245 *offsetp += 4;
11246}
11247static void randrGetScreenResources_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11248{
11249 int sequence_number;
11250 int f_num_crtcs;
11251 int f_num_outputs;
11252 int f_num_modes;
11253 int f_names_len;
11254
11255 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenResources");
11256
11257 REPLY(reply);
11258 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11259 *offsetp += 1;
11260 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11261 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11262 "%d (randr-GetScreenResources)", sequence_number);
11263 *offsetp += 2;
11264 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11265 *offsetp += 4;
11266 proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_timestamp, tvb, *offsetp, 4, byte_order);
11267 *offsetp += 4;
11268 proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_config_timestamp, tvb, *offsetp, 4, byte_order);
11269 *offsetp += 4;
11270 f_num_crtcs = tvb_get_uint16(tvb, *offsetp, byte_order);
11271 proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_num_crtcs, tvb, *offsetp, 2, byte_order);
11272 *offsetp += 2;
11273 f_num_outputs = tvb_get_uint16(tvb, *offsetp, byte_order);
11274 proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_num_outputs, tvb, *offsetp, 2, byte_order);
11275 *offsetp += 2;
11276 f_num_modes = tvb_get_uint16(tvb, *offsetp, byte_order);
11277 proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_num_modes, tvb, *offsetp, 2, byte_order);
11278 *offsetp += 2;
11279 f_names_len = tvb_get_uint16(tvb, *offsetp, byte_order);
11280 proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_names_len, tvb, *offsetp, 2, byte_order);
11281 *offsetp += 2;
11282 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
11283 *offsetp += 8;
11284 listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResources_reply_crtcs, hf_x11_randr_GetScreenResources_reply_crtcs_item, f_num_crtcs, byte_order);
11285 listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResources_reply_outputs, hf_x11_randr_GetScreenResources_reply_outputs_item, f_num_outputs, byte_order);
11286 struct_randr_ModeInfo(tvb, offsetp, t, byte_order, f_num_modes);
11287 listOfByte(tvb, offsetp, t, hf_x11_randr_GetScreenResources_reply_names, f_names_len, byte_order);
11288}
11289
11290static void randrGetOutputInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11291{
11292 proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_output, tvb, *offsetp, 4, byte_order);
11293 *offsetp += 4;
11294 proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_config_timestamp, tvb, *offsetp, 4, byte_order);
11295 *offsetp += 4;
11296}
11297static void randrGetOutputInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11298{
11299 int sequence_number;
11300 int f_num_crtcs;
11301 int f_num_modes;
11302 int f_num_clones;
11303 int f_name_len;
11304
11305 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOutputInfo");
11306
11307 REPLY(reply);
11308 field8(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_status, byte_order);
11309 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11310 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11311 "%d (randr-GetOutputInfo)", sequence_number);
11312 *offsetp += 2;
11313 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11314 *offsetp += 4;
11315 proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_timestamp, tvb, *offsetp, 4, byte_order);
11316 *offsetp += 4;
11317 proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_crtc, tvb, *offsetp, 4, byte_order);
11318 *offsetp += 4;
11319 proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_mm_width, tvb, *offsetp, 4, byte_order);
11320 *offsetp += 4;
11321 proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_mm_height, tvb, *offsetp, 4, byte_order);
11322 *offsetp += 4;
11323 field8(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_connection, byte_order);
11324 field8(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_subpixel_order, byte_order);
11325 f_num_crtcs = tvb_get_uint16(tvb, *offsetp, byte_order);
11326 proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_crtcs, tvb, *offsetp, 2, byte_order);
11327 *offsetp += 2;
11328 f_num_modes = tvb_get_uint16(tvb, *offsetp, byte_order);
11329 proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_modes, tvb, *offsetp, 2, byte_order);
11330 *offsetp += 2;
11331 proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_preferred, tvb, *offsetp, 2, byte_order);
11332 *offsetp += 2;
11333 f_num_clones = tvb_get_uint16(tvb, *offsetp, byte_order);
11334 proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_clones, tvb, *offsetp, 2, byte_order);
11335 *offsetp += 2;
11336 f_name_len = tvb_get_uint16(tvb, *offsetp, byte_order);
11337 proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_name_len, tvb, *offsetp, 2, byte_order);
11338 *offsetp += 2;
11339 listOfCard32(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_crtcs, hf_x11_randr_GetOutputInfo_reply_crtcs_item, f_num_crtcs, byte_order);
11340 listOfCard32(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_modes, hf_x11_randr_GetOutputInfo_reply_modes_item, f_num_modes, byte_order);
11341 listOfCard32(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_clones, hf_x11_randr_GetOutputInfo_reply_clones_item, f_num_clones, byte_order);
11342 listOfByte(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_name, f_name_len, byte_order);
11343}
11344
11345static void randrListOutputProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11346{
11347 proto_tree_add_item(t, hf_x11_randr_ListOutputProperties_output, tvb, *offsetp, 4, byte_order);
11348 *offsetp += 4;
11349}
11350static void randrListOutputProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11351{
11352 int sequence_number;
11353 int f_num_atoms;
11354
11355 col_append_fstr(pinfo->cinfo, COL_INFO, "-ListOutputProperties");
11356
11357 REPLY(reply);
11358 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11359 *offsetp += 1;
11360 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11361 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11362 "%d (randr-ListOutputProperties)", sequence_number);
11363 *offsetp += 2;
11364 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11365 *offsetp += 4;
11366 f_num_atoms = tvb_get_uint16(tvb, *offsetp, byte_order);
11367 proto_tree_add_item(t, hf_x11_randr_ListOutputProperties_reply_num_atoms, tvb, *offsetp, 2, byte_order);
11368 *offsetp += 2;
11369 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
11370 *offsetp += 22;
11371 listOfCard32(tvb, offsetp, t, hf_x11_randr_ListOutputProperties_reply_atoms, hf_x11_randr_ListOutputProperties_reply_atoms_item, f_num_atoms, byte_order);
11372}
11373
11374static void randrQueryOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11375{
11376 proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_output, tvb, *offsetp, 4, byte_order);
11377 *offsetp += 4;
11378 proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_property, tvb, *offsetp, 4, byte_order);
11379 *offsetp += 4;
11380}
11381static void randrQueryOutputProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11382{
11383 int sequence_number;
11384 int f_length;
11385
11386 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryOutputProperty");
11387
11388 REPLY(reply);
11389 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11390 *offsetp += 1;
11391 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11392 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11393 "%d (randr-QueryOutputProperty)", sequence_number);
11394 *offsetp += 2;
11395 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
11396 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11397 *offsetp += 4;
11398 proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_reply_pending, tvb, *offsetp, 1, byte_order);
11399 *offsetp += 1;
11400 proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_reply_range, tvb, *offsetp, 1, byte_order);
11401 *offsetp += 1;
11402 proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_reply_immutable, tvb, *offsetp, 1, byte_order);
11403 *offsetp += 1;
11404 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 21, ENC_NA);
11405 *offsetp += 21;
11406 listOfInt32(tvb, offsetp, t, hf_x11_randr_QueryOutputProperty_reply_validValues, hf_x11_randr_QueryOutputProperty_reply_validValues_item, f_length, byte_order);
11407}
11408
11409static void randrConfigureOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11410{
11411 proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_output, tvb, *offsetp, 4, byte_order);
11412 *offsetp += 4;
11413 proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_property, tvb, *offsetp, 4, byte_order);
11414 *offsetp += 4;
11415 proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_pending, tvb, *offsetp, 1, byte_order);
11416 *offsetp += 1;
11417 proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_range, tvb, *offsetp, 1, byte_order);
11418 *offsetp += 1;
11419 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11420 *offsetp += 2;
11421 listOfInt32(tvb, offsetp, t, hf_x11_randr_ConfigureOutputProperty_values, hf_x11_randr_ConfigureOutputProperty_values_item, (length - 16) / 4, byte_order);
11422}
11423
11424static void randrChangeOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11425{
11426 int f_format;
11427 int f_num_units;
11428 proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_output, tvb, *offsetp, 4, byte_order);
11429 *offsetp += 4;
11430 proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_property, tvb, *offsetp, 4, byte_order);
11431 *offsetp += 4;
11432 proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_type, tvb, *offsetp, 4, byte_order);
11433 *offsetp += 4;
11434 f_format = tvb_get_uint8(tvb, *offsetp);
11435 proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_format, tvb, *offsetp, 1, byte_order);
11436 *offsetp += 1;
11437 field8(tvb, offsetp, t, hf_x11_randr_ChangeOutputProperty_mode, byte_order);
11438 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11439 *offsetp += 2;
11440 f_num_units = tvb_get_uint32(tvb, *offsetp, byte_order);
11441 proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_num_units, tvb, *offsetp, 4, byte_order);
11442 *offsetp += 4;
11443 listOfByte(tvb, offsetp, t, hf_x11_randr_ChangeOutputProperty_data, ((f_num_units * f_format) / 8), byte_order);
11444 length -= ((f_num_units * f_format) / 8) * 1;
11445}
11446
11447static void randrDeleteOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11448{
11449 proto_tree_add_item(t, hf_x11_randr_DeleteOutputProperty_output, tvb, *offsetp, 4, byte_order);
11450 *offsetp += 4;
11451 proto_tree_add_item(t, hf_x11_randr_DeleteOutputProperty_property, tvb, *offsetp, 4, byte_order);
11452 *offsetp += 4;
11453}
11454
11455static void randrGetOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11456{
11457 proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_output, tvb, *offsetp, 4, byte_order);
11458 *offsetp += 4;
11459 proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_property, tvb, *offsetp, 4, byte_order);
11460 *offsetp += 4;
11461 field32(tvb, offsetp, t, hf_x11_randr_GetOutputProperty_type, byte_order);
11462 proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_long_offset, tvb, *offsetp, 4, byte_order);
11463 *offsetp += 4;
11464 proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_long_length, tvb, *offsetp, 4, byte_order);
11465 *offsetp += 4;
11466 proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_delete, tvb, *offsetp, 1, byte_order);
11467 *offsetp += 1;
11468 proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_pending, tvb, *offsetp, 1, byte_order);
11469 *offsetp += 1;
11470 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11471 *offsetp += 2;
11472}
11473static void randrGetOutputProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11474{
11475 int sequence_number;
11476 int f_format;
11477 int f_num_items;
11478
11479 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOutputProperty");
11480
11481 REPLY(reply);
11482 f_format = tvb_get_uint8(tvb, *offsetp);
11483 proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_reply_format, tvb, *offsetp, 1, byte_order);
11484 *offsetp += 1;
11485 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11486 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11487 "%d (randr-GetOutputProperty)", sequence_number);
11488 *offsetp += 2;
11489 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11490 *offsetp += 4;
11491 field32(tvb, offsetp, t, hf_x11_randr_GetOutputProperty_reply_type, byte_order);
11492 proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_reply_bytes_after, tvb, *offsetp, 4, byte_order);
11493 *offsetp += 4;
11494 f_num_items = tvb_get_uint32(tvb, *offsetp, byte_order);
11495 proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_reply_num_items, tvb, *offsetp, 4, byte_order);
11496 *offsetp += 4;
11497 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
11498 *offsetp += 12;
11499 listOfByte(tvb, offsetp, t, hf_x11_randr_GetOutputProperty_reply_data, (f_num_items * (f_format / 8)), byte_order);
11500}
11501
11502static void randrCreateMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11503{
11504 proto_tree_add_item(t, hf_x11_randr_CreateMode_window, tvb, *offsetp, 4, byte_order);
11505 *offsetp += 4;
11506 struct_randr_ModeInfo(tvb, offsetp, t, byte_order, 1);
11507 listOfByte(tvb, offsetp, t, hf_x11_randr_CreateMode_name, (length - 40) / 1, byte_order);
11508}
11509static void randrCreateMode_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11510{
11511 int sequence_number;
11512
11513 col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateMode");
11514
11515 REPLY(reply);
11516 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11517 *offsetp += 1;
11518 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11519 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11520 "%d (randr-CreateMode)", sequence_number);
11521 *offsetp += 2;
11522 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11523 *offsetp += 4;
11524 proto_tree_add_item(t, hf_x11_randr_CreateMode_reply_mode, tvb, *offsetp, 4, byte_order);
11525 *offsetp += 4;
11526 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
11527 *offsetp += 20;
11528}
11529
11530static void randrDestroyMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11531{
11532 proto_tree_add_item(t, hf_x11_randr_DestroyMode_mode, tvb, *offsetp, 4, byte_order);
11533 *offsetp += 4;
11534}
11535
11536static void randrAddOutputMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11537{
11538 proto_tree_add_item(t, hf_x11_randr_AddOutputMode_output, tvb, *offsetp, 4, byte_order);
11539 *offsetp += 4;
11540 proto_tree_add_item(t, hf_x11_randr_AddOutputMode_mode, tvb, *offsetp, 4, byte_order);
11541 *offsetp += 4;
11542}
11543
11544static void randrDeleteOutputMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11545{
11546 proto_tree_add_item(t, hf_x11_randr_DeleteOutputMode_output, tvb, *offsetp, 4, byte_order);
11547 *offsetp += 4;
11548 proto_tree_add_item(t, hf_x11_randr_DeleteOutputMode_mode, tvb, *offsetp, 4, byte_order);
11549 *offsetp += 4;
11550}
11551
11552static void randrGetCrtcInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11553{
11554 proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_crtc, tvb, *offsetp, 4, byte_order);
11555 *offsetp += 4;
11556 proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_config_timestamp, tvb, *offsetp, 4, byte_order);
11557 *offsetp += 4;
11558}
11559static void randrGetCrtcInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11560{
11561 int sequence_number;
11562 int f_num_outputs;
11563 int f_num_possible_outputs;
11564
11565 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcInfo");
11566
11567 REPLY(reply);
11568 field8(tvb, offsetp, t, hf_x11_randr_GetCrtcInfo_reply_status, byte_order);
11569 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11570 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11571 "%d (randr-GetCrtcInfo)", sequence_number);
11572 *offsetp += 2;
11573 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11574 *offsetp += 4;
11575 proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_timestamp, tvb, *offsetp, 4, byte_order);
11576 *offsetp += 4;
11577 proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_x, tvb, *offsetp, 2, byte_order);
11578 *offsetp += 2;
11579 proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_y, tvb, *offsetp, 2, byte_order);
11580 *offsetp += 2;
11581 proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_width, tvb, *offsetp, 2, byte_order);
11582 *offsetp += 2;
11583 proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_height, tvb, *offsetp, 2, byte_order);
11584 *offsetp += 2;
11585 proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_mode, tvb, *offsetp, 4, byte_order);
11586 *offsetp += 4;
11587 {
11588 static int* const rotation_bits [] = {
11589 &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_0,
11590 &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_90,
11591 &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_180,
11592 &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_270,
11593 &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Reflect_X,
11594 &hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Reflect_Y,
11595 NULL
11596 };
11597 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetCrtcInfo_reply_rotation, ett_x11_rectangle, rotation_bits, byte_order);
11598 }
11599 *offsetp += 2;
11600 {
11601 static int* const rotations_bits [] = {
11602 &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_0,
11603 &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_90,
11604 &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_180,
11605 &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_270,
11606 &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Reflect_X,
11607 &hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Reflect_Y,
11608 NULL
11609 };
11610 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetCrtcInfo_reply_rotations, ett_x11_rectangle, rotations_bits, byte_order);
11611 }
11612 *offsetp += 2;
11613 f_num_outputs = tvb_get_uint16(tvb, *offsetp, byte_order);
11614 proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_num_outputs, tvb, *offsetp, 2, byte_order);
11615 *offsetp += 2;
11616 f_num_possible_outputs = tvb_get_uint16(tvb, *offsetp, byte_order);
11617 proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_num_possible_outputs, tvb, *offsetp, 2, byte_order);
11618 *offsetp += 2;
11619 listOfCard32(tvb, offsetp, t, hf_x11_randr_GetCrtcInfo_reply_outputs, hf_x11_randr_GetCrtcInfo_reply_outputs_item, f_num_outputs, byte_order);
11620 listOfCard32(tvb, offsetp, t, hf_x11_randr_GetCrtcInfo_reply_possible, hf_x11_randr_GetCrtcInfo_reply_possible_item, f_num_possible_outputs, byte_order);
11621}
11622
11623static void randrSetCrtcConfig(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11624{
11625 proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_crtc, tvb, *offsetp, 4, byte_order);
11626 *offsetp += 4;
11627 proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_timestamp, tvb, *offsetp, 4, byte_order);
11628 *offsetp += 4;
11629 proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_config_timestamp, tvb, *offsetp, 4, byte_order);
11630 *offsetp += 4;
11631 proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_x, tvb, *offsetp, 2, byte_order);
11632 *offsetp += 2;
11633 proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_y, tvb, *offsetp, 2, byte_order);
11634 *offsetp += 2;
11635 proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_mode, tvb, *offsetp, 4, byte_order);
11636 *offsetp += 4;
11637 {
11638 static int* const rotation_bits [] = {
11639 &hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_0,
11640 &hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_90,
11641 &hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_180,
11642 &hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_270,
11643 &hf_x11_randr_SetCrtcConfig_rotation_mask_Reflect_X,
11644 &hf_x11_randr_SetCrtcConfig_rotation_mask_Reflect_Y,
11645 NULL
11646 };
11647 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_SetCrtcConfig_rotation, ett_x11_rectangle, rotation_bits, byte_order);
11648 }
11649 *offsetp += 2;
11650 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11651 *offsetp += 2;
11652 listOfCard32(tvb, offsetp, t, hf_x11_randr_SetCrtcConfig_outputs, hf_x11_randr_SetCrtcConfig_outputs_item, (length - 28) / 4, byte_order);
11653}
11654static void randrSetCrtcConfig_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11655{
11656 int sequence_number;
11657
11658 col_append_fstr(pinfo->cinfo, COL_INFO, "-SetCrtcConfig");
11659
11660 REPLY(reply);
11661 field8(tvb, offsetp, t, hf_x11_randr_SetCrtcConfig_reply_status, byte_order);
11662 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11663 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11664 "%d (randr-SetCrtcConfig)", sequence_number);
11665 *offsetp += 2;
11666 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11667 *offsetp += 4;
11668 proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_reply_timestamp, tvb, *offsetp, 4, byte_order);
11669 *offsetp += 4;
11670 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
11671 *offsetp += 20;
11672}
11673
11674static void randrGetCrtcGammaSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11675{
11676 proto_tree_add_item(t, hf_x11_randr_GetCrtcGammaSize_crtc, tvb, *offsetp, 4, byte_order);
11677 *offsetp += 4;
11678}
11679static void randrGetCrtcGammaSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11680{
11681 int sequence_number;
11682
11683 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcGammaSize");
11684
11685 REPLY(reply);
11686 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11687 *offsetp += 1;
11688 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11689 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11690 "%d (randr-GetCrtcGammaSize)", sequence_number);
11691 *offsetp += 2;
11692 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11693 *offsetp += 4;
11694 proto_tree_add_item(t, hf_x11_randr_GetCrtcGammaSize_reply_size, tvb, *offsetp, 2, byte_order);
11695 *offsetp += 2;
11696 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
11697 *offsetp += 22;
11698}
11699
11700static void randrGetCrtcGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11701{
11702 proto_tree_add_item(t, hf_x11_randr_GetCrtcGamma_crtc, tvb, *offsetp, 4, byte_order);
11703 *offsetp += 4;
11704}
11705static void randrGetCrtcGamma_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11706{
11707 int sequence_number;
11708 int f_size;
11709
11710 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcGamma");
11711
11712 REPLY(reply);
11713 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11714 *offsetp += 1;
11715 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11716 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11717 "%d (randr-GetCrtcGamma)", sequence_number);
11718 *offsetp += 2;
11719 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11720 *offsetp += 4;
11721 f_size = tvb_get_uint16(tvb, *offsetp, byte_order);
11722 proto_tree_add_item(t, hf_x11_randr_GetCrtcGamma_reply_size, tvb, *offsetp, 2, byte_order);
11723 *offsetp += 2;
11724 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
11725 *offsetp += 22;
11726 listOfCard16(tvb, offsetp, t, hf_x11_randr_GetCrtcGamma_reply_red, hf_x11_randr_GetCrtcGamma_reply_red_item, f_size, byte_order);
11727 listOfCard16(tvb, offsetp, t, hf_x11_randr_GetCrtcGamma_reply_green, hf_x11_randr_GetCrtcGamma_reply_green_item, f_size, byte_order);
11728 listOfCard16(tvb, offsetp, t, hf_x11_randr_GetCrtcGamma_reply_blue, hf_x11_randr_GetCrtcGamma_reply_blue_item, f_size, byte_order);
11729}
11730
11731static void randrSetCrtcGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11732{
11733 int f_size;
11734 proto_tree_add_item(t, hf_x11_randr_SetCrtcGamma_crtc, tvb, *offsetp, 4, byte_order);
11735 *offsetp += 4;
11736 f_size = tvb_get_uint16(tvb, *offsetp, byte_order);
11737 proto_tree_add_item(t, hf_x11_randr_SetCrtcGamma_size, tvb, *offsetp, 2, byte_order);
11738 *offsetp += 2;
11739 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11740 *offsetp += 2;
11741 listOfCard16(tvb, offsetp, t, hf_x11_randr_SetCrtcGamma_red, hf_x11_randr_SetCrtcGamma_red_item, f_size, byte_order);
11742 length -= f_size * 2;
11743 listOfCard16(tvb, offsetp, t, hf_x11_randr_SetCrtcGamma_green, hf_x11_randr_SetCrtcGamma_green_item, f_size, byte_order);
11744 length -= f_size * 2;
11745 listOfCard16(tvb, offsetp, t, hf_x11_randr_SetCrtcGamma_blue, hf_x11_randr_SetCrtcGamma_blue_item, f_size, byte_order);
11746 length -= f_size * 2;
11747}
11748
11749static void randrGetScreenResourcesCurrent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11750{
11751 proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_window, tvb, *offsetp, 4, byte_order);
11752 *offsetp += 4;
11753}
11754static void randrGetScreenResourcesCurrent_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11755{
11756 int sequence_number;
11757 int f_num_crtcs;
11758 int f_num_outputs;
11759 int f_num_modes;
11760 int f_names_len;
11761
11762 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenResourcesCurrent");
11763
11764 REPLY(reply);
11765 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11766 *offsetp += 1;
11767 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11768 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11769 "%d (randr-GetScreenResourcesCurrent)", sequence_number);
11770 *offsetp += 2;
11771 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11772 *offsetp += 4;
11773 proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_timestamp, tvb, *offsetp, 4, byte_order);
11774 *offsetp += 4;
11775 proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_config_timestamp, tvb, *offsetp, 4, byte_order);
11776 *offsetp += 4;
11777 f_num_crtcs = tvb_get_uint16(tvb, *offsetp, byte_order);
11778 proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_num_crtcs, tvb, *offsetp, 2, byte_order);
11779 *offsetp += 2;
11780 f_num_outputs = tvb_get_uint16(tvb, *offsetp, byte_order);
11781 proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_num_outputs, tvb, *offsetp, 2, byte_order);
11782 *offsetp += 2;
11783 f_num_modes = tvb_get_uint16(tvb, *offsetp, byte_order);
11784 proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_num_modes, tvb, *offsetp, 2, byte_order);
11785 *offsetp += 2;
11786 f_names_len = tvb_get_uint16(tvb, *offsetp, byte_order);
11787 proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_names_len, tvb, *offsetp, 2, byte_order);
11788 *offsetp += 2;
11789 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
11790 *offsetp += 8;
11791 listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResourcesCurrent_reply_crtcs, hf_x11_randr_GetScreenResourcesCurrent_reply_crtcs_item, f_num_crtcs, byte_order);
11792 listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResourcesCurrent_reply_outputs, hf_x11_randr_GetScreenResourcesCurrent_reply_outputs_item, f_num_outputs, byte_order);
11793 struct_randr_ModeInfo(tvb, offsetp, t, byte_order, f_num_modes);
11794 listOfByte(tvb, offsetp, t, hf_x11_randr_GetScreenResourcesCurrent_reply_names, f_names_len, byte_order);
11795}
11796
11797static void randrSetCrtcTransform(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11798{
11799 int f_filter_len;
11800 proto_tree_add_item(t, hf_x11_randr_SetCrtcTransform_crtc, tvb, *offsetp, 4, byte_order);
11801 *offsetp += 4;
11802 struct_render_TRANSFORM(tvb, offsetp, t, byte_order, 1);
11803 f_filter_len = tvb_get_uint16(tvb, *offsetp, byte_order);
11804 proto_tree_add_item(t, hf_x11_randr_SetCrtcTransform_filter_len, tvb, *offsetp, 2, byte_order);
11805 *offsetp += 2;
11806 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
11807 *offsetp += 2;
11808 listOfByte(tvb, offsetp, t, hf_x11_randr_SetCrtcTransform_filter_name, f_filter_len, byte_order);
11809 length -= f_filter_len * 1;
11810 pad_to_4_bytes(tvb, offsetp, t);
11811 length = WS_ROUNDUP_4(length);
11812 listOfInt32(tvb, offsetp, t, hf_x11_randr_SetCrtcTransform_filter_params, hf_x11_randr_SetCrtcTransform_filter_params_item, (length - 48) / 4, byte_order);
11813}
11814
11815static void randrGetCrtcTransform(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11816{
11817 proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_crtc, tvb, *offsetp, 4, byte_order);
11818 *offsetp += 4;
11819}
11820static void randrGetCrtcTransform_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11821{
11822 int sequence_number;
11823 int f_pending_len;
11824 int f_pending_nparams;
11825 int f_current_len;
11826 int f_current_nparams;
11827
11828 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcTransform");
11829
11830 REPLY(reply);
11831 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11832 *offsetp += 1;
11833 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11834 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11835 "%d (randr-GetCrtcTransform)", sequence_number);
11836 *offsetp += 2;
11837 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11838 *offsetp += 4;
11839 struct_render_TRANSFORM(tvb, offsetp, t, byte_order, 1);
11840 proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_has_transforms, tvb, *offsetp, 1, byte_order);
11841 *offsetp += 1;
11842 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
11843 *offsetp += 3;
11844 struct_render_TRANSFORM(tvb, offsetp, t, byte_order, 1);
11845 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
11846 *offsetp += 4;
11847 f_pending_len = tvb_get_uint16(tvb, *offsetp, byte_order);
11848 proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_pending_len, tvb, *offsetp, 2, byte_order);
11849 *offsetp += 2;
11850 f_pending_nparams = tvb_get_uint16(tvb, *offsetp, byte_order);
11851 proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_pending_nparams, tvb, *offsetp, 2, byte_order);
11852 *offsetp += 2;
11853 f_current_len = tvb_get_uint16(tvb, *offsetp, byte_order);
11854 proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_current_len, tvb, *offsetp, 2, byte_order);
11855 *offsetp += 2;
11856 f_current_nparams = tvb_get_uint16(tvb, *offsetp, byte_order);
11857 proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_current_nparams, tvb, *offsetp, 2, byte_order);
11858 *offsetp += 2;
11859 listOfByte(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_pending_filter_name, f_pending_len, byte_order);
11860 pad_to_4_bytes(tvb, offsetp, t);
11861 listOfInt32(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_pending_params, hf_x11_randr_GetCrtcTransform_reply_pending_params_item, f_pending_nparams, byte_order);
11862 listOfByte(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_current_filter_name, f_current_len, byte_order);
11863 pad_to_4_bytes(tvb, offsetp, t);
11864 listOfInt32(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_current_params, hf_x11_randr_GetCrtcTransform_reply_current_params_item, f_current_nparams, byte_order);
11865}
11866
11867static void randrGetPanning(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11868{
11869 proto_tree_add_item(t, hf_x11_randr_GetPanning_crtc, tvb, *offsetp, 4, byte_order);
11870 *offsetp += 4;
11871}
11872static void randrGetPanning_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11873{
11874 int sequence_number;
11875
11876 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPanning");
11877
11878 REPLY(reply);
11879 field8(tvb, offsetp, t, hf_x11_randr_GetPanning_reply_status, byte_order);
11880 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11881 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11882 "%d (randr-GetPanning)", sequence_number);
11883 *offsetp += 2;
11884 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11885 *offsetp += 4;
11886 proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_timestamp, tvb, *offsetp, 4, byte_order);
11887 *offsetp += 4;
11888 proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_left, tvb, *offsetp, 2, byte_order);
11889 *offsetp += 2;
11890 proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_top, tvb, *offsetp, 2, byte_order);
11891 *offsetp += 2;
11892 proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_width, tvb, *offsetp, 2, byte_order);
11893 *offsetp += 2;
11894 proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_height, tvb, *offsetp, 2, byte_order);
11895 *offsetp += 2;
11896 proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_left, tvb, *offsetp, 2, byte_order);
11897 *offsetp += 2;
11898 proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_top, tvb, *offsetp, 2, byte_order);
11899 *offsetp += 2;
11900 proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_width, tvb, *offsetp, 2, byte_order);
11901 *offsetp += 2;
11902 proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_height, tvb, *offsetp, 2, byte_order);
11903 *offsetp += 2;
11904 proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_left, tvb, *offsetp, 2, byte_order);
11905 *offsetp += 2;
11906 proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_top, tvb, *offsetp, 2, byte_order);
11907 *offsetp += 2;
11908 proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_right, tvb, *offsetp, 2, byte_order);
11909 *offsetp += 2;
11910 proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_bottom, tvb, *offsetp, 2, byte_order);
11911 *offsetp += 2;
11912}
11913
11914static void randrSetPanning(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11915{
11916 proto_tree_add_item(t, hf_x11_randr_SetPanning_crtc, tvb, *offsetp, 4, byte_order);
11917 *offsetp += 4;
11918 proto_tree_add_item(t, hf_x11_randr_SetPanning_timestamp, tvb, *offsetp, 4, byte_order);
11919 *offsetp += 4;
11920 proto_tree_add_item(t, hf_x11_randr_SetPanning_left, tvb, *offsetp, 2, byte_order);
11921 *offsetp += 2;
11922 proto_tree_add_item(t, hf_x11_randr_SetPanning_top, tvb, *offsetp, 2, byte_order);
11923 *offsetp += 2;
11924 proto_tree_add_item(t, hf_x11_randr_SetPanning_width, tvb, *offsetp, 2, byte_order);
11925 *offsetp += 2;
11926 proto_tree_add_item(t, hf_x11_randr_SetPanning_height, tvb, *offsetp, 2, byte_order);
11927 *offsetp += 2;
11928 proto_tree_add_item(t, hf_x11_randr_SetPanning_track_left, tvb, *offsetp, 2, byte_order);
11929 *offsetp += 2;
11930 proto_tree_add_item(t, hf_x11_randr_SetPanning_track_top, tvb, *offsetp, 2, byte_order);
11931 *offsetp += 2;
11932 proto_tree_add_item(t, hf_x11_randr_SetPanning_track_width, tvb, *offsetp, 2, byte_order);
11933 *offsetp += 2;
11934 proto_tree_add_item(t, hf_x11_randr_SetPanning_track_height, tvb, *offsetp, 2, byte_order);
11935 *offsetp += 2;
11936 proto_tree_add_item(t, hf_x11_randr_SetPanning_border_left, tvb, *offsetp, 2, byte_order);
11937 *offsetp += 2;
11938 proto_tree_add_item(t, hf_x11_randr_SetPanning_border_top, tvb, *offsetp, 2, byte_order);
11939 *offsetp += 2;
11940 proto_tree_add_item(t, hf_x11_randr_SetPanning_border_right, tvb, *offsetp, 2, byte_order);
11941 *offsetp += 2;
11942 proto_tree_add_item(t, hf_x11_randr_SetPanning_border_bottom, tvb, *offsetp, 2, byte_order);
11943 *offsetp += 2;
11944}
11945static void randrSetPanning_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11946{
11947 int sequence_number;
11948
11949 col_append_fstr(pinfo->cinfo, COL_INFO, "-SetPanning");
11950
11951 REPLY(reply);
11952 field8(tvb, offsetp, t, hf_x11_randr_SetPanning_reply_status, byte_order);
11953 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11954 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11955 "%d (randr-SetPanning)", sequence_number);
11956 *offsetp += 2;
11957 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11958 *offsetp += 4;
11959 proto_tree_add_item(t, hf_x11_randr_SetPanning_reply_timestamp, tvb, *offsetp, 4, byte_order);
11960 *offsetp += 4;
11961}
11962
11963static void randrSetOutputPrimary(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11964{
11965 proto_tree_add_item(t, hf_x11_randr_SetOutputPrimary_window, tvb, *offsetp, 4, byte_order);
11966 *offsetp += 4;
11967 proto_tree_add_item(t, hf_x11_randr_SetOutputPrimary_output, tvb, *offsetp, 4, byte_order);
11968 *offsetp += 4;
11969}
11970
11971static void randrGetOutputPrimary(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11972{
11973 proto_tree_add_item(t, hf_x11_randr_GetOutputPrimary_window, tvb, *offsetp, 4, byte_order);
11974 *offsetp += 4;
11975}
11976static void randrGetOutputPrimary_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
11977{
11978 int sequence_number;
11979
11980 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOutputPrimary");
11981
11982 REPLY(reply);
11983 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
11984 *offsetp += 1;
11985 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
11986 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
11987 "%d (randr-GetOutputPrimary)", sequence_number);
11988 *offsetp += 2;
11989 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
11990 *offsetp += 4;
11991 proto_tree_add_item(t, hf_x11_randr_GetOutputPrimary_reply_output, tvb, *offsetp, 4, byte_order);
11992 *offsetp += 4;
11993}
11994
11995static void randrGetProviders(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
11996{
11997 proto_tree_add_item(t, hf_x11_randr_GetProviders_window, tvb, *offsetp, 4, byte_order);
11998 *offsetp += 4;
11999}
12000static void randrGetProviders_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12001{
12002 int sequence_number;
12003 int f_num_providers;
12004
12005 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetProviders");
12006
12007 REPLY(reply);
12008 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12009 *offsetp += 1;
12010 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
12011 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12012 "%d (randr-GetProviders)", sequence_number);
12013 *offsetp += 2;
12014 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12015 *offsetp += 4;
12016 proto_tree_add_item(t, hf_x11_randr_GetProviders_reply_timestamp, tvb, *offsetp, 4, byte_order);
12017 *offsetp += 4;
12018 f_num_providers = tvb_get_uint16(tvb, *offsetp, byte_order);
12019 proto_tree_add_item(t, hf_x11_randr_GetProviders_reply_num_providers, tvb, *offsetp, 2, byte_order);
12020 *offsetp += 2;
12021 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
12022 *offsetp += 18;
12023 listOfCard32(tvb, offsetp, t, hf_x11_randr_GetProviders_reply_providers, hf_x11_randr_GetProviders_reply_providers_item, f_num_providers, byte_order);
12024}
12025
12026static void randrGetProviderInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12027{
12028 proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_provider, tvb, *offsetp, 4, byte_order);
12029 *offsetp += 4;
12030 proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_config_timestamp, tvb, *offsetp, 4, byte_order);
12031 *offsetp += 4;
12032}
12033static void randrGetProviderInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12034{
12035 int sequence_number;
12036 int f_num_crtcs;
12037 int f_num_outputs;
12038 int f_num_associated_providers;
12039 int f_name_len;
12040
12041 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetProviderInfo");
12042
12043 REPLY(reply);
12044 proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_status, tvb, *offsetp, 1, byte_order);
12045 *offsetp += 1;
12046 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
12047 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12048 "%d (randr-GetProviderInfo)", sequence_number);
12049 *offsetp += 2;
12050 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12051 *offsetp += 4;
12052 proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_timestamp, tvb, *offsetp, 4, byte_order);
12053 *offsetp += 4;
12054 {
12055 static int* const capabilities_bits [] = {
12056 &hf_x11_randr_GetProviderInfo_reply_capabilities_mask_SourceOutput,
12057 &hf_x11_randr_GetProviderInfo_reply_capabilities_mask_SinkOutput,
12058 &hf_x11_randr_GetProviderInfo_reply_capabilities_mask_SourceOffload,
12059 &hf_x11_randr_GetProviderInfo_reply_capabilities_mask_SinkOffload,
12060 NULL
12061 };
12062 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_randr_GetProviderInfo_reply_capabilities, ett_x11_rectangle, capabilities_bits, byte_order);
12063 }
12064 *offsetp += 4;
12065 f_num_crtcs = tvb_get_uint16(tvb, *offsetp, byte_order);
12066 proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_num_crtcs, tvb, *offsetp, 2, byte_order);
12067 *offsetp += 2;
12068 f_num_outputs = tvb_get_uint16(tvb, *offsetp, byte_order);
12069 proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_num_outputs, tvb, *offsetp, 2, byte_order);
12070 *offsetp += 2;
12071 f_num_associated_providers = tvb_get_uint16(tvb, *offsetp, byte_order);
12072 proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_num_associated_providers, tvb, *offsetp, 2, byte_order);
12073 *offsetp += 2;
12074 f_name_len = tvb_get_uint16(tvb, *offsetp, byte_order);
12075 proto_tree_add_item(t, hf_x11_randr_GetProviderInfo_reply_name_len, tvb, *offsetp, 2, byte_order);
12076 *offsetp += 2;
12077 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
12078 *offsetp += 8;
12079 listOfCard32(tvb, offsetp, t, hf_x11_randr_GetProviderInfo_reply_crtcs, hf_x11_randr_GetProviderInfo_reply_crtcs_item, f_num_crtcs, byte_order);
12080 listOfCard32(tvb, offsetp, t, hf_x11_randr_GetProviderInfo_reply_outputs, hf_x11_randr_GetProviderInfo_reply_outputs_item, f_num_outputs, byte_order);
12081 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);
12082 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);
12083 listOfByte(tvb, offsetp, t, hf_x11_randr_GetProviderInfo_reply_name, f_name_len, byte_order);
12084}
12085
12086static void randrSetProviderOffloadSink(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12087{
12088 proto_tree_add_item(t, hf_x11_randr_SetProviderOffloadSink_provider, tvb, *offsetp, 4, byte_order);
12089 *offsetp += 4;
12090 proto_tree_add_item(t, hf_x11_randr_SetProviderOffloadSink_sink_provider, tvb, *offsetp, 4, byte_order);
12091 *offsetp += 4;
12092 proto_tree_add_item(t, hf_x11_randr_SetProviderOffloadSink_config_timestamp, tvb, *offsetp, 4, byte_order);
12093 *offsetp += 4;
12094}
12095
12096static void randrSetProviderOutputSource(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12097{
12098 proto_tree_add_item(t, hf_x11_randr_SetProviderOutputSource_provider, tvb, *offsetp, 4, byte_order);
12099 *offsetp += 4;
12100 proto_tree_add_item(t, hf_x11_randr_SetProviderOutputSource_source_provider, tvb, *offsetp, 4, byte_order);
12101 *offsetp += 4;
12102 proto_tree_add_item(t, hf_x11_randr_SetProviderOutputSource_config_timestamp, tvb, *offsetp, 4, byte_order);
12103 *offsetp += 4;
12104}
12105
12106static void randrListProviderProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12107{
12108 proto_tree_add_item(t, hf_x11_randr_ListProviderProperties_provider, tvb, *offsetp, 4, byte_order);
12109 *offsetp += 4;
12110}
12111static void randrListProviderProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12112{
12113 int sequence_number;
12114 int f_num_atoms;
12115
12116 col_append_fstr(pinfo->cinfo, COL_INFO, "-ListProviderProperties");
12117
12118 REPLY(reply);
12119 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12120 *offsetp += 1;
12121 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
12122 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12123 "%d (randr-ListProviderProperties)", sequence_number);
12124 *offsetp += 2;
12125 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12126 *offsetp += 4;
12127 f_num_atoms = tvb_get_uint16(tvb, *offsetp, byte_order);
12128 proto_tree_add_item(t, hf_x11_randr_ListProviderProperties_reply_num_atoms, tvb, *offsetp, 2, byte_order);
12129 *offsetp += 2;
12130 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
12131 *offsetp += 22;
12132 listOfCard32(tvb, offsetp, t, hf_x11_randr_ListProviderProperties_reply_atoms, hf_x11_randr_ListProviderProperties_reply_atoms_item, f_num_atoms, byte_order);
12133}
12134
12135static void randrQueryProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12136{
12137 proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_provider, tvb, *offsetp, 4, byte_order);
12138 *offsetp += 4;
12139 proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_property, tvb, *offsetp, 4, byte_order);
12140 *offsetp += 4;
12141}
12142static void randrQueryProviderProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12143{
12144 int sequence_number;
12145 int f_length;
12146
12147 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryProviderProperty");
12148
12149 REPLY(reply);
12150 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12151 *offsetp += 1;
12152 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
12153 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12154 "%d (randr-QueryProviderProperty)", sequence_number);
12155 *offsetp += 2;
12156 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
12157 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12158 *offsetp += 4;
12159 proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_reply_pending, tvb, *offsetp, 1, byte_order);
12160 *offsetp += 1;
12161 proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_reply_range, tvb, *offsetp, 1, byte_order);
12162 *offsetp += 1;
12163 proto_tree_add_item(t, hf_x11_randr_QueryProviderProperty_reply_immutable, tvb, *offsetp, 1, byte_order);
12164 *offsetp += 1;
12165 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 21, ENC_NA);
12166 *offsetp += 21;
12167 listOfInt32(tvb, offsetp, t, hf_x11_randr_QueryProviderProperty_reply_valid_values, hf_x11_randr_QueryProviderProperty_reply_valid_values_item, f_length, byte_order);
12168}
12169
12170static void randrConfigureProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12171{
12172 proto_tree_add_item(t, hf_x11_randr_ConfigureProviderProperty_provider, tvb, *offsetp, 4, byte_order);
12173 *offsetp += 4;
12174 proto_tree_add_item(t, hf_x11_randr_ConfigureProviderProperty_property, tvb, *offsetp, 4, byte_order);
12175 *offsetp += 4;
12176 proto_tree_add_item(t, hf_x11_randr_ConfigureProviderProperty_pending, tvb, *offsetp, 1, byte_order);
12177 *offsetp += 1;
12178 proto_tree_add_item(t, hf_x11_randr_ConfigureProviderProperty_range, tvb, *offsetp, 1, byte_order);
12179 *offsetp += 1;
12180 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
12181 *offsetp += 2;
12182 listOfInt32(tvb, offsetp, t, hf_x11_randr_ConfigureProviderProperty_values, hf_x11_randr_ConfigureProviderProperty_values_item, (length - 16) / 4, byte_order);
12183}
12184
12185static void randrChangeProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12186{
12187 int f_format;
12188 int f_num_items;
12189 proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_provider, tvb, *offsetp, 4, byte_order);
12190 *offsetp += 4;
12191 proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_property, tvb, *offsetp, 4, byte_order);
12192 *offsetp += 4;
12193 proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_type, tvb, *offsetp, 4, byte_order);
12194 *offsetp += 4;
12195 f_format = tvb_get_uint8(tvb, *offsetp);
12196 proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_format, tvb, *offsetp, 1, byte_order);
12197 *offsetp += 1;
12198 proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_mode, tvb, *offsetp, 1, byte_order);
12199 *offsetp += 1;
12200 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
12201 *offsetp += 2;
12202 f_num_items = tvb_get_uint32(tvb, *offsetp, byte_order);
12203 proto_tree_add_item(t, hf_x11_randr_ChangeProviderProperty_num_items, tvb, *offsetp, 4, byte_order);
12204 *offsetp += 4;
12205 listOfByte(tvb, offsetp, t, hf_x11_randr_ChangeProviderProperty_data, (f_num_items * (f_format / 8)), byte_order);
12206 length -= (f_num_items * (f_format / 8)) * 1;
12207}
12208
12209static void randrDeleteProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12210{
12211 proto_tree_add_item(t, hf_x11_randr_DeleteProviderProperty_provider, tvb, *offsetp, 4, byte_order);
12212 *offsetp += 4;
12213 proto_tree_add_item(t, hf_x11_randr_DeleteProviderProperty_property, tvb, *offsetp, 4, byte_order);
12214 *offsetp += 4;
12215}
12216
12217static void randrGetProviderProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12218{
12219 proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_provider, tvb, *offsetp, 4, byte_order);
12220 *offsetp += 4;
12221 proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_property, tvb, *offsetp, 4, byte_order);
12222 *offsetp += 4;
12223 proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_type, tvb, *offsetp, 4, byte_order);
12224 *offsetp += 4;
12225 proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_long_offset, tvb, *offsetp, 4, byte_order);
12226 *offsetp += 4;
12227 proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_long_length, tvb, *offsetp, 4, byte_order);
12228 *offsetp += 4;
12229 proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_delete, tvb, *offsetp, 1, byte_order);
12230 *offsetp += 1;
12231 proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_pending, tvb, *offsetp, 1, byte_order);
12232 *offsetp += 1;
12233 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
12234 *offsetp += 2;
12235}
12236static void randrGetProviderProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12237{
12238 int sequence_number;
12239 int f_format;
12240 int f_num_items;
12241
12242 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetProviderProperty");
12243
12244 REPLY(reply);
12245 f_format = tvb_get_uint8(tvb, *offsetp);
12246 proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_reply_format, tvb, *offsetp, 1, byte_order);
12247 *offsetp += 1;
12248 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
12249 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12250 "%d (randr-GetProviderProperty)", sequence_number);
12251 *offsetp += 2;
12252 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12253 *offsetp += 4;
12254 proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_reply_type, tvb, *offsetp, 4, byte_order);
12255 *offsetp += 4;
12256 proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_reply_bytes_after, tvb, *offsetp, 4, byte_order);
12257 *offsetp += 4;
12258 f_num_items = tvb_get_uint32(tvb, *offsetp, byte_order);
12259 proto_tree_add_item(t, hf_x11_randr_GetProviderProperty_reply_num_items, tvb, *offsetp, 4, byte_order);
12260 *offsetp += 4;
12261 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
12262 *offsetp += 12;
12263 listOfByte(tvb, offsetp, t, hf_x11_randr_GetProviderProperty_reply_data, (f_num_items * (f_format / 8)), byte_order);
12264}
12265
12266static void randrGetMonitors(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12267{
12268 proto_tree_add_item(t, hf_x11_randr_GetMonitors_window, tvb, *offsetp, 4, byte_order);
12269 *offsetp += 4;
12270 proto_tree_add_item(t, hf_x11_randr_GetMonitors_get_active, tvb, *offsetp, 1, byte_order);
12271 *offsetp += 1;
12272}
12273static void randrGetMonitors_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12274{
12275 int sequence_number;
12276 int f_nMonitors;
12277
12278 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMonitors");
12279
12280 REPLY(reply);
12281 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12282 *offsetp += 1;
12283 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
12284 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12285 "%d (randr-GetMonitors)", sequence_number);
12286 *offsetp += 2;
12287 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12288 *offsetp += 4;
12289 proto_tree_add_item(t, hf_x11_randr_GetMonitors_reply_timestamp, tvb, *offsetp, 4, byte_order);
12290 *offsetp += 4;
12291 f_nMonitors = tvb_get_uint32(tvb, *offsetp, byte_order);
12292 proto_tree_add_item(t, hf_x11_randr_GetMonitors_reply_nMonitors, tvb, *offsetp, 4, byte_order);
12293 *offsetp += 4;
12294 proto_tree_add_item(t, hf_x11_randr_GetMonitors_reply_nOutputs, tvb, *offsetp, 4, byte_order);
12295 *offsetp += 4;
12296 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
12297 *offsetp += 12;
12298 struct_randr_MonitorInfo(tvb, offsetp, t, byte_order, f_nMonitors);
12299}
12300
12301static void randrSetMonitor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12302{
12303 proto_tree_add_item(t, hf_x11_randr_SetMonitor_window, tvb, *offsetp, 4, byte_order);
12304 *offsetp += 4;
12305 struct_randr_MonitorInfo(tvb, offsetp, t, byte_order, 1);
12306}
12307
12308static void randrDeleteMonitor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12309{
12310 proto_tree_add_item(t, hf_x11_randr_DeleteMonitor_window, tvb, *offsetp, 4, byte_order);
12311 *offsetp += 4;
12312 proto_tree_add_item(t, hf_x11_randr_DeleteMonitor_name, tvb, *offsetp, 4, byte_order);
12313 *offsetp += 4;
12314}
12315
12316static void randrCreateLease(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12317{
12318 int f_num_crtcs;
12319 int f_num_outputs;
12320 proto_tree_add_item(t, hf_x11_randr_CreateLease_window, tvb, *offsetp, 4, byte_order);
12321 *offsetp += 4;
12322 proto_tree_add_item(t, hf_x11_randr_CreateLease_lid, tvb, *offsetp, 4, byte_order);
12323 *offsetp += 4;
12324 f_num_crtcs = tvb_get_uint16(tvb, *offsetp, byte_order);
12325 proto_tree_add_item(t, hf_x11_randr_CreateLease_num_crtcs, tvb, *offsetp, 2, byte_order);
12326 *offsetp += 2;
12327 f_num_outputs = tvb_get_uint16(tvb, *offsetp, byte_order);
12328 proto_tree_add_item(t, hf_x11_randr_CreateLease_num_outputs, tvb, *offsetp, 2, byte_order);
12329 *offsetp += 2;
12330 listOfCard32(tvb, offsetp, t, hf_x11_randr_CreateLease_crtcs, hf_x11_randr_CreateLease_crtcs_item, f_num_crtcs, byte_order);
12331 length -= f_num_crtcs * 4;
12332 listOfCard32(tvb, offsetp, t, hf_x11_randr_CreateLease_outputs, hf_x11_randr_CreateLease_outputs_item, f_num_outputs, byte_order);
12333 length -= f_num_outputs * 4;
12334}
12335static void randrCreateLease_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12336{
12337 int sequence_number;
12338
12339 col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateLease");
12340
12341 REPLY(reply);
12342 proto_tree_add_item(t, hf_x11_randr_CreateLease_reply_nfd, tvb, *offsetp, 1, byte_order);
12343 *offsetp += 1;
12344 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
12345 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12346 "%d (randr-CreateLease)", sequence_number);
12347 *offsetp += 2;
12348 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12349 *offsetp += 4;
12350 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
12351 *offsetp += 24;
12352}
12353
12354static void randrFreeLease(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12355{
12356 proto_tree_add_item(t, hf_x11_randr_FreeLease_lid, tvb, *offsetp, 4, byte_order);
12357 *offsetp += 4;
12358 proto_tree_add_item(t, hf_x11_randr_FreeLease_terminate, tvb, *offsetp, 1, ENC_NA);
12359 *offsetp += 1;
12360}
12361
12362static void struct_randr_NotifyData(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order, int count)
12363{
12364 int i;
12365 int base = *offsetp;
12366 for (i = 0; i < count; i++) {
12367 proto_item *item;
12368 proto_tree *t;
12369 item = proto_tree_add_item(root, hf_x11_union_randr_NotifyData, tvb, base, 28, ENC_NA);
12370 t = proto_item_add_subtree(item, ett_x11_rectangle);
12371
12372 *offsetp = base;
12373 struct_randr_CrtcChange(tvb, offsetp, t, byte_order, 1);
12374 *offsetp = base;
12375 struct_randr_OutputChange(tvb, offsetp, t, byte_order, 1);
12376 *offsetp = base;
12377 struct_randr_OutputProperty(tvb, offsetp, t, byte_order, 1);
12378 *offsetp = base;
12379 struct_randr_ProviderChange(tvb, offsetp, t, byte_order, 1);
12380 *offsetp = base;
12381 struct_randr_ProviderProperty(tvb, offsetp, t, byte_order, 1);
12382 *offsetp = base;
12383 struct_randr_ResourceChange(tvb, offsetp, t, byte_order, 1);
12384 *offsetp = base;
12385 struct_randr_LeaseNotify(tvb, offsetp, t, byte_order, 1);
12386 base += 28;
12387 }
12388 *offsetp = base;
12389}
12390
12391static void randrNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
12392{
12393 field8(tvb, offsetp, t, hf_x11_randr_Notify_subCode, byte_order);
12394 CARD16(event_sequencenumber);
12395 struct_randr_NotifyData(tvb, offsetp, t, byte_order, 1);
12396}
12397
12398static const value_string randr_extension_minor[] = {
12399 { 0, "QueryVersion" },
12400 { 2, "SetScreenConfig" },
12401 { 4, "SelectInput" },
12402 { 5, "GetScreenInfo" },
12403 { 6, "GetScreenSizeRange" },
12404 { 7, "SetScreenSize" },
12405 { 8, "GetScreenResources" },
12406 { 9, "GetOutputInfo" },
12407 { 10, "ListOutputProperties" },
12408 { 11, "QueryOutputProperty" },
12409 { 12, "ConfigureOutputProperty" },
12410 { 13, "ChangeOutputProperty" },
12411 { 14, "DeleteOutputProperty" },
12412 { 15, "GetOutputProperty" },
12413 { 16, "CreateMode" },
12414 { 17, "DestroyMode" },
12415 { 18, "AddOutputMode" },
12416 { 19, "DeleteOutputMode" },
12417 { 20, "GetCrtcInfo" },
12418 { 21, "SetCrtcConfig" },
12419 { 22, "GetCrtcGammaSize" },
12420 { 23, "GetCrtcGamma" },
12421 { 24, "SetCrtcGamma" },
12422 { 25, "GetScreenResourcesCurrent" },
12423 { 26, "SetCrtcTransform" },
12424 { 27, "GetCrtcTransform" },
12425 { 28, "GetPanning" },
12426 { 29, "SetPanning" },
12427 { 30, "SetOutputPrimary" },
12428 { 31, "GetOutputPrimary" },
12429 { 32, "GetProviders" },
12430 { 33, "GetProviderInfo" },
12431 { 34, "SetProviderOffloadSink" },
12432 { 35, "SetProviderOutputSource" },
12433 { 36, "ListProviderProperties" },
12434 { 37, "QueryProviderProperty" },
12435 { 38, "ConfigureProviderProperty" },
12436 { 39, "ChangeProviderProperty" },
12437 { 40, "DeleteProviderProperty" },
12438 { 41, "GetProviderProperty" },
12439 { 42, "GetMonitors" },
12440 { 43, "SetMonitor" },
12441 { 44, "DeleteMonitor" },
12442 { 45, "CreateLease" },
12443 { 46, "FreeLease" },
12444 { 0, NULL }
12445};
12446static const x11_event_info randr_events[] = {
12447 { "randr-Notify", randrNotify },
12448 { NULL, NULL }
12449};
12450static const x11_reply_info randr_replies[] = {
12451 { 0, randrQueryVersion_Reply },
12452 { 2, randrSetScreenConfig_Reply },
12453 { 5, randrGetScreenInfo_Reply },
12454 { 6, randrGetScreenSizeRange_Reply },
12455 { 8, randrGetScreenResources_Reply },
12456 { 9, randrGetOutputInfo_Reply },
12457 { 10, randrListOutputProperties_Reply },
12458 { 11, randrQueryOutputProperty_Reply },
12459 { 15, randrGetOutputProperty_Reply },
12460 { 16, randrCreateMode_Reply },
12461 { 20, randrGetCrtcInfo_Reply },
12462 { 21, randrSetCrtcConfig_Reply },
12463 { 22, randrGetCrtcGammaSize_Reply },
12464 { 23, randrGetCrtcGamma_Reply },
12465 { 25, randrGetScreenResourcesCurrent_Reply },
12466 { 27, randrGetCrtcTransform_Reply },
12467 { 28, randrGetPanning_Reply },
12468 { 29, randrSetPanning_Reply },
12469 { 31, randrGetOutputPrimary_Reply },
12470 { 32, randrGetProviders_Reply },
12471 { 33, randrGetProviderInfo_Reply },
12472 { 36, randrListProviderProperties_Reply },
12473 { 37, randrQueryProviderProperty_Reply },
12474 { 41, randrGetProviderProperty_Reply },
12475 { 42, randrGetMonitors_Reply },
12476 { 45, randrCreateLease_Reply },
12477 { 0, NULL }
12478};
12479
12480static void dispatch_randr(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12481{
12482 int minor, length;
12483 minor = CARD8(randr_extension_minor);
12484 length = REQUEST_LENGTH();
12485
12486 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
12487 val_to_str(minor, randr_extension_minor,
12488 "<Unknown opcode %d>"));
12489 switch (minor) {
12490 case 0:
12491 randrQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
12492 break;
12493 case 2:
12494 randrSetScreenConfig(tvb, pinfo, offsetp, t, byte_order, length);
12495 break;
12496 case 4:
12497 randrSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
12498 break;
12499 case 5:
12500 randrGetScreenInfo(tvb, pinfo, offsetp, t, byte_order, length);
12501 break;
12502 case 6:
12503 randrGetScreenSizeRange(tvb, pinfo, offsetp, t, byte_order, length);
12504 break;
12505 case 7:
12506 randrSetScreenSize(tvb, pinfo, offsetp, t, byte_order, length);
12507 break;
12508 case 8:
12509 randrGetScreenResources(tvb, pinfo, offsetp, t, byte_order, length);
12510 break;
12511 case 9:
12512 randrGetOutputInfo(tvb, pinfo, offsetp, t, byte_order, length);
12513 break;
12514 case 10:
12515 randrListOutputProperties(tvb, pinfo, offsetp, t, byte_order, length);
12516 break;
12517 case 11:
12518 randrQueryOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
12519 break;
12520 case 12:
12521 randrConfigureOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
12522 break;
12523 case 13:
12524 randrChangeOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
12525 break;
12526 case 14:
12527 randrDeleteOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
12528 break;
12529 case 15:
12530 randrGetOutputProperty(tvb, pinfo, offsetp, t, byte_order, length);
12531 break;
12532 case 16:
12533 randrCreateMode(tvb, pinfo, offsetp, t, byte_order, length);
12534 break;
12535 case 17:
12536 randrDestroyMode(tvb, pinfo, offsetp, t, byte_order, length);
12537 break;
12538 case 18:
12539 randrAddOutputMode(tvb, pinfo, offsetp, t, byte_order, length);
12540 break;
12541 case 19:
12542 randrDeleteOutputMode(tvb, pinfo, offsetp, t, byte_order, length);
12543 break;
12544 case 20:
12545 randrGetCrtcInfo(tvb, pinfo, offsetp, t, byte_order, length);
12546 break;
12547 case 21:
12548 randrSetCrtcConfig(tvb, pinfo, offsetp, t, byte_order, length);
12549 break;
12550 case 22:
12551 randrGetCrtcGammaSize(tvb, pinfo, offsetp, t, byte_order, length);
12552 break;
12553 case 23:
12554 randrGetCrtcGamma(tvb, pinfo, offsetp, t, byte_order, length);
12555 break;
12556 case 24:
12557 randrSetCrtcGamma(tvb, pinfo, offsetp, t, byte_order, length);
12558 break;
12559 case 25:
12560 randrGetScreenResourcesCurrent(tvb, pinfo, offsetp, t, byte_order, length);
12561 break;
12562 case 26:
12563 randrSetCrtcTransform(tvb, pinfo, offsetp, t, byte_order, length);
12564 break;
12565 case 27:
12566 randrGetCrtcTransform(tvb, pinfo, offsetp, t, byte_order, length);
12567 break;
12568 case 28:
12569 randrGetPanning(tvb, pinfo, offsetp, t, byte_order, length);
12570 break;
12571 case 29:
12572 randrSetPanning(tvb, pinfo, offsetp, t, byte_order, length);
12573 break;
12574 case 30:
12575 randrSetOutputPrimary(tvb, pinfo, offsetp, t, byte_order, length);
12576 break;
12577 case 31:
12578 randrGetOutputPrimary(tvb, pinfo, offsetp, t, byte_order, length);
12579 break;
12580 case 32:
12581 randrGetProviders(tvb, pinfo, offsetp, t, byte_order, length);
12582 break;
12583 case 33:
12584 randrGetProviderInfo(tvb, pinfo, offsetp, t, byte_order, length);
12585 break;
12586 case 34:
12587 randrSetProviderOffloadSink(tvb, pinfo, offsetp, t, byte_order, length);
12588 break;
12589 case 35:
12590 randrSetProviderOutputSource(tvb, pinfo, offsetp, t, byte_order, length);
12591 break;
12592 case 36:
12593 randrListProviderProperties(tvb, pinfo, offsetp, t, byte_order, length);
12594 break;
12595 case 37:
12596 randrQueryProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12597 break;
12598 case 38:
12599 randrConfigureProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12600 break;
12601 case 39:
12602 randrChangeProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12603 break;
12604 case 40:
12605 randrDeleteProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12606 break;
12607 case 41:
12608 randrGetProviderProperty(tvb, pinfo, offsetp, t, byte_order, length);
12609 break;
12610 case 42:
12611 randrGetMonitors(tvb, pinfo, offsetp, t, byte_order, length);
12612 break;
12613 case 43:
12614 randrSetMonitor(tvb, pinfo, offsetp, t, byte_order, length);
12615 break;
12616 case 44:
12617 randrDeleteMonitor(tvb, pinfo, offsetp, t, byte_order, length);
12618 break;
12619 case 45:
12620 randrCreateLease(tvb, pinfo, offsetp, t, byte_order, length);
12621 break;
12622 case 46:
12623 randrFreeLease(tvb, pinfo, offsetp, t, byte_order, length);
12624 break;
12625 /* No need for a default case here, since Unknown is printed above,
12626 and UNDECODED() is taken care of by dissect_x11_request */
12627 }
12628}
12629
12630static void register_randr(void)
12631{
12632 set_handler("RANDR", dispatch_randr, randr_errors, randr_events, NULL, randr_replies);
12633}
12634
12635static void struct_record_Range8(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
12636{
12637 int i;
12638 for (i = 0; i < count; i++) {
12639 proto_item *item;
12640 proto_tree *t;
12641
12642 item = proto_tree_add_item(root, hf_x11_struct_record_Range8, tvb, *offsetp, 2, ENC_NA);
12643 t = proto_item_add_subtree(item, ett_x11_rectangle);
12644 proto_tree_add_item(t, hf_x11_struct_record_Range8_first, tvb, *offsetp, 1, byte_order);
12645 *offsetp += 1;
12646 proto_tree_add_item(t, hf_x11_struct_record_Range8_last, tvb, *offsetp, 1, byte_order);
12647 *offsetp += 1;
12648 }
12649}
12650
12651static void struct_record_Range16(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
12652{
12653 int i;
12654 for (i = 0; i < count; i++) {
12655 proto_item *item;
12656 proto_tree *t;
12657
12658 item = proto_tree_add_item(root, hf_x11_struct_record_Range16, tvb, *offsetp, 4, ENC_NA);
12659 t = proto_item_add_subtree(item, ett_x11_rectangle);
12660 proto_tree_add_item(t, hf_x11_struct_record_Range16_first, tvb, *offsetp, 2, byte_order);
12661 *offsetp += 2;
12662 proto_tree_add_item(t, hf_x11_struct_record_Range16_last, tvb, *offsetp, 2, byte_order);
12663 *offsetp += 2;
12664 }
12665}
12666
12667static void struct_record_ExtRange(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
12668{
12669 int i;
12670 for (i = 0; i < count; i++) {
12671 proto_item *item;
12672 proto_tree *t;
12673
12674 item = proto_tree_add_item(root, hf_x11_struct_record_ExtRange, tvb, *offsetp, 6, ENC_NA);
12675 t = proto_item_add_subtree(item, ett_x11_rectangle);
12676 struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12677 struct_record_Range16(tvb, offsetp, t, byte_order, 1);
12678 }
12679}
12680
12681static void struct_record_Range(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
12682{
12683 int i;
12684 for (i = 0; i < count; i++) {
12685 proto_item *item;
12686 proto_tree *t;
12687
12688 item = proto_tree_add_item(root, hf_x11_struct_record_Range, tvb, *offsetp, 24, ENC_NA);
12689 t = proto_item_add_subtree(item, ett_x11_rectangle);
12690 struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12691 struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12692 struct_record_ExtRange(tvb, offsetp, t, byte_order, 1);
12693 struct_record_ExtRange(tvb, offsetp, t, byte_order, 1);
12694 struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12695 struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12696 struct_record_Range8(tvb, offsetp, t, byte_order, 1);
12697 proto_tree_add_item(t, hf_x11_struct_record_Range_client_started, tvb, *offsetp, 1, byte_order);
12698 *offsetp += 1;
12699 proto_tree_add_item(t, hf_x11_struct_record_Range_client_died, tvb, *offsetp, 1, byte_order);
12700 *offsetp += 1;
12701 }
12702}
12703
12704static int struct_size_record_ClientInfo(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
12705{
12706 int size = 0;
12707 int f_num_ranges;
12708 f_num_ranges = tvb_get_uint32(tvb, *offsetp + size + 4, byte_order);
12709 size += f_num_ranges * 24;
12710 return size + 8;
12711}
12712
12713static void struct_record_ClientInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
12714{
12715 int i;
12716 for (i = 0; i < count; i++) {
12717 proto_item *item;
12718 proto_tree *t;
12719 int f_num_ranges;
12720
12721 item = proto_tree_add_item(root, hf_x11_struct_record_ClientInfo, tvb, *offsetp, struct_size_record_ClientInfo(tvb, offsetp, byte_order), ENC_NA);
12722 t = proto_item_add_subtree(item, ett_x11_rectangle);
12723 proto_tree_add_item(t, hf_x11_struct_record_ClientInfo_client_resource, tvb, *offsetp, 4, byte_order);
12724 *offsetp += 4;
12725 f_num_ranges = tvb_get_uint32(tvb, *offsetp, byte_order);
12726 proto_tree_add_item(t, hf_x11_struct_record_ClientInfo_num_ranges, tvb, *offsetp, 4, byte_order);
12727 *offsetp += 4;
12728 struct_record_Range(tvb, offsetp, t, byte_order, f_num_ranges);
12729 }
12730}
12731
12732static void recordQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12733{
12734 proto_tree_add_item(t, hf_x11_record_QueryVersion_major_version, tvb, *offsetp, 2, byte_order);
12735 *offsetp += 2;
12736 proto_tree_add_item(t, hf_x11_record_QueryVersion_minor_version, tvb, *offsetp, 2, byte_order);
12737 *offsetp += 2;
12738}
12739static void recordQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12740{
12741 int sequence_number;
12742
12743 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
12744
12745 REPLY(reply);
12746 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12747 *offsetp += 1;
12748 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
12749 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12750 "%d (record-QueryVersion)", sequence_number);
12751 *offsetp += 2;
12752 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12753 *offsetp += 4;
12754 proto_tree_add_item(t, hf_x11_record_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
12755 *offsetp += 2;
12756 proto_tree_add_item(t, hf_x11_record_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
12757 *offsetp += 2;
12758}
12759
12760static void recordCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12761{
12762 int f_num_client_specs;
12763 int f_num_ranges;
12764 proto_tree_add_item(t, hf_x11_record_CreateContext_context, tvb, *offsetp, 4, byte_order);
12765 *offsetp += 4;
12766 proto_tree_add_item(t, hf_x11_record_CreateContext_element_header, tvb, *offsetp, 1, byte_order);
12767 *offsetp += 1;
12768 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12769 *offsetp += 3;
12770 f_num_client_specs = tvb_get_uint32(tvb, *offsetp, byte_order);
12771 proto_tree_add_item(t, hf_x11_record_CreateContext_num_client_specs, tvb, *offsetp, 4, byte_order);
12772 *offsetp += 4;
12773 f_num_ranges = tvb_get_uint32(tvb, *offsetp, byte_order);
12774 proto_tree_add_item(t, hf_x11_record_CreateContext_num_ranges, tvb, *offsetp, 4, byte_order);
12775 *offsetp += 4;
12776 listOfCard32(tvb, offsetp, t, hf_x11_record_CreateContext_client_specs, hf_x11_record_CreateContext_client_specs_item, f_num_client_specs, byte_order);
12777 length -= f_num_client_specs * 4;
12778 struct_record_Range(tvb, offsetp, t, byte_order, f_num_ranges);
12779 length -= f_num_ranges * 24;
12780}
12781
12782static void recordRegisterClients(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12783{
12784 int f_num_client_specs;
12785 int f_num_ranges;
12786 proto_tree_add_item(t, hf_x11_record_RegisterClients_context, tvb, *offsetp, 4, byte_order);
12787 *offsetp += 4;
12788 proto_tree_add_item(t, hf_x11_record_RegisterClients_element_header, tvb, *offsetp, 1, byte_order);
12789 *offsetp += 1;
12790 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12791 *offsetp += 3;
12792 f_num_client_specs = tvb_get_uint32(tvb, *offsetp, byte_order);
12793 proto_tree_add_item(t, hf_x11_record_RegisterClients_num_client_specs, tvb, *offsetp, 4, byte_order);
12794 *offsetp += 4;
12795 f_num_ranges = tvb_get_uint32(tvb, *offsetp, byte_order);
12796 proto_tree_add_item(t, hf_x11_record_RegisterClients_num_ranges, tvb, *offsetp, 4, byte_order);
12797 *offsetp += 4;
12798 listOfCard32(tvb, offsetp, t, hf_x11_record_RegisterClients_client_specs, hf_x11_record_RegisterClients_client_specs_item, f_num_client_specs, byte_order);
12799 length -= f_num_client_specs * 4;
12800 struct_record_Range(tvb, offsetp, t, byte_order, f_num_ranges);
12801 length -= f_num_ranges * 24;
12802}
12803
12804static void recordUnregisterClients(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12805{
12806 int f_num_client_specs;
12807 proto_tree_add_item(t, hf_x11_record_UnregisterClients_context, tvb, *offsetp, 4, byte_order);
12808 *offsetp += 4;
12809 f_num_client_specs = tvb_get_uint32(tvb, *offsetp, byte_order);
12810 proto_tree_add_item(t, hf_x11_record_UnregisterClients_num_client_specs, tvb, *offsetp, 4, byte_order);
12811 *offsetp += 4;
12812 listOfCard32(tvb, offsetp, t, hf_x11_record_UnregisterClients_client_specs, hf_x11_record_UnregisterClients_client_specs_item, f_num_client_specs, byte_order);
12813 length -= f_num_client_specs * 4;
12814}
12815
12816static void recordGetContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12817{
12818 proto_tree_add_item(t, hf_x11_record_GetContext_context, tvb, *offsetp, 4, byte_order);
12819 *offsetp += 4;
12820}
12821static void recordGetContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12822{
12823 int sequence_number;
12824 int f_num_intercepted_clients;
12825
12826 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetContext");
12827
12828 REPLY(reply);
12829 proto_tree_add_item(t, hf_x11_record_GetContext_reply_enabled, tvb, *offsetp, 1, byte_order);
12830 *offsetp += 1;
12831 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
12832 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12833 "%d (record-GetContext)", sequence_number);
12834 *offsetp += 2;
12835 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12836 *offsetp += 4;
12837 proto_tree_add_item(t, hf_x11_record_GetContext_reply_element_header, tvb, *offsetp, 1, byte_order);
12838 *offsetp += 1;
12839 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
12840 *offsetp += 3;
12841 f_num_intercepted_clients = tvb_get_uint32(tvb, *offsetp, byte_order);
12842 proto_tree_add_item(t, hf_x11_record_GetContext_reply_num_intercepted_clients, tvb, *offsetp, 4, byte_order);
12843 *offsetp += 4;
12844 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
12845 *offsetp += 16;
12846 struct_record_ClientInfo(tvb, offsetp, t, byte_order, f_num_intercepted_clients);
12847}
12848
12849static void recordEnableContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12850{
12851 proto_tree_add_item(t, hf_x11_record_EnableContext_context, tvb, *offsetp, 4, byte_order);
12852 *offsetp += 4;
12853}
12854static void recordEnableContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12855{
12856 int sequence_number;
12857 int f_length;
12858
12859 col_append_fstr(pinfo->cinfo, COL_INFO, "-EnableContext");
12860
12861 REPLY(reply);
12862 proto_tree_add_item(t, hf_x11_record_EnableContext_reply_category, tvb, *offsetp, 1, byte_order);
12863 *offsetp += 1;
12864 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
12865 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12866 "%d (record-EnableContext)", sequence_number);
12867 *offsetp += 2;
12868 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
12869 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12870 *offsetp += 4;
12871 proto_tree_add_item(t, hf_x11_record_EnableContext_reply_element_header, tvb, *offsetp, 1, byte_order);
12872 *offsetp += 1;
12873 proto_tree_add_item(t, hf_x11_record_EnableContext_reply_client_swapped, tvb, *offsetp, 1, byte_order);
12874 *offsetp += 1;
12875 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
12876 *offsetp += 2;
12877 proto_tree_add_item(t, hf_x11_record_EnableContext_reply_xid_base, tvb, *offsetp, 4, byte_order);
12878 *offsetp += 4;
12879 proto_tree_add_item(t, hf_x11_record_EnableContext_reply_server_time, tvb, *offsetp, 4, byte_order);
12880 *offsetp += 4;
12881 proto_tree_add_item(t, hf_x11_record_EnableContext_reply_rec_sequence_num, tvb, *offsetp, 4, byte_order);
12882 *offsetp += 4;
12883 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
12884 *offsetp += 8;
12885 listOfByte(tvb, offsetp, t, hf_x11_record_EnableContext_reply_data, (f_length * 4), byte_order);
12886}
12887
12888static void recordDisableContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12889{
12890 proto_tree_add_item(t, hf_x11_record_DisableContext_context, tvb, *offsetp, 4, byte_order);
12891 *offsetp += 4;
12892}
12893
12894static void recordFreeContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12895{
12896 proto_tree_add_item(t, hf_x11_record_FreeContext_context, tvb, *offsetp, 4, byte_order);
12897 *offsetp += 4;
12898}
12899static const value_string record_extension_minor[] = {
12900 { 0, "QueryVersion" },
12901 { 1, "CreateContext" },
12902 { 2, "RegisterClients" },
12903 { 3, "UnregisterClients" },
12904 { 4, "GetContext" },
12905 { 5, "EnableContext" },
12906 { 6, "DisableContext" },
12907 { 7, "FreeContext" },
12908 { 0, NULL }
12909};
12910static const x11_event_info record_events[] = {
12911 { NULL, NULL }
12912};
12913static const x11_reply_info record_replies[] = {
12914 { 0, recordQueryVersion_Reply },
12915 { 4, recordGetContext_Reply },
12916 { 5, recordEnableContext_Reply },
12917 { 0, NULL }
12918};
12919
12920static void dispatch_record(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12921{
12922 int minor, length;
12923 minor = CARD8(record_extension_minor);
12924 length = REQUEST_LENGTH();
12925
12926 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
12927 val_to_str(minor, record_extension_minor,
12928 "<Unknown opcode %d>"));
12929 switch (minor) {
12930 case 0:
12931 recordQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
12932 break;
12933 case 1:
12934 recordCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
12935 break;
12936 case 2:
12937 recordRegisterClients(tvb, pinfo, offsetp, t, byte_order, length);
12938 break;
12939 case 3:
12940 recordUnregisterClients(tvb, pinfo, offsetp, t, byte_order, length);
12941 break;
12942 case 4:
12943 recordGetContext(tvb, pinfo, offsetp, t, byte_order, length);
12944 break;
12945 case 5:
12946 recordEnableContext(tvb, pinfo, offsetp, t, byte_order, length);
12947 break;
12948 case 6:
12949 recordDisableContext(tvb, pinfo, offsetp, t, byte_order, length);
12950 break;
12951 case 7:
12952 recordFreeContext(tvb, pinfo, offsetp, t, byte_order, length);
12953 break;
12954 /* No need for a default case here, since Unknown is printed above,
12955 and UNDECODED() is taken care of by dissect_x11_request */
12956 }
12957}
12958
12959static void register_record(void)
12960{
12961 set_handler("RECORD", dispatch_record, record_errors, record_events, NULL, record_replies);
12962}
12963
12964static void renderQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
12965{
12966 proto_tree_add_item(t, hf_x11_render_QueryVersion_client_major_version, tvb, *offsetp, 4, byte_order);
12967 *offsetp += 4;
12968 proto_tree_add_item(t, hf_x11_render_QueryVersion_client_minor_version, tvb, *offsetp, 4, byte_order);
12969 *offsetp += 4;
12970}
12971static void renderQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12972{
12973 int sequence_number;
12974
12975 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
12976
12977 REPLY(reply);
12978 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
12979 *offsetp += 1;
12980 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
12981 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
12982 "%d (render-QueryVersion)", sequence_number);
12983 *offsetp += 2;
12984 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
12985 *offsetp += 4;
12986 proto_tree_add_item(t, hf_x11_render_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
12987 *offsetp += 4;
12988 proto_tree_add_item(t, hf_x11_render_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
12989 *offsetp += 4;
12990 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
12991 *offsetp += 16;
12992}
12993
12994static void renderQueryPictFormats(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
12995{
12996}
12997static void renderQueryPictFormats_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
12998{
12999 int sequence_number;
13000 int f_num_formats;
13001 int f_num_screens;
13002 int f_num_subpixel;
13003
13004 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryPictFormats");
13005
13006 REPLY(reply);
13007 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13008 *offsetp += 1;
13009 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
13010 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13011 "%d (render-QueryPictFormats)", sequence_number);
13012 *offsetp += 2;
13013 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13014 *offsetp += 4;
13015 f_num_formats = tvb_get_uint32(tvb, *offsetp, byte_order);
13016 proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_formats, tvb, *offsetp, 4, byte_order);
13017 *offsetp += 4;
13018 f_num_screens = tvb_get_uint32(tvb, *offsetp, byte_order);
13019 proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_screens, tvb, *offsetp, 4, byte_order);
13020 *offsetp += 4;
13021 proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_depths, tvb, *offsetp, 4, byte_order);
13022 *offsetp += 4;
13023 proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_visuals, tvb, *offsetp, 4, byte_order);
13024 *offsetp += 4;
13025 f_num_subpixel = tvb_get_uint32(tvb, *offsetp, byte_order);
13026 proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_subpixel, tvb, *offsetp, 4, byte_order);
13027 *offsetp += 4;
13028 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
13029 *offsetp += 4;
13030 struct_render_PICTFORMINFO(tvb, offsetp, t, byte_order, f_num_formats);
13031 struct_render_PICTSCREEN(tvb, offsetp, t, byte_order, f_num_screens);
13032 listOfCard32(tvb, offsetp, t, hf_x11_render_QueryPictFormats_reply_subpixels, hf_x11_render_QueryPictFormats_reply_subpixels_item, f_num_subpixel, byte_order);
13033}
13034
13035static void renderQueryPictIndexValues(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13036{
13037 proto_tree_add_item(t, hf_x11_render_QueryPictIndexValues_format, tvb, *offsetp, 4, byte_order);
13038 *offsetp += 4;
13039}
13040static void renderQueryPictIndexValues_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
13041{
13042 int sequence_number;
13043 int f_num_values;
13044
13045 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryPictIndexValues");
13046
13047 REPLY(reply);
13048 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13049 *offsetp += 1;
13050 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
13051 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13052 "%d (render-QueryPictIndexValues)", sequence_number);
13053 *offsetp += 2;
13054 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13055 *offsetp += 4;
13056 f_num_values = tvb_get_uint32(tvb, *offsetp, byte_order);
13057 proto_tree_add_item(t, hf_x11_render_QueryPictIndexValues_reply_num_values, tvb, *offsetp, 4, byte_order);
13058 *offsetp += 4;
13059 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
13060 *offsetp += 20;
13061 struct_render_INDEXVALUE(tvb, offsetp, t, byte_order, f_num_values);
13062}
13063
13064static void renderCreatePicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13065{
13066 int f_value_mask;
13067 proto_tree_add_item(t, hf_x11_render_CreatePicture_pid, tvb, *offsetp, 4, byte_order);
13068 *offsetp += 4;
13069 proto_tree_add_item(t, hf_x11_render_CreatePicture_drawable, tvb, *offsetp, 4, byte_order);
13070 *offsetp += 4;
13071 proto_tree_add_item(t, hf_x11_render_CreatePicture_format, tvb, *offsetp, 4, byte_order);
13072 *offsetp += 4;
13073 f_value_mask = tvb_get_uint32(tvb, *offsetp, byte_order);
13074 {
13075 static int* const value_mask_bits [] = {
13076 &hf_x11_render_CreatePicture_value_mask_mask_Repeat,
13077 &hf_x11_render_CreatePicture_value_mask_mask_AlphaMap,
13078 &hf_x11_render_CreatePicture_value_mask_mask_AlphaXOrigin,
13079 &hf_x11_render_CreatePicture_value_mask_mask_AlphaYOrigin,
13080 &hf_x11_render_CreatePicture_value_mask_mask_ClipXOrigin,
13081 &hf_x11_render_CreatePicture_value_mask_mask_ClipYOrigin,
13082 &hf_x11_render_CreatePicture_value_mask_mask_ClipMask,
13083 &hf_x11_render_CreatePicture_value_mask_mask_GraphicsExposure,
13084 &hf_x11_render_CreatePicture_value_mask_mask_SubwindowMode,
13085 &hf_x11_render_CreatePicture_value_mask_mask_PolyEdge,
13086 &hf_x11_render_CreatePicture_value_mask_mask_PolyMode,
13087 &hf_x11_render_CreatePicture_value_mask_mask_Dither,
13088 &hf_x11_render_CreatePicture_value_mask_mask_ComponentAlpha,
13089 NULL
13090 };
13091 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_render_CreatePicture_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
13092 }
13093 *offsetp += 4;
13094 if (f_value_mask & (1U << 0)) {
13095 field32(tvb, offsetp, t, hf_x11_render_CreatePicture_Repeat_repeat, byte_order);
13096 }
13097 if (f_value_mask & (1U << 1)) {
13098 proto_tree_add_item(t, hf_x11_render_CreatePicture_AlphaMap_alphamap, tvb, *offsetp, 4, byte_order);
13099 *offsetp += 4;
13100 }
13101 if (f_value_mask & (1U << 2)) {
13102 proto_tree_add_item(t, hf_x11_render_CreatePicture_AlphaXOrigin_alphaxorigin, tvb, *offsetp, 4, byte_order);
13103 *offsetp += 4;
13104 }
13105 if (f_value_mask & (1U << 3)) {
13106 proto_tree_add_item(t, hf_x11_render_CreatePicture_AlphaYOrigin_alphayorigin, tvb, *offsetp, 4, byte_order);
13107 *offsetp += 4;
13108 }
13109 if (f_value_mask & (1U << 4)) {
13110 proto_tree_add_item(t, hf_x11_render_CreatePicture_ClipXOrigin_clipxorigin, tvb, *offsetp, 4, byte_order);
13111 *offsetp += 4;
13112 }
13113 if (f_value_mask & (1U << 5)) {
13114 proto_tree_add_item(t, hf_x11_render_CreatePicture_ClipYOrigin_clipyorigin, tvb, *offsetp, 4, byte_order);
13115 *offsetp += 4;
13116 }
13117 if (f_value_mask & (1U << 6)) {
13118 proto_tree_add_item(t, hf_x11_render_CreatePicture_ClipMask_clipmask, tvb, *offsetp, 4, byte_order);
13119 *offsetp += 4;
13120 }
13121 if (f_value_mask & (1U << 7)) {
13122 proto_tree_add_item(t, hf_x11_render_CreatePicture_GraphicsExposure_graphicsexposure, tvb, *offsetp, 4, byte_order);
13123 *offsetp += 4;
13124 }
13125 if (f_value_mask & (1U << 8)) {
13126 field32(tvb, offsetp, t, hf_x11_render_CreatePicture_SubwindowMode_subwindowmode, byte_order);
13127 }
13128 if (f_value_mask & (1U << 9)) {
13129 field32(tvb, offsetp, t, hf_x11_render_CreatePicture_PolyEdge_polyedge, byte_order);
13130 }
13131 if (f_value_mask & (1U << 10)) {
13132 field32(tvb, offsetp, t, hf_x11_render_CreatePicture_PolyMode_polymode, byte_order);
13133 }
13134 if (f_value_mask & (1U << 11)) {
13135 proto_tree_add_item(t, hf_x11_render_CreatePicture_Dither_dither, tvb, *offsetp, 4, byte_order);
13136 *offsetp += 4;
13137 }
13138 if (f_value_mask & (1U << 12)) {
13139 proto_tree_add_item(t, hf_x11_render_CreatePicture_ComponentAlpha_componentalpha, tvb, *offsetp, 4, byte_order);
13140 *offsetp += 4;
13141 }
13142}
13143
13144static void renderChangePicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13145{
13146 int f_value_mask;
13147 proto_tree_add_item(t, hf_x11_render_ChangePicture_picture, tvb, *offsetp, 4, byte_order);
13148 *offsetp += 4;
13149 f_value_mask = tvb_get_uint32(tvb, *offsetp, byte_order);
13150 {
13151 static int* const value_mask_bits [] = {
13152 &hf_x11_render_ChangePicture_value_mask_mask_Repeat,
13153 &hf_x11_render_ChangePicture_value_mask_mask_AlphaMap,
13154 &hf_x11_render_ChangePicture_value_mask_mask_AlphaXOrigin,
13155 &hf_x11_render_ChangePicture_value_mask_mask_AlphaYOrigin,
13156 &hf_x11_render_ChangePicture_value_mask_mask_ClipXOrigin,
13157 &hf_x11_render_ChangePicture_value_mask_mask_ClipYOrigin,
13158 &hf_x11_render_ChangePicture_value_mask_mask_ClipMask,
13159 &hf_x11_render_ChangePicture_value_mask_mask_GraphicsExposure,
13160 &hf_x11_render_ChangePicture_value_mask_mask_SubwindowMode,
13161 &hf_x11_render_ChangePicture_value_mask_mask_PolyEdge,
13162 &hf_x11_render_ChangePicture_value_mask_mask_PolyMode,
13163 &hf_x11_render_ChangePicture_value_mask_mask_Dither,
13164 &hf_x11_render_ChangePicture_value_mask_mask_ComponentAlpha,
13165 NULL
13166 };
13167 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_render_ChangePicture_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
13168 }
13169 *offsetp += 4;
13170 if (f_value_mask & (1U << 0)) {
13171 field32(tvb, offsetp, t, hf_x11_render_ChangePicture_Repeat_repeat, byte_order);
13172 }
13173 if (f_value_mask & (1U << 1)) {
13174 proto_tree_add_item(t, hf_x11_render_ChangePicture_AlphaMap_alphamap, tvb, *offsetp, 4, byte_order);
13175 *offsetp += 4;
13176 }
13177 if (f_value_mask & (1U << 2)) {
13178 proto_tree_add_item(t, hf_x11_render_ChangePicture_AlphaXOrigin_alphaxorigin, tvb, *offsetp, 4, byte_order);
13179 *offsetp += 4;
13180 }
13181 if (f_value_mask & (1U << 3)) {
13182 proto_tree_add_item(t, hf_x11_render_ChangePicture_AlphaYOrigin_alphayorigin, tvb, *offsetp, 4, byte_order);
13183 *offsetp += 4;
13184 }
13185 if (f_value_mask & (1U << 4)) {
13186 proto_tree_add_item(t, hf_x11_render_ChangePicture_ClipXOrigin_clipxorigin, tvb, *offsetp, 4, byte_order);
13187 *offsetp += 4;
13188 }
13189 if (f_value_mask & (1U << 5)) {
13190 proto_tree_add_item(t, hf_x11_render_ChangePicture_ClipYOrigin_clipyorigin, tvb, *offsetp, 4, byte_order);
13191 *offsetp += 4;
13192 }
13193 if (f_value_mask & (1U << 6)) {
13194 proto_tree_add_item(t, hf_x11_render_ChangePicture_ClipMask_clipmask, tvb, *offsetp, 4, byte_order);
13195 *offsetp += 4;
13196 }
13197 if (f_value_mask & (1U << 7)) {
13198 proto_tree_add_item(t, hf_x11_render_ChangePicture_GraphicsExposure_graphicsexposure, tvb, *offsetp, 4, byte_order);
13199 *offsetp += 4;
13200 }
13201 if (f_value_mask & (1U << 8)) {
13202 field32(tvb, offsetp, t, hf_x11_render_ChangePicture_SubwindowMode_subwindowmode, byte_order);
13203 }
13204 if (f_value_mask & (1U << 9)) {
13205 field32(tvb, offsetp, t, hf_x11_render_ChangePicture_PolyEdge_polyedge, byte_order);
13206 }
13207 if (f_value_mask & (1U << 10)) {
13208 field32(tvb, offsetp, t, hf_x11_render_ChangePicture_PolyMode_polymode, byte_order);
13209 }
13210 if (f_value_mask & (1U << 11)) {
13211 proto_tree_add_item(t, hf_x11_render_ChangePicture_Dither_dither, tvb, *offsetp, 4, byte_order);
13212 *offsetp += 4;
13213 }
13214 if (f_value_mask & (1U << 12)) {
13215 proto_tree_add_item(t, hf_x11_render_ChangePicture_ComponentAlpha_componentalpha, tvb, *offsetp, 4, byte_order);
13216 *offsetp += 4;
13217 }
13218}
13219
13220static void renderSetPictureClipRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13221{
13222 proto_tree_add_item(t, hf_x11_render_SetPictureClipRectangles_picture, tvb, *offsetp, 4, byte_order);
13223 *offsetp += 4;
13224 proto_tree_add_item(t, hf_x11_render_SetPictureClipRectangles_clip_x_origin, tvb, *offsetp, 2, byte_order);
13225 *offsetp += 2;
13226 proto_tree_add_item(t, hf_x11_render_SetPictureClipRectangles_clip_y_origin, tvb, *offsetp, 2, byte_order);
13227 *offsetp += 2;
13228 struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 12) / 8);
13229}
13230
13231static void renderFreePicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13232{
13233 proto_tree_add_item(t, hf_x11_render_FreePicture_picture, tvb, *offsetp, 4, byte_order);
13234 *offsetp += 4;
13235}
13236
13237static void renderComposite(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13238{
13239 field8(tvb, offsetp, t, hf_x11_render_Composite_op, byte_order);
13240 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13241 *offsetp += 3;
13242 proto_tree_add_item(t, hf_x11_render_Composite_src, tvb, *offsetp, 4, byte_order);
13243 *offsetp += 4;
13244 field32(tvb, offsetp, t, hf_x11_render_Composite_mask, byte_order);
13245 proto_tree_add_item(t, hf_x11_render_Composite_dst, tvb, *offsetp, 4, byte_order);
13246 *offsetp += 4;
13247 proto_tree_add_item(t, hf_x11_render_Composite_src_x, tvb, *offsetp, 2, byte_order);
13248 *offsetp += 2;
13249 proto_tree_add_item(t, hf_x11_render_Composite_src_y, tvb, *offsetp, 2, byte_order);
13250 *offsetp += 2;
13251 proto_tree_add_item(t, hf_x11_render_Composite_mask_x, tvb, *offsetp, 2, byte_order);
13252 *offsetp += 2;
13253 proto_tree_add_item(t, hf_x11_render_Composite_mask_y, tvb, *offsetp, 2, byte_order);
13254 *offsetp += 2;
13255 proto_tree_add_item(t, hf_x11_render_Composite_dst_x, tvb, *offsetp, 2, byte_order);
13256 *offsetp += 2;
13257 proto_tree_add_item(t, hf_x11_render_Composite_dst_y, tvb, *offsetp, 2, byte_order);
13258 *offsetp += 2;
13259 proto_tree_add_item(t, hf_x11_render_Composite_width, tvb, *offsetp, 2, byte_order);
13260 *offsetp += 2;
13261 proto_tree_add_item(t, hf_x11_render_Composite_height, tvb, *offsetp, 2, byte_order);
13262 *offsetp += 2;
13263}
13264
13265static void renderTrapezoids(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13266{
13267 field8(tvb, offsetp, t, hf_x11_render_Trapezoids_op, byte_order);
13268 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13269 *offsetp += 3;
13270 proto_tree_add_item(t, hf_x11_render_Trapezoids_src, tvb, *offsetp, 4, byte_order);
13271 *offsetp += 4;
13272 proto_tree_add_item(t, hf_x11_render_Trapezoids_dst, tvb, *offsetp, 4, byte_order);
13273 *offsetp += 4;
13274 proto_tree_add_item(t, hf_x11_render_Trapezoids_mask_format, tvb, *offsetp, 4, byte_order);
13275 *offsetp += 4;
13276 proto_tree_add_item(t, hf_x11_render_Trapezoids_src_x, tvb, *offsetp, 2, byte_order);
13277 *offsetp += 2;
13278 proto_tree_add_item(t, hf_x11_render_Trapezoids_src_y, tvb, *offsetp, 2, byte_order);
13279 *offsetp += 2;
13280 struct_render_TRAPEZOID(tvb, offsetp, t, byte_order, (length - 24) / 40);
13281}
13282
13283static void renderTriangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13284{
13285 field8(tvb, offsetp, t, hf_x11_render_Triangles_op, byte_order);
13286 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13287 *offsetp += 3;
13288 proto_tree_add_item(t, hf_x11_render_Triangles_src, tvb, *offsetp, 4, byte_order);
13289 *offsetp += 4;
13290 proto_tree_add_item(t, hf_x11_render_Triangles_dst, tvb, *offsetp, 4, byte_order);
13291 *offsetp += 4;
13292 proto_tree_add_item(t, hf_x11_render_Triangles_mask_format, tvb, *offsetp, 4, byte_order);
13293 *offsetp += 4;
13294 proto_tree_add_item(t, hf_x11_render_Triangles_src_x, tvb, *offsetp, 2, byte_order);
13295 *offsetp += 2;
13296 proto_tree_add_item(t, hf_x11_render_Triangles_src_y, tvb, *offsetp, 2, byte_order);
13297 *offsetp += 2;
13298 struct_render_TRIANGLE(tvb, offsetp, t, byte_order, (length - 24) / 24);
13299}
13300
13301static void renderTriStrip(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13302{
13303 field8(tvb, offsetp, t, hf_x11_render_TriStrip_op, byte_order);
13304 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13305 *offsetp += 3;
13306 proto_tree_add_item(t, hf_x11_render_TriStrip_src, tvb, *offsetp, 4, byte_order);
13307 *offsetp += 4;
13308 proto_tree_add_item(t, hf_x11_render_TriStrip_dst, tvb, *offsetp, 4, byte_order);
13309 *offsetp += 4;
13310 proto_tree_add_item(t, hf_x11_render_TriStrip_mask_format, tvb, *offsetp, 4, byte_order);
13311 *offsetp += 4;
13312 proto_tree_add_item(t, hf_x11_render_TriStrip_src_x, tvb, *offsetp, 2, byte_order);
13313 *offsetp += 2;
13314 proto_tree_add_item(t, hf_x11_render_TriStrip_src_y, tvb, *offsetp, 2, byte_order);
13315 *offsetp += 2;
13316 struct_render_POINTFIX(tvb, offsetp, t, byte_order, (length - 24) / 8);
13317}
13318
13319static void renderTriFan(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13320{
13321 field8(tvb, offsetp, t, hf_x11_render_TriFan_op, byte_order);
13322 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13323 *offsetp += 3;
13324 proto_tree_add_item(t, hf_x11_render_TriFan_src, tvb, *offsetp, 4, byte_order);
13325 *offsetp += 4;
13326 proto_tree_add_item(t, hf_x11_render_TriFan_dst, tvb, *offsetp, 4, byte_order);
13327 *offsetp += 4;
13328 proto_tree_add_item(t, hf_x11_render_TriFan_mask_format, tvb, *offsetp, 4, byte_order);
13329 *offsetp += 4;
13330 proto_tree_add_item(t, hf_x11_render_TriFan_src_x, tvb, *offsetp, 2, byte_order);
13331 *offsetp += 2;
13332 proto_tree_add_item(t, hf_x11_render_TriFan_src_y, tvb, *offsetp, 2, byte_order);
13333 *offsetp += 2;
13334 struct_render_POINTFIX(tvb, offsetp, t, byte_order, (length - 24) / 8);
13335}
13336
13337static void renderCreateGlyphSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13338{
13339 proto_tree_add_item(t, hf_x11_render_CreateGlyphSet_gsid, tvb, *offsetp, 4, byte_order);
13340 *offsetp += 4;
13341 proto_tree_add_item(t, hf_x11_render_CreateGlyphSet_format, tvb, *offsetp, 4, byte_order);
13342 *offsetp += 4;
13343}
13344
13345static void renderReferenceGlyphSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13346{
13347 proto_tree_add_item(t, hf_x11_render_ReferenceGlyphSet_gsid, tvb, *offsetp, 4, byte_order);
13348 *offsetp += 4;
13349 proto_tree_add_item(t, hf_x11_render_ReferenceGlyphSet_existing, tvb, *offsetp, 4, byte_order);
13350 *offsetp += 4;
13351}
13352
13353static void renderFreeGlyphSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13354{
13355 proto_tree_add_item(t, hf_x11_render_FreeGlyphSet_glyphset, tvb, *offsetp, 4, byte_order);
13356 *offsetp += 4;
13357}
13358
13359static void renderAddGlyphs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13360{
13361 int f_glyphs_len;
13362 proto_tree_add_item(t, hf_x11_render_AddGlyphs_glyphset, tvb, *offsetp, 4, byte_order);
13363 *offsetp += 4;
13364 f_glyphs_len = tvb_get_uint32(tvb, *offsetp, byte_order);
13365 proto_tree_add_item(t, hf_x11_render_AddGlyphs_glyphs_len, tvb, *offsetp, 4, byte_order);
13366 *offsetp += 4;
13367 listOfCard32(tvb, offsetp, t, hf_x11_render_AddGlyphs_glyphids, hf_x11_render_AddGlyphs_glyphids_item, f_glyphs_len, byte_order);
13368 length -= f_glyphs_len * 4;
13369 struct_render_GLYPHINFO(tvb, offsetp, t, byte_order, f_glyphs_len);
13370 length -= f_glyphs_len * 12;
13371 listOfByte(tvb, offsetp, t, hf_x11_render_AddGlyphs_data, (length - 12) / 1, byte_order);
13372}
13373
13374static void renderFreeGlyphs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13375{
13376 proto_tree_add_item(t, hf_x11_render_FreeGlyphs_glyphset, tvb, *offsetp, 4, byte_order);
13377 *offsetp += 4;
13378 listOfCard32(tvb, offsetp, t, hf_x11_render_FreeGlyphs_glyphs, hf_x11_render_FreeGlyphs_glyphs_item, (length - 8) / 4, byte_order);
13379}
13380
13381static void renderCompositeGlyphs8(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13382{
13383 field8(tvb, offsetp, t, hf_x11_render_CompositeGlyphs8_op, byte_order);
13384 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13385 *offsetp += 3;
13386 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_src, tvb, *offsetp, 4, byte_order);
13387 *offsetp += 4;
13388 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_dst, tvb, *offsetp, 4, byte_order);
13389 *offsetp += 4;
13390 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_mask_format, tvb, *offsetp, 4, byte_order);
13391 *offsetp += 4;
13392 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_glyphset, tvb, *offsetp, 4, byte_order);
13393 *offsetp += 4;
13394 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_src_x, tvb, *offsetp, 2, byte_order);
13395 *offsetp += 2;
13396 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_src_y, tvb, *offsetp, 2, byte_order);
13397 *offsetp += 2;
13398 listOfByte(tvb, offsetp, t, hf_x11_render_CompositeGlyphs8_glyphcmds, (length - 28) / 1, byte_order);
13399}
13400
13401static void renderCompositeGlyphs16(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13402{
13403 field8(tvb, offsetp, t, hf_x11_render_CompositeGlyphs16_op, byte_order);
13404 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13405 *offsetp += 3;
13406 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_src, tvb, *offsetp, 4, byte_order);
13407 *offsetp += 4;
13408 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_dst, tvb, *offsetp, 4, byte_order);
13409 *offsetp += 4;
13410 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_mask_format, tvb, *offsetp, 4, byte_order);
13411 *offsetp += 4;
13412 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_glyphset, tvb, *offsetp, 4, byte_order);
13413 *offsetp += 4;
13414 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_src_x, tvb, *offsetp, 2, byte_order);
13415 *offsetp += 2;
13416 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_src_y, tvb, *offsetp, 2, byte_order);
13417 *offsetp += 2;
13418 listOfByte(tvb, offsetp, t, hf_x11_render_CompositeGlyphs16_glyphcmds, (length - 28) / 1, byte_order);
13419}
13420
13421static void renderCompositeGlyphs32(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13422{
13423 field8(tvb, offsetp, t, hf_x11_render_CompositeGlyphs32_op, byte_order);
13424 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13425 *offsetp += 3;
13426 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_src, tvb, *offsetp, 4, byte_order);
13427 *offsetp += 4;
13428 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_dst, tvb, *offsetp, 4, byte_order);
13429 *offsetp += 4;
13430 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_mask_format, tvb, *offsetp, 4, byte_order);
13431 *offsetp += 4;
13432 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_glyphset, tvb, *offsetp, 4, byte_order);
13433 *offsetp += 4;
13434 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_src_x, tvb, *offsetp, 2, byte_order);
13435 *offsetp += 2;
13436 proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_src_y, tvb, *offsetp, 2, byte_order);
13437 *offsetp += 2;
13438 listOfByte(tvb, offsetp, t, hf_x11_render_CompositeGlyphs32_glyphcmds, (length - 28) / 1, byte_order);
13439}
13440
13441static void renderFillRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13442{
13443 field8(tvb, offsetp, t, hf_x11_render_FillRectangles_op, byte_order);
13444 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
13445 *offsetp += 3;
13446 proto_tree_add_item(t, hf_x11_render_FillRectangles_dst, tvb, *offsetp, 4, byte_order);
13447 *offsetp += 4;
13448 struct_render_COLOR(tvb, offsetp, t, byte_order, 1);
13449 struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 20) / 8);
13450}
13451
13452static void renderCreateCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13453{
13454 proto_tree_add_item(t, hf_x11_render_CreateCursor_cid, tvb, *offsetp, 4, byte_order);
13455 *offsetp += 4;
13456 proto_tree_add_item(t, hf_x11_render_CreateCursor_source, tvb, *offsetp, 4, byte_order);
13457 *offsetp += 4;
13458 proto_tree_add_item(t, hf_x11_render_CreateCursor_x, tvb, *offsetp, 2, byte_order);
13459 *offsetp += 2;
13460 proto_tree_add_item(t, hf_x11_render_CreateCursor_y, tvb, *offsetp, 2, byte_order);
13461 *offsetp += 2;
13462}
13463
13464static void renderSetPictureTransform(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13465{
13466 proto_tree_add_item(t, hf_x11_render_SetPictureTransform_picture, tvb, *offsetp, 4, byte_order);
13467 *offsetp += 4;
13468 struct_render_TRANSFORM(tvb, offsetp, t, byte_order, 1);
13469}
13470
13471static void renderQueryFilters(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13472{
13473 proto_tree_add_item(t, hf_x11_render_QueryFilters_drawable, tvb, *offsetp, 4, byte_order);
13474 *offsetp += 4;
13475}
13476static void renderQueryFilters_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
13477{
13478 int sequence_number;
13479 int f_num_aliases;
13480 int f_num_filters;
13481
13482 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryFilters");
13483
13484 REPLY(reply);
13485 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13486 *offsetp += 1;
13487 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
13488 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13489 "%d (render-QueryFilters)", sequence_number);
13490 *offsetp += 2;
13491 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13492 *offsetp += 4;
13493 f_num_aliases = tvb_get_uint32(tvb, *offsetp, byte_order);
13494 proto_tree_add_item(t, hf_x11_render_QueryFilters_reply_num_aliases, tvb, *offsetp, 4, byte_order);
13495 *offsetp += 4;
13496 f_num_filters = tvb_get_uint32(tvb, *offsetp, byte_order);
13497 proto_tree_add_item(t, hf_x11_render_QueryFilters_reply_num_filters, tvb, *offsetp, 4, byte_order);
13498 *offsetp += 4;
13499 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
13500 *offsetp += 16;
13501 listOfCard16(tvb, offsetp, t, hf_x11_render_QueryFilters_reply_aliases, hf_x11_render_QueryFilters_reply_aliases_item, f_num_aliases, byte_order);
13502 struct_xproto_STR(tvb, offsetp, t, byte_order, f_num_filters);
13503}
13504
13505static void renderSetPictureFilter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13506{
13507 int f_filter_len;
13508 proto_tree_add_item(t, hf_x11_render_SetPictureFilter_picture, tvb, *offsetp, 4, byte_order);
13509 *offsetp += 4;
13510 f_filter_len = tvb_get_uint16(tvb, *offsetp, byte_order);
13511 proto_tree_add_item(t, hf_x11_render_SetPictureFilter_filter_len, tvb, *offsetp, 2, byte_order);
13512 *offsetp += 2;
13513 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
13514 *offsetp += 2;
13515 listOfByte(tvb, offsetp, t, hf_x11_render_SetPictureFilter_filter, f_filter_len, byte_order);
13516 length -= f_filter_len * 1;
13517 pad_to_4_bytes(tvb, offsetp, t);
13518 length = WS_ROUNDUP_4(length);
13519 listOfInt32(tvb, offsetp, t, hf_x11_render_SetPictureFilter_values, hf_x11_render_SetPictureFilter_values_item, (length - 12) / 4, byte_order);
13520}
13521
13522static void renderCreateAnimCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13523{
13524 proto_tree_add_item(t, hf_x11_render_CreateAnimCursor_cid, tvb, *offsetp, 4, byte_order);
13525 *offsetp += 4;
13526 struct_render_ANIMCURSORELT(tvb, offsetp, t, byte_order, (length - 8) / 8);
13527}
13528
13529static void renderAddTraps(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13530{
13531 proto_tree_add_item(t, hf_x11_render_AddTraps_picture, tvb, *offsetp, 4, byte_order);
13532 *offsetp += 4;
13533 proto_tree_add_item(t, hf_x11_render_AddTraps_x_off, tvb, *offsetp, 2, byte_order);
13534 *offsetp += 2;
13535 proto_tree_add_item(t, hf_x11_render_AddTraps_y_off, tvb, *offsetp, 2, byte_order);
13536 *offsetp += 2;
13537 struct_render_TRAP(tvb, offsetp, t, byte_order, (length - 12) / 24);
13538}
13539
13540static void renderCreateSolidFill(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13541{
13542 proto_tree_add_item(t, hf_x11_render_CreateSolidFill_picture, tvb, *offsetp, 4, byte_order);
13543 *offsetp += 4;
13544 struct_render_COLOR(tvb, offsetp, t, byte_order, 1);
13545}
13546
13547static void renderCreateLinearGradient(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13548{
13549 int f_num_stops;
13550 proto_tree_add_item(t, hf_x11_render_CreateLinearGradient_picture, tvb, *offsetp, 4, byte_order);
13551 *offsetp += 4;
13552 struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
13553 struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
13554 f_num_stops = tvb_get_uint32(tvb, *offsetp, byte_order);
13555 proto_tree_add_item(t, hf_x11_render_CreateLinearGradient_num_stops, tvb, *offsetp, 4, byte_order);
13556 *offsetp += 4;
13557 listOfInt32(tvb, offsetp, t, hf_x11_render_CreateLinearGradient_stops, hf_x11_render_CreateLinearGradient_stops_item, f_num_stops, byte_order);
13558 length -= f_num_stops * 4;
13559 struct_render_COLOR(tvb, offsetp, t, byte_order, f_num_stops);
13560 length -= f_num_stops * 8;
13561}
13562
13563static void renderCreateRadialGradient(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13564{
13565 int f_num_stops;
13566 proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_picture, tvb, *offsetp, 4, byte_order);
13567 *offsetp += 4;
13568 struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
13569 struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
13570 proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_inner_radius, tvb, *offsetp, 4, byte_order);
13571 *offsetp += 4;
13572 proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_outer_radius, tvb, *offsetp, 4, byte_order);
13573 *offsetp += 4;
13574 f_num_stops = tvb_get_uint32(tvb, *offsetp, byte_order);
13575 proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_num_stops, tvb, *offsetp, 4, byte_order);
13576 *offsetp += 4;
13577 listOfInt32(tvb, offsetp, t, hf_x11_render_CreateRadialGradient_stops, hf_x11_render_CreateRadialGradient_stops_item, f_num_stops, byte_order);
13578 length -= f_num_stops * 4;
13579 struct_render_COLOR(tvb, offsetp, t, byte_order, f_num_stops);
13580 length -= f_num_stops * 8;
13581}
13582
13583static void renderCreateConicalGradient(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13584{
13585 int f_num_stops;
13586 proto_tree_add_item(t, hf_x11_render_CreateConicalGradient_picture, tvb, *offsetp, 4, byte_order);
13587 *offsetp += 4;
13588 struct_render_POINTFIX(tvb, offsetp, t, byte_order, 1);
13589 proto_tree_add_item(t, hf_x11_render_CreateConicalGradient_angle, tvb, *offsetp, 4, byte_order);
13590 *offsetp += 4;
13591 f_num_stops = tvb_get_uint32(tvb, *offsetp, byte_order);
13592 proto_tree_add_item(t, hf_x11_render_CreateConicalGradient_num_stops, tvb, *offsetp, 4, byte_order);
13593 *offsetp += 4;
13594 listOfInt32(tvb, offsetp, t, hf_x11_render_CreateConicalGradient_stops, hf_x11_render_CreateConicalGradient_stops_item, f_num_stops, byte_order);
13595 length -= f_num_stops * 4;
13596 struct_render_COLOR(tvb, offsetp, t, byte_order, f_num_stops);
13597 length -= f_num_stops * 8;
13598}
13599static const value_string render_extension_minor[] = {
13600 { 0, "QueryVersion" },
13601 { 1, "QueryPictFormats" },
13602 { 2, "QueryPictIndexValues" },
13603 { 4, "CreatePicture" },
13604 { 5, "ChangePicture" },
13605 { 6, "SetPictureClipRectangles" },
13606 { 7, "FreePicture" },
13607 { 8, "Composite" },
13608 { 10, "Trapezoids" },
13609 { 11, "Triangles" },
13610 { 12, "TriStrip" },
13611 { 13, "TriFan" },
13612 { 17, "CreateGlyphSet" },
13613 { 18, "ReferenceGlyphSet" },
13614 { 19, "FreeGlyphSet" },
13615 { 20, "AddGlyphs" },
13616 { 22, "FreeGlyphs" },
13617 { 23, "CompositeGlyphs8" },
13618 { 24, "CompositeGlyphs16" },
13619 { 25, "CompositeGlyphs32" },
13620 { 26, "FillRectangles" },
13621 { 27, "CreateCursor" },
13622 { 28, "SetPictureTransform" },
13623 { 29, "QueryFilters" },
13624 { 30, "SetPictureFilter" },
13625 { 31, "CreateAnimCursor" },
13626 { 32, "AddTraps" },
13627 { 33, "CreateSolidFill" },
13628 { 34, "CreateLinearGradient" },
13629 { 35, "CreateRadialGradient" },
13630 { 36, "CreateConicalGradient" },
13631 { 0, NULL }
13632};
13633static const x11_event_info render_events[] = {
13634 { NULL, NULL }
13635};
13636static const x11_reply_info render_replies[] = {
13637 { 0, renderQueryVersion_Reply },
13638 { 1, renderQueryPictFormats_Reply },
13639 { 2, renderQueryPictIndexValues_Reply },
13640 { 29, renderQueryFilters_Reply },
13641 { 0, NULL }
13642};
13643
13644static void dispatch_render(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
13645{
13646 int minor, length;
13647 minor = CARD8(render_extension_minor);
13648 length = REQUEST_LENGTH();
13649
13650 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
13651 val_to_str(minor, render_extension_minor,
13652 "<Unknown opcode %d>"));
13653 switch (minor) {
13654 case 0:
13655 renderQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
13656 break;
13657 case 1:
13658 renderQueryPictFormats(tvb, pinfo, offsetp, t, byte_order, length);
13659 break;
13660 case 2:
13661 renderQueryPictIndexValues(tvb, pinfo, offsetp, t, byte_order, length);
13662 break;
13663 case 4:
13664 renderCreatePicture(tvb, pinfo, offsetp, t, byte_order, length);
13665 break;
13666 case 5:
13667 renderChangePicture(tvb, pinfo, offsetp, t, byte_order, length);
13668 break;
13669 case 6:
13670 renderSetPictureClipRectangles(tvb, pinfo, offsetp, t, byte_order, length);
13671 break;
13672 case 7:
13673 renderFreePicture(tvb, pinfo, offsetp, t, byte_order, length);
13674 break;
13675 case 8:
13676 renderComposite(tvb, pinfo, offsetp, t, byte_order, length);
13677 break;
13678 case 10:
13679 renderTrapezoids(tvb, pinfo, offsetp, t, byte_order, length);
13680 break;
13681 case 11:
13682 renderTriangles(tvb, pinfo, offsetp, t, byte_order, length);
13683 break;
13684 case 12:
13685 renderTriStrip(tvb, pinfo, offsetp, t, byte_order, length);
13686 break;
13687 case 13:
13688 renderTriFan(tvb, pinfo, offsetp, t, byte_order, length);
13689 break;
13690 case 17:
13691 renderCreateGlyphSet(tvb, pinfo, offsetp, t, byte_order, length);
13692 break;
13693 case 18:
13694 renderReferenceGlyphSet(tvb, pinfo, offsetp, t, byte_order, length);
13695 break;
13696 case 19:
13697 renderFreeGlyphSet(tvb, pinfo, offsetp, t, byte_order, length);
13698 break;
13699 case 20:
13700 renderAddGlyphs(tvb, pinfo, offsetp, t, byte_order, length);
13701 break;
13702 case 22:
13703 renderFreeGlyphs(tvb, pinfo, offsetp, t, byte_order, length);
13704 break;
13705 case 23:
13706 renderCompositeGlyphs8(tvb, pinfo, offsetp, t, byte_order, length);
13707 break;
13708 case 24:
13709 renderCompositeGlyphs16(tvb, pinfo, offsetp, t, byte_order, length);
13710 break;
13711 case 25:
13712 renderCompositeGlyphs32(tvb, pinfo, offsetp, t, byte_order, length);
13713 break;
13714 case 26:
13715 renderFillRectangles(tvb, pinfo, offsetp, t, byte_order, length);
13716 break;
13717 case 27:
13718 renderCreateCursor(tvb, pinfo, offsetp, t, byte_order, length);
13719 break;
13720 case 28:
13721 renderSetPictureTransform(tvb, pinfo, offsetp, t, byte_order, length);
13722 break;
13723 case 29:
13724 renderQueryFilters(tvb, pinfo, offsetp, t, byte_order, length);
13725 break;
13726 case 30:
13727 renderSetPictureFilter(tvb, pinfo, offsetp, t, byte_order, length);
13728 break;
13729 case 31:
13730 renderCreateAnimCursor(tvb, pinfo, offsetp, t, byte_order, length);
13731 break;
13732 case 32:
13733 renderAddTraps(tvb, pinfo, offsetp, t, byte_order, length);
13734 break;
13735 case 33:
13736 renderCreateSolidFill(tvb, pinfo, offsetp, t, byte_order, length);
13737 break;
13738 case 34:
13739 renderCreateLinearGradient(tvb, pinfo, offsetp, t, byte_order, length);
13740 break;
13741 case 35:
13742 renderCreateRadialGradient(tvb, pinfo, offsetp, t, byte_order, length);
13743 break;
13744 case 36:
13745 renderCreateConicalGradient(tvb, pinfo, offsetp, t, byte_order, length);
13746 break;
13747 /* No need for a default case here, since Unknown is printed above,
13748 and UNDECODED() is taken care of by dissect_x11_request */
13749 }
13750}
13751
13752static void register_render(void)
13753{
13754 set_handler("RENDER", dispatch_render, render_errors, render_events, NULL, render_replies);
13755}
13756
13757static void struct_res_Client(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
13758{
13759 int i;
13760 for (i = 0; i < count; i++) {
13761 proto_item *item;
13762 proto_tree *t;
13763
13764 item = proto_tree_add_item(root, hf_x11_struct_res_Client, tvb, *offsetp, 8, ENC_NA);
13765 t = proto_item_add_subtree(item, ett_x11_rectangle);
13766 proto_tree_add_item(t, hf_x11_struct_res_Client_resource_base, tvb, *offsetp, 4, byte_order);
13767 *offsetp += 4;
13768 proto_tree_add_item(t, hf_x11_struct_res_Client_resource_mask, tvb, *offsetp, 4, byte_order);
13769 *offsetp += 4;
13770 }
13771}
13772
13773static void struct_res_Type(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
13774{
13775 int i;
13776 for (i = 0; i < count; i++) {
13777 proto_item *item;
13778 proto_tree *t;
13779
13780 item = proto_tree_add_item(root, hf_x11_struct_res_Type, tvb, *offsetp, 8, ENC_NA);
13781 t = proto_item_add_subtree(item, ett_x11_rectangle);
13782 proto_tree_add_item(t, hf_x11_struct_res_Type_resource_type, tvb, *offsetp, 4, byte_order);
13783 *offsetp += 4;
13784 proto_tree_add_item(t, hf_x11_struct_res_Type_count, tvb, *offsetp, 4, byte_order);
13785 *offsetp += 4;
13786 }
13787}
13788
13789static void struct_res_ClientIdSpec(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
13790{
13791 int i;
13792 for (i = 0; i < count; i++) {
13793 proto_item *item;
13794 proto_tree *t;
13795
13796 item = proto_tree_add_item(root, hf_x11_struct_res_ClientIdSpec, tvb, *offsetp, 8, ENC_NA);
13797 t = proto_item_add_subtree(item, ett_x11_rectangle);
13798 proto_tree_add_item(t, hf_x11_struct_res_ClientIdSpec_client, tvb, *offsetp, 4, byte_order);
13799 *offsetp += 4;
13800 {
13801 static int* const mask_bits [] = {
13802 &hf_x11_struct_res_ClientIdSpec_mask_mask_ClientXID,
13803 &hf_x11_struct_res_ClientIdSpec_mask_mask_LocalClientPID,
13804 NULL
13805 };
13806 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_res_ClientIdSpec_mask, ett_x11_rectangle, mask_bits, byte_order);
13807 }
13808 *offsetp += 4;
13809 }
13810}
13811
13812static int struct_size_res_ClientIdValue(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
13813{
13814 int size = 0;
13815 int f_length;
13816 f_length = tvb_get_uint32(tvb, *offsetp + size + 8, byte_order);
13817 size += (f_length / 4) * 4;
13818 return size + 12;
13819}
13820
13821static void struct_res_ClientIdValue(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
13822{
13823 int i;
13824 for (i = 0; i < count; i++) {
13825 proto_item *item;
13826 proto_tree *t;
13827 int f_length;
13828
13829 item = proto_tree_add_item(root, hf_x11_struct_res_ClientIdValue, tvb, *offsetp, struct_size_res_ClientIdValue(tvb, offsetp, byte_order), ENC_NA);
13830 t = proto_item_add_subtree(item, ett_x11_rectangle);
13831 struct_res_ClientIdSpec(tvb, offsetp, t, byte_order, 1);
13832 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
13833 proto_tree_add_item(t, hf_x11_struct_res_ClientIdValue_length, tvb, *offsetp, 4, byte_order);
13834 *offsetp += 4;
13835 listOfCard32(tvb, offsetp, t, hf_x11_struct_res_ClientIdValue_value, hf_x11_struct_res_ClientIdValue_value_item, (f_length / 4), byte_order);
13836 }
13837}
13838
13839static void struct_res_ResourceIdSpec(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
13840{
13841 int i;
13842 for (i = 0; i < count; i++) {
13843 proto_item *item;
13844 proto_tree *t;
13845
13846 item = proto_tree_add_item(root, hf_x11_struct_res_ResourceIdSpec, tvb, *offsetp, 8, ENC_NA);
13847 t = proto_item_add_subtree(item, ett_x11_rectangle);
13848 proto_tree_add_item(t, hf_x11_struct_res_ResourceIdSpec_resource, tvb, *offsetp, 4, byte_order);
13849 *offsetp += 4;
13850 proto_tree_add_item(t, hf_x11_struct_res_ResourceIdSpec_type, tvb, *offsetp, 4, byte_order);
13851 *offsetp += 4;
13852 }
13853}
13854
13855static void struct_res_ResourceSizeSpec(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
13856{
13857 int i;
13858 for (i = 0; i < count; i++) {
13859 proto_item *item;
13860 proto_tree *t;
13861
13862 item = proto_tree_add_item(root, hf_x11_struct_res_ResourceSizeSpec, tvb, *offsetp, 20, ENC_NA);
13863 t = proto_item_add_subtree(item, ett_x11_rectangle);
13864 struct_res_ResourceIdSpec(tvb, offsetp, t, byte_order, 1);
13865 proto_tree_add_item(t, hf_x11_struct_res_ResourceSizeSpec_bytes, tvb, *offsetp, 4, byte_order);
13866 *offsetp += 4;
13867 proto_tree_add_item(t, hf_x11_struct_res_ResourceSizeSpec_ref_count, tvb, *offsetp, 4, byte_order);
13868 *offsetp += 4;
13869 proto_tree_add_item(t, hf_x11_struct_res_ResourceSizeSpec_use_count, tvb, *offsetp, 4, byte_order);
13870 *offsetp += 4;
13871 }
13872}
13873
13874static int struct_size_res_ResourceSizeValue(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
13875{
13876 int size = 0;
13877 int f_num_cross_references;
13878 f_num_cross_references = tvb_get_uint32(tvb, *offsetp + size + 20, byte_order);
13879 size += f_num_cross_references * 20;
13880 return size + 24;
13881}
13882
13883static void struct_res_ResourceSizeValue(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
13884{
13885 int i;
13886 for (i = 0; i < count; i++) {
13887 proto_item *item;
13888 proto_tree *t;
13889 int f_num_cross_references;
13890
13891 item = proto_tree_add_item(root, hf_x11_struct_res_ResourceSizeValue, tvb, *offsetp, struct_size_res_ResourceSizeValue(tvb, offsetp, byte_order), ENC_NA);
13892 t = proto_item_add_subtree(item, ett_x11_rectangle);
13893 struct_res_ResourceSizeSpec(tvb, offsetp, t, byte_order, 1);
13894 f_num_cross_references = tvb_get_uint32(tvb, *offsetp, byte_order);
13895 proto_tree_add_item(t, hf_x11_struct_res_ResourceSizeValue_num_cross_references, tvb, *offsetp, 4, byte_order);
13896 *offsetp += 4;
13897 struct_res_ResourceSizeSpec(tvb, offsetp, t, byte_order, f_num_cross_references);
13898 }
13899}
13900
13901static void resQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13902{
13903 proto_tree_add_item(t, hf_x11_res_QueryVersion_client_major, tvb, *offsetp, 1, byte_order);
13904 *offsetp += 1;
13905 proto_tree_add_item(t, hf_x11_res_QueryVersion_client_minor, tvb, *offsetp, 1, byte_order);
13906 *offsetp += 1;
13907}
13908static void resQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
13909{
13910 int sequence_number;
13911
13912 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
13913
13914 REPLY(reply);
13915 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13916 *offsetp += 1;
13917 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
13918 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13919 "%d (res-QueryVersion)", sequence_number);
13920 *offsetp += 2;
13921 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13922 *offsetp += 4;
13923 proto_tree_add_item(t, hf_x11_res_QueryVersion_reply_server_major, tvb, *offsetp, 2, byte_order);
13924 *offsetp += 2;
13925 proto_tree_add_item(t, hf_x11_res_QueryVersion_reply_server_minor, tvb, *offsetp, 2, byte_order);
13926 *offsetp += 2;
13927}
13928
13929static void resQueryClients(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
13930{
13931}
13932static void resQueryClients_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
13933{
13934 int sequence_number;
13935 int f_num_clients;
13936
13937 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClients");
13938
13939 REPLY(reply);
13940 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13941 *offsetp += 1;
13942 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
13943 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13944 "%d (res-QueryClients)", sequence_number);
13945 *offsetp += 2;
13946 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13947 *offsetp += 4;
13948 f_num_clients = tvb_get_uint32(tvb, *offsetp, byte_order);
13949 proto_tree_add_item(t, hf_x11_res_QueryClients_reply_num_clients, tvb, *offsetp, 4, byte_order);
13950 *offsetp += 4;
13951 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
13952 *offsetp += 20;
13953 struct_res_Client(tvb, offsetp, t, byte_order, f_num_clients);
13954}
13955
13956static void resQueryClientResources(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13957{
13958 proto_tree_add_item(t, hf_x11_res_QueryClientResources_xid, tvb, *offsetp, 4, byte_order);
13959 *offsetp += 4;
13960}
13961static void resQueryClientResources_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
13962{
13963 int sequence_number;
13964 int f_num_types;
13965
13966 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClientResources");
13967
13968 REPLY(reply);
13969 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13970 *offsetp += 1;
13971 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
13972 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
13973 "%d (res-QueryClientResources)", sequence_number);
13974 *offsetp += 2;
13975 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
13976 *offsetp += 4;
13977 f_num_types = tvb_get_uint32(tvb, *offsetp, byte_order);
13978 proto_tree_add_item(t, hf_x11_res_QueryClientResources_reply_num_types, tvb, *offsetp, 4, byte_order);
13979 *offsetp += 4;
13980 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
13981 *offsetp += 20;
13982 struct_res_Type(tvb, offsetp, t, byte_order, f_num_types);
13983}
13984
13985static void resQueryClientPixmapBytes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
13986{
13987 proto_tree_add_item(t, hf_x11_res_QueryClientPixmapBytes_xid, tvb, *offsetp, 4, byte_order);
13988 *offsetp += 4;
13989}
13990static void resQueryClientPixmapBytes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
13991{
13992 int sequence_number;
13993
13994 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClientPixmapBytes");
13995
13996 REPLY(reply);
13997 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
13998 *offsetp += 1;
13999 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
14000 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14001 "%d (res-QueryClientPixmapBytes)", sequence_number);
14002 *offsetp += 2;
14003 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14004 *offsetp += 4;
14005 proto_tree_add_item(t, hf_x11_res_QueryClientPixmapBytes_reply_bytes, tvb, *offsetp, 4, byte_order);
14006 *offsetp += 4;
14007 proto_tree_add_item(t, hf_x11_res_QueryClientPixmapBytes_reply_bytes_overflow, tvb, *offsetp, 4, byte_order);
14008 *offsetp += 4;
14009}
14010
14011static void resQueryClientIds(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14012{
14013 int f_num_specs;
14014 f_num_specs = tvb_get_uint32(tvb, *offsetp, byte_order);
14015 proto_tree_add_item(t, hf_x11_res_QueryClientIds_num_specs, tvb, *offsetp, 4, byte_order);
14016 *offsetp += 4;
14017 struct_res_ClientIdSpec(tvb, offsetp, t, byte_order, f_num_specs);
14018 length -= f_num_specs * 8;
14019}
14020static void resQueryClientIds_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14021{
14022 int sequence_number;
14023 int f_num_ids;
14024
14025 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClientIds");
14026
14027 REPLY(reply);
14028 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14029 *offsetp += 1;
14030 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
14031 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14032 "%d (res-QueryClientIds)", sequence_number);
14033 *offsetp += 2;
14034 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14035 *offsetp += 4;
14036 f_num_ids = tvb_get_uint32(tvb, *offsetp, byte_order);
14037 proto_tree_add_item(t, hf_x11_res_QueryClientIds_reply_num_ids, tvb, *offsetp, 4, byte_order);
14038 *offsetp += 4;
14039 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
14040 *offsetp += 20;
14041 struct_res_ClientIdValue(tvb, offsetp, t, byte_order, f_num_ids);
14042}
14043
14044static void resQueryResourceBytes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14045{
14046 int f_num_specs;
14047 proto_tree_add_item(t, hf_x11_res_QueryResourceBytes_client, tvb, *offsetp, 4, byte_order);
14048 *offsetp += 4;
14049 f_num_specs = tvb_get_uint32(tvb, *offsetp, byte_order);
14050 proto_tree_add_item(t, hf_x11_res_QueryResourceBytes_num_specs, tvb, *offsetp, 4, byte_order);
14051 *offsetp += 4;
14052 struct_res_ResourceIdSpec(tvb, offsetp, t, byte_order, f_num_specs);
14053 length -= f_num_specs * 8;
14054}
14055static void resQueryResourceBytes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14056{
14057 int sequence_number;
14058 int f_num_sizes;
14059
14060 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryResourceBytes");
14061
14062 REPLY(reply);
14063 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14064 *offsetp += 1;
14065 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
14066 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14067 "%d (res-QueryResourceBytes)", sequence_number);
14068 *offsetp += 2;
14069 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14070 *offsetp += 4;
14071 f_num_sizes = tvb_get_uint32(tvb, *offsetp, byte_order);
14072 proto_tree_add_item(t, hf_x11_res_QueryResourceBytes_reply_num_sizes, 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_res_ResourceSizeValue(tvb, offsetp, t, byte_order, f_num_sizes);
14077}
14078static const value_string res_extension_minor[] = {
14079 { 0, "QueryVersion" },
14080 { 1, "QueryClients" },
14081 { 2, "QueryClientResources" },
14082 { 3, "QueryClientPixmapBytes" },
14083 { 4, "QueryClientIds" },
14084 { 5, "QueryResourceBytes" },
14085 { 0, NULL }
14086};
14087static const x11_event_info res_events[] = {
14088 { NULL, NULL }
14089};
14090static const x11_reply_info res_replies[] = {
14091 { 0, resQueryVersion_Reply },
14092 { 1, resQueryClients_Reply },
14093 { 2, resQueryClientResources_Reply },
14094 { 3, resQueryClientPixmapBytes_Reply },
14095 { 4, resQueryClientIds_Reply },
14096 { 5, resQueryResourceBytes_Reply },
14097 { 0, NULL }
14098};
14099
14100static void dispatch_res(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14101{
14102 int minor, length;
14103 minor = CARD8(res_extension_minor);
14104 length = REQUEST_LENGTH();
14105
14106 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
14107 val_to_str(minor, res_extension_minor,
14108 "<Unknown opcode %d>"));
14109 switch (minor) {
14110 case 0:
14111 resQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
14112 break;
14113 case 1:
14114 resQueryClients(tvb, pinfo, offsetp, t, byte_order, length);
14115 break;
14116 case 2:
14117 resQueryClientResources(tvb, pinfo, offsetp, t, byte_order, length);
14118 break;
14119 case 3:
14120 resQueryClientPixmapBytes(tvb, pinfo, offsetp, t, byte_order, length);
14121 break;
14122 case 4:
14123 resQueryClientIds(tvb, pinfo, offsetp, t, byte_order, length);
14124 break;
14125 case 5:
14126 resQueryResourceBytes(tvb, pinfo, offsetp, t, byte_order, length);
14127 break;
14128 /* No need for a default case here, since Unknown is printed above,
14129 and UNDECODED() is taken care of by dissect_x11_request */
14130 }
14131}
14132
14133static void register_res(void)
14134{
14135 set_handler("X-Resource", dispatch_res, res_errors, res_events, NULL, res_replies);
14136}
14137
14138static void screensaverQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14139{
14140 proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_client_major_version, tvb, *offsetp, 1, byte_order);
14141 *offsetp += 1;
14142 proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_client_minor_version, tvb, *offsetp, 1, byte_order);
14143 *offsetp += 1;
14144 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
14145 *offsetp += 2;
14146}
14147static void screensaverQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14148{
14149 int sequence_number;
14150
14151 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
14152
14153 REPLY(reply);
14154 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14155 *offsetp += 1;
14156 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
14157 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14158 "%d (screensaver-QueryVersion)", sequence_number);
14159 *offsetp += 2;
14160 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14161 *offsetp += 4;
14162 proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_reply_server_major_version, tvb, *offsetp, 2, byte_order);
14163 *offsetp += 2;
14164 proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_reply_server_minor_version, tvb, *offsetp, 2, byte_order);
14165 *offsetp += 2;
14166 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
14167 *offsetp += 20;
14168}
14169
14170static void screensaverQueryInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14171{
14172 proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_drawable, tvb, *offsetp, 4, byte_order);
14173 *offsetp += 4;
14174}
14175static void screensaverQueryInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14176{
14177 int sequence_number;
14178
14179 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryInfo");
14180
14181 REPLY(reply);
14182 proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_state, tvb, *offsetp, 1, byte_order);
14183 *offsetp += 1;
14184 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
14185 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14186 "%d (screensaver-QueryInfo)", sequence_number);
14187 *offsetp += 2;
14188 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14189 *offsetp += 4;
14190 proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_saver_window, tvb, *offsetp, 4, byte_order);
14191 *offsetp += 4;
14192 proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_ms_until_server, tvb, *offsetp, 4, byte_order);
14193 *offsetp += 4;
14194 proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_ms_since_user_input, tvb, *offsetp, 4, byte_order);
14195 *offsetp += 4;
14196 proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_event_mask, tvb, *offsetp, 4, byte_order);
14197 *offsetp += 4;
14198 field8(tvb, offsetp, t, hf_x11_screensaver_QueryInfo_reply_kind, byte_order);
14199 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
14200 *offsetp += 7;
14201}
14202
14203static void screensaverSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14204{
14205 proto_tree_add_item(t, hf_x11_screensaver_SelectInput_drawable, tvb, *offsetp, 4, byte_order);
14206 *offsetp += 4;
14207 {
14208 static int* const event_mask_bits [] = {
14209 &hf_x11_screensaver_SelectInput_event_mask_mask_NotifyMask,
14210 &hf_x11_screensaver_SelectInput_event_mask_mask_CycleMask,
14211 NULL
14212 };
14213 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_screensaver_SelectInput_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
14214 }
14215 *offsetp += 4;
14216}
14217
14218static void screensaverSetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14219{
14220 int f_value_mask;
14221 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_drawable, tvb, *offsetp, 4, byte_order);
14222 *offsetp += 4;
14223 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_x, tvb, *offsetp, 2, byte_order);
14224 *offsetp += 2;
14225 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_y, tvb, *offsetp, 2, byte_order);
14226 *offsetp += 2;
14227 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_width, tvb, *offsetp, 2, byte_order);
14228 *offsetp += 2;
14229 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_height, tvb, *offsetp, 2, byte_order);
14230 *offsetp += 2;
14231 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_border_width, tvb, *offsetp, 2, byte_order);
14232 *offsetp += 2;
14233 field8(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_class, byte_order);
14234 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_depth, tvb, *offsetp, 1, byte_order);
14235 *offsetp += 1;
14236 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_visual, tvb, *offsetp, 4, byte_order);
14237 *offsetp += 4;
14238 f_value_mask = tvb_get_uint32(tvb, *offsetp, byte_order);
14239 {
14240 static int* const value_mask_bits [] = {
14241 &hf_x11_screensaver_SetAttributes_value_mask_mask_BackPixmap,
14242 &hf_x11_screensaver_SetAttributes_value_mask_mask_BackPixel,
14243 &hf_x11_screensaver_SetAttributes_value_mask_mask_BorderPixmap,
14244 &hf_x11_screensaver_SetAttributes_value_mask_mask_BorderPixel,
14245 &hf_x11_screensaver_SetAttributes_value_mask_mask_BitGravity,
14246 &hf_x11_screensaver_SetAttributes_value_mask_mask_WinGravity,
14247 &hf_x11_screensaver_SetAttributes_value_mask_mask_BackingStore,
14248 &hf_x11_screensaver_SetAttributes_value_mask_mask_BackingPlanes,
14249 &hf_x11_screensaver_SetAttributes_value_mask_mask_BackingPixel,
14250 &hf_x11_screensaver_SetAttributes_value_mask_mask_OverrideRedirect,
14251 &hf_x11_screensaver_SetAttributes_value_mask_mask_SaveUnder,
14252 &hf_x11_screensaver_SetAttributes_value_mask_mask_EventMask,
14253 &hf_x11_screensaver_SetAttributes_value_mask_mask_DontPropagate,
14254 &hf_x11_screensaver_SetAttributes_value_mask_mask_Colormap,
14255 &hf_x11_screensaver_SetAttributes_value_mask_mask_Cursor,
14256 NULL
14257 };
14258 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_screensaver_SetAttributes_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
14259 }
14260 *offsetp += 4;
14261 if (f_value_mask & (1U << 0)) {
14262 field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_BackPixmap_background_pixmap, byte_order);
14263 }
14264 if (f_value_mask & (1U << 1)) {
14265 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_BackPixel_background_pixel, tvb, *offsetp, 4, byte_order);
14266 *offsetp += 4;
14267 }
14268 if (f_value_mask & (1U << 2)) {
14269 field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_BorderPixmap_border_pixmap, byte_order);
14270 }
14271 if (f_value_mask & (1U << 3)) {
14272 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_BorderPixel_border_pixel, tvb, *offsetp, 4, byte_order);
14273 *offsetp += 4;
14274 }
14275 if (f_value_mask & (1U << 4)) {
14276 field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_BitGravity_bit_gravity, byte_order);
14277 }
14278 if (f_value_mask & (1U << 5)) {
14279 field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_WinGravity_win_gravity, byte_order);
14280 }
14281 if (f_value_mask & (1U << 6)) {
14282 field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_BackingStore_backing_store, byte_order);
14283 }
14284 if (f_value_mask & (1U << 7)) {
14285 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_BackingPlanes_backing_planes, tvb, *offsetp, 4, byte_order);
14286 *offsetp += 4;
14287 }
14288 if (f_value_mask & (1U << 8)) {
14289 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_BackingPixel_backing_pixel, tvb, *offsetp, 4, byte_order);
14290 *offsetp += 4;
14291 }
14292 if (f_value_mask & (1U << 9)) {
14293 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_OverrideRedirect_override_redirect, tvb, *offsetp, 4, byte_order);
14294 *offsetp += 4;
14295 }
14296 if (f_value_mask & (1U << 10)) {
14297 proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_SaveUnder_save_under, tvb, *offsetp, 4, byte_order);
14298 *offsetp += 4;
14299 }
14300 if (f_value_mask & (1U << 11)) {
14301 {
14302 static int* const event_mask_bits [] = {
14303 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_KeyPress,
14304 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_KeyRelease,
14305 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ButtonPress,
14306 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ButtonRelease,
14307 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_EnterWindow,
14308 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_LeaveWindow,
14309 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_PointerMotion,
14310 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_PointerMotionHint,
14311 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button1Motion,
14312 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button2Motion,
14313 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button3Motion,
14314 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button4Motion,
14315 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Button5Motion,
14316 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ButtonMotion,
14317 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_KeymapState,
14318 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_Exposure,
14319 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_VisibilityChange,
14320 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_StructureNotify,
14321 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ResizeRedirect,
14322 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_SubstructureNotify,
14323 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_SubstructureRedirect,
14324 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_FocusChange,
14325 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_PropertyChange,
14326 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_ColorMapChange,
14327 &hf_x11_screensaver_SetAttributes_EventMask_event_mask_mask_OwnerGrabButton,
14328 NULL
14329 };
14330 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_screensaver_SetAttributes_EventMask_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
14331 }
14332 *offsetp += 4;
14333 }
14334 if (f_value_mask & (1U << 12)) {
14335 {
14336 static int* const do_not_propogate_mask_bits [] = {
14337 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_KeyPress,
14338 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_KeyRelease,
14339 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ButtonPress,
14340 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ButtonRelease,
14341 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_EnterWindow,
14342 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_LeaveWindow,
14343 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_PointerMotion,
14344 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_PointerMotionHint,
14345 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button1Motion,
14346 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button2Motion,
14347 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button3Motion,
14348 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button4Motion,
14349 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Button5Motion,
14350 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ButtonMotion,
14351 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_KeymapState,
14352 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_Exposure,
14353 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_VisibilityChange,
14354 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_StructureNotify,
14355 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ResizeRedirect,
14356 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_SubstructureNotify,
14357 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_SubstructureRedirect,
14358 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_FocusChange,
14359 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_PropertyChange,
14360 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_ColorMapChange,
14361 &hf_x11_screensaver_SetAttributes_DontPropagate_do_not_propogate_mask_mask_OwnerGrabButton,
14362 NULL
14363 };
14364 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);
14365 }
14366 *offsetp += 4;
14367 }
14368 if (f_value_mask & (1U << 13)) {
14369 field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_Colormap_colormap, byte_order);
14370 }
14371 if (f_value_mask & (1U << 14)) {
14372 field32(tvb, offsetp, t, hf_x11_screensaver_SetAttributes_Cursor_cursor, byte_order);
14373 }
14374}
14375
14376static void screensaverUnsetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14377{
14378 proto_tree_add_item(t, hf_x11_screensaver_UnsetAttributes_drawable, tvb, *offsetp, 4, byte_order);
14379 *offsetp += 4;
14380}
14381
14382static void screensaverSuspend(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14383{
14384 proto_tree_add_item(t, hf_x11_screensaver_Suspend_suspend, tvb, *offsetp, 4, byte_order);
14385 *offsetp += 4;
14386}
14387static const value_string screensaver_extension_minor[] = {
14388 { 0, "QueryVersion" },
14389 { 1, "QueryInfo" },
14390 { 2, "SelectInput" },
14391 { 3, "SetAttributes" },
14392 { 4, "UnsetAttributes" },
14393 { 5, "Suspend" },
14394 { 0, NULL }
14395};
14396static const x11_event_info screensaver_events[] = {
14397 { NULL, NULL }
14398};
14399static const x11_reply_info screensaver_replies[] = {
14400 { 0, screensaverQueryVersion_Reply },
14401 { 1, screensaverQueryInfo_Reply },
14402 { 0, NULL }
14403};
14404
14405static void dispatch_screensaver(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14406{
14407 int minor, length;
14408 minor = CARD8(screensaver_extension_minor);
14409 length = REQUEST_LENGTH();
14410
14411 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
14412 val_to_str(minor, screensaver_extension_minor,
14413 "<Unknown opcode %d>"));
14414 switch (minor) {
14415 case 0:
14416 screensaverQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
14417 break;
14418 case 1:
14419 screensaverQueryInfo(tvb, pinfo, offsetp, t, byte_order, length);
14420 break;
14421 case 2:
14422 screensaverSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
14423 break;
14424 case 3:
14425 screensaverSetAttributes(tvb, pinfo, offsetp, t, byte_order, length);
14426 break;
14427 case 4:
14428 screensaverUnsetAttributes(tvb, pinfo, offsetp, t, byte_order, length);
14429 break;
14430 case 5:
14431 screensaverSuspend(tvb, pinfo, offsetp, t, byte_order, length);
14432 break;
14433 /* No need for a default case here, since Unknown is printed above,
14434 and UNDECODED() is taken care of by dissect_x11_request */
14435 }
14436}
14437
14438static void register_screensaver(void)
14439{
14440 set_handler("MIT-SCREEN-SAVER", dispatch_screensaver, screensaver_errors, screensaver_events, NULL, screensaver_replies);
14441}
14442
14443static void shapeQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
14444{
14445}
14446static void shapeQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14447{
14448 int sequence_number;
14449
14450 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
14451
14452 REPLY(reply);
14453 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14454 *offsetp += 1;
14455 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
14456 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14457 "%d (shape-QueryVersion)", sequence_number);
14458 *offsetp += 2;
14459 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14460 *offsetp += 4;
14461 proto_tree_add_item(t, hf_x11_shape_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
14462 *offsetp += 2;
14463 proto_tree_add_item(t, hf_x11_shape_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
14464 *offsetp += 2;
14465}
14466
14467static void shapeRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14468{
14469 field8(tvb, offsetp, t, hf_x11_shape_Rectangles_operation, byte_order);
14470 field8(tvb, offsetp, t, hf_x11_shape_Rectangles_destination_kind, byte_order);
14471 field8(tvb, offsetp, t, hf_x11_shape_Rectangles_ordering, byte_order);
14472 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14473 *offsetp += 1;
14474 proto_tree_add_item(t, hf_x11_shape_Rectangles_destination_window, tvb, *offsetp, 4, byte_order);
14475 *offsetp += 4;
14476 proto_tree_add_item(t, hf_x11_shape_Rectangles_x_offset, tvb, *offsetp, 2, byte_order);
14477 *offsetp += 2;
14478 proto_tree_add_item(t, hf_x11_shape_Rectangles_y_offset, tvb, *offsetp, 2, byte_order);
14479 *offsetp += 2;
14480 struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 16) / 8);
14481}
14482
14483static void shapeMask(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14484{
14485 field8(tvb, offsetp, t, hf_x11_shape_Mask_operation, byte_order);
14486 field8(tvb, offsetp, t, hf_x11_shape_Mask_destination_kind, byte_order);
14487 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
14488 *offsetp += 2;
14489 proto_tree_add_item(t, hf_x11_shape_Mask_destination_window, tvb, *offsetp, 4, byte_order);
14490 *offsetp += 4;
14491 proto_tree_add_item(t, hf_x11_shape_Mask_x_offset, tvb, *offsetp, 2, byte_order);
14492 *offsetp += 2;
14493 proto_tree_add_item(t, hf_x11_shape_Mask_y_offset, tvb, *offsetp, 2, byte_order);
14494 *offsetp += 2;
14495 field32(tvb, offsetp, t, hf_x11_shape_Mask_source_bitmap, byte_order);
14496}
14497
14498static void shapeCombine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14499{
14500 field8(tvb, offsetp, t, hf_x11_shape_Combine_operation, byte_order);
14501 field8(tvb, offsetp, t, hf_x11_shape_Combine_destination_kind, byte_order);
14502 field8(tvb, offsetp, t, hf_x11_shape_Combine_source_kind, byte_order);
14503 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14504 *offsetp += 1;
14505 proto_tree_add_item(t, hf_x11_shape_Combine_destination_window, tvb, *offsetp, 4, byte_order);
14506 *offsetp += 4;
14507 proto_tree_add_item(t, hf_x11_shape_Combine_x_offset, tvb, *offsetp, 2, byte_order);
14508 *offsetp += 2;
14509 proto_tree_add_item(t, hf_x11_shape_Combine_y_offset, tvb, *offsetp, 2, byte_order);
14510 *offsetp += 2;
14511 proto_tree_add_item(t, hf_x11_shape_Combine_source_window, tvb, *offsetp, 4, byte_order);
14512 *offsetp += 4;
14513}
14514
14515static void shapeOffset(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14516{
14517 field8(tvb, offsetp, t, hf_x11_shape_Offset_destination_kind, byte_order);
14518 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14519 *offsetp += 3;
14520 proto_tree_add_item(t, hf_x11_shape_Offset_destination_window, tvb, *offsetp, 4, byte_order);
14521 *offsetp += 4;
14522 proto_tree_add_item(t, hf_x11_shape_Offset_x_offset, tvb, *offsetp, 2, byte_order);
14523 *offsetp += 2;
14524 proto_tree_add_item(t, hf_x11_shape_Offset_y_offset, tvb, *offsetp, 2, byte_order);
14525 *offsetp += 2;
14526}
14527
14528static void shapeQueryExtents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14529{
14530 proto_tree_add_item(t, hf_x11_shape_QueryExtents_destination_window, tvb, *offsetp, 4, byte_order);
14531 *offsetp += 4;
14532}
14533static void shapeQueryExtents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14534{
14535 int sequence_number;
14536
14537 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryExtents");
14538
14539 REPLY(reply);
14540 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14541 *offsetp += 1;
14542 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
14543 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14544 "%d (shape-QueryExtents)", sequence_number);
14545 *offsetp += 2;
14546 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14547 *offsetp += 4;
14548 proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shaped, tvb, *offsetp, 1, byte_order);
14549 *offsetp += 1;
14550 proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shaped, tvb, *offsetp, 1, byte_order);
14551 *offsetp += 1;
14552 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
14553 *offsetp += 2;
14554 proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_x, tvb, *offsetp, 2, byte_order);
14555 *offsetp += 2;
14556 proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_y, tvb, *offsetp, 2, byte_order);
14557 *offsetp += 2;
14558 proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_width, tvb, *offsetp, 2, byte_order);
14559 *offsetp += 2;
14560 proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_height, tvb, *offsetp, 2, byte_order);
14561 *offsetp += 2;
14562 proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_x, tvb, *offsetp, 2, byte_order);
14563 *offsetp += 2;
14564 proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_y, tvb, *offsetp, 2, byte_order);
14565 *offsetp += 2;
14566 proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_width, tvb, *offsetp, 2, byte_order);
14567 *offsetp += 2;
14568 proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_height, tvb, *offsetp, 2, byte_order);
14569 *offsetp += 2;
14570}
14571
14572static void shapeSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14573{
14574 proto_tree_add_item(t, hf_x11_shape_SelectInput_destination_window, tvb, *offsetp, 4, byte_order);
14575 *offsetp += 4;
14576 proto_tree_add_item(t, hf_x11_shape_SelectInput_enable, tvb, *offsetp, 1, byte_order);
14577 *offsetp += 1;
14578 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14579 *offsetp += 3;
14580}
14581
14582static void shapeInputSelected(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14583{
14584 proto_tree_add_item(t, hf_x11_shape_InputSelected_destination_window, tvb, *offsetp, 4, byte_order);
14585 *offsetp += 4;
14586}
14587static void shapeInputSelected_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14588{
14589 int sequence_number;
14590
14591 col_append_fstr(pinfo->cinfo, COL_INFO, "-InputSelected");
14592
14593 REPLY(reply);
14594 proto_tree_add_item(t, hf_x11_shape_InputSelected_reply_enabled, tvb, *offsetp, 1, byte_order);
14595 *offsetp += 1;
14596 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
14597 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14598 "%d (shape-InputSelected)", sequence_number);
14599 *offsetp += 2;
14600 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14601 *offsetp += 4;
14602}
14603
14604static void shapeGetRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14605{
14606 proto_tree_add_item(t, hf_x11_shape_GetRectangles_window, tvb, *offsetp, 4, byte_order);
14607 *offsetp += 4;
14608 field8(tvb, offsetp, t, hf_x11_shape_GetRectangles_source_kind, byte_order);
14609 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14610 *offsetp += 3;
14611}
14612static void shapeGetRectangles_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14613{
14614 int sequence_number;
14615 int f_rectangles_len;
14616
14617 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetRectangles");
14618
14619 REPLY(reply);
14620 field8(tvb, offsetp, t, hf_x11_shape_GetRectangles_reply_ordering, byte_order);
14621 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
14622 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14623 "%d (shape-GetRectangles)", sequence_number);
14624 *offsetp += 2;
14625 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14626 *offsetp += 4;
14627 f_rectangles_len = tvb_get_uint32(tvb, *offsetp, byte_order);
14628 proto_tree_add_item(t, hf_x11_shape_GetRectangles_reply_rectangles_len, tvb, *offsetp, 4, byte_order);
14629 *offsetp += 4;
14630 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
14631 *offsetp += 20;
14632 struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, f_rectangles_len);
14633}
14634static const value_string shape_extension_minor[] = {
14635 { 0, "QueryVersion" },
14636 { 1, "Rectangles" },
14637 { 2, "Mask" },
14638 { 3, "Combine" },
14639 { 4, "Offset" },
14640 { 5, "QueryExtents" },
14641 { 6, "SelectInput" },
14642 { 7, "InputSelected" },
14643 { 8, "GetRectangles" },
14644 { 0, NULL }
14645};
14646static const x11_event_info shape_events[] = {
14647 { NULL, NULL }
14648};
14649static const x11_reply_info shape_replies[] = {
14650 { 0, shapeQueryVersion_Reply },
14651 { 5, shapeQueryExtents_Reply },
14652 { 7, shapeInputSelected_Reply },
14653 { 8, shapeGetRectangles_Reply },
14654 { 0, NULL }
14655};
14656
14657static void dispatch_shape(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14658{
14659 int minor, length;
14660 minor = CARD8(shape_extension_minor);
14661 length = REQUEST_LENGTH();
14662
14663 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
14664 val_to_str(minor, shape_extension_minor,
14665 "<Unknown opcode %d>"));
14666 switch (minor) {
14667 case 0:
14668 shapeQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
14669 break;
14670 case 1:
14671 shapeRectangles(tvb, pinfo, offsetp, t, byte_order, length);
14672 break;
14673 case 2:
14674 shapeMask(tvb, pinfo, offsetp, t, byte_order, length);
14675 break;
14676 case 3:
14677 shapeCombine(tvb, pinfo, offsetp, t, byte_order, length);
14678 break;
14679 case 4:
14680 shapeOffset(tvb, pinfo, offsetp, t, byte_order, length);
14681 break;
14682 case 5:
14683 shapeQueryExtents(tvb, pinfo, offsetp, t, byte_order, length);
14684 break;
14685 case 6:
14686 shapeSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
14687 break;
14688 case 7:
14689 shapeInputSelected(tvb, pinfo, offsetp, t, byte_order, length);
14690 break;
14691 case 8:
14692 shapeGetRectangles(tvb, pinfo, offsetp, t, byte_order, length);
14693 break;
14694 /* No need for a default case here, since Unknown is printed above,
14695 and UNDECODED() is taken care of by dissect_x11_request */
14696 }
14697}
14698
14699static void register_shape(void)
14700{
14701 set_handler("SHAPE", dispatch_shape, shape_errors, shape_events, NULL, shape_replies);
14702}
14703
14704static void shmQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
14705{
14706}
14707static void shmQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14708{
14709 int sequence_number;
14710
14711 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
14712
14713 REPLY(reply);
14714 proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_shared_pixmaps, tvb, *offsetp, 1, byte_order);
14715 *offsetp += 1;
14716 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
14717 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14718 "%d (shm-QueryVersion)", sequence_number);
14719 *offsetp += 2;
14720 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14721 *offsetp += 4;
14722 proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
14723 *offsetp += 2;
14724 proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
14725 *offsetp += 2;
14726 proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_uid, tvb, *offsetp, 2, byte_order);
14727 *offsetp += 2;
14728 proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_gid, tvb, *offsetp, 2, byte_order);
14729 *offsetp += 2;
14730 proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_pixmap_format, tvb, *offsetp, 1, byte_order);
14731 *offsetp += 1;
14732 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
14733 *offsetp += 15;
14734}
14735
14736static void shmAttach(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14737{
14738 proto_tree_add_item(t, hf_x11_shm_Attach_shmseg, tvb, *offsetp, 4, byte_order);
14739 *offsetp += 4;
14740 proto_tree_add_item(t, hf_x11_shm_Attach_shmid, tvb, *offsetp, 4, byte_order);
14741 *offsetp += 4;
14742 proto_tree_add_item(t, hf_x11_shm_Attach_read_only, tvb, *offsetp, 1, byte_order);
14743 *offsetp += 1;
14744 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14745 *offsetp += 3;
14746}
14747
14748static void shmDetach(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14749{
14750 proto_tree_add_item(t, hf_x11_shm_Detach_shmseg, tvb, *offsetp, 4, byte_order);
14751 *offsetp += 4;
14752}
14753
14754static void shmPutImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14755{
14756 proto_tree_add_item(t, hf_x11_shm_PutImage_drawable, tvb, *offsetp, 4, byte_order);
14757 *offsetp += 4;
14758 proto_tree_add_item(t, hf_x11_shm_PutImage_gc, tvb, *offsetp, 4, byte_order);
14759 *offsetp += 4;
14760 proto_tree_add_item(t, hf_x11_shm_PutImage_total_width, tvb, *offsetp, 2, byte_order);
14761 *offsetp += 2;
14762 proto_tree_add_item(t, hf_x11_shm_PutImage_total_height, tvb, *offsetp, 2, byte_order);
14763 *offsetp += 2;
14764 proto_tree_add_item(t, hf_x11_shm_PutImage_src_x, tvb, *offsetp, 2, byte_order);
14765 *offsetp += 2;
14766 proto_tree_add_item(t, hf_x11_shm_PutImage_src_y, tvb, *offsetp, 2, byte_order);
14767 *offsetp += 2;
14768 proto_tree_add_item(t, hf_x11_shm_PutImage_src_width, tvb, *offsetp, 2, byte_order);
14769 *offsetp += 2;
14770 proto_tree_add_item(t, hf_x11_shm_PutImage_src_height, tvb, *offsetp, 2, byte_order);
14771 *offsetp += 2;
14772 proto_tree_add_item(t, hf_x11_shm_PutImage_dst_x, tvb, *offsetp, 2, byte_order);
14773 *offsetp += 2;
14774 proto_tree_add_item(t, hf_x11_shm_PutImage_dst_y, tvb, *offsetp, 2, byte_order);
14775 *offsetp += 2;
14776 proto_tree_add_item(t, hf_x11_shm_PutImage_depth, tvb, *offsetp, 1, byte_order);
14777 *offsetp += 1;
14778 proto_tree_add_item(t, hf_x11_shm_PutImage_format, tvb, *offsetp, 1, byte_order);
14779 *offsetp += 1;
14780 proto_tree_add_item(t, hf_x11_shm_PutImage_send_event, tvb, *offsetp, 1, byte_order);
14781 *offsetp += 1;
14782 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14783 *offsetp += 1;
14784 proto_tree_add_item(t, hf_x11_shm_PutImage_shmseg, tvb, *offsetp, 4, byte_order);
14785 *offsetp += 4;
14786 proto_tree_add_item(t, hf_x11_shm_PutImage_offset, tvb, *offsetp, 4, byte_order);
14787 *offsetp += 4;
14788}
14789
14790static void shmGetImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14791{
14792 proto_tree_add_item(t, hf_x11_shm_GetImage_drawable, tvb, *offsetp, 4, byte_order);
14793 *offsetp += 4;
14794 proto_tree_add_item(t, hf_x11_shm_GetImage_x, tvb, *offsetp, 2, byte_order);
14795 *offsetp += 2;
14796 proto_tree_add_item(t, hf_x11_shm_GetImage_y, tvb, *offsetp, 2, byte_order);
14797 *offsetp += 2;
14798 proto_tree_add_item(t, hf_x11_shm_GetImage_width, tvb, *offsetp, 2, byte_order);
14799 *offsetp += 2;
14800 proto_tree_add_item(t, hf_x11_shm_GetImage_height, tvb, *offsetp, 2, byte_order);
14801 *offsetp += 2;
14802 proto_tree_add_item(t, hf_x11_shm_GetImage_plane_mask, tvb, *offsetp, 4, byte_order);
14803 *offsetp += 4;
14804 proto_tree_add_item(t, hf_x11_shm_GetImage_format, tvb, *offsetp, 1, byte_order);
14805 *offsetp += 1;
14806 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14807 *offsetp += 3;
14808 proto_tree_add_item(t, hf_x11_shm_GetImage_shmseg, tvb, *offsetp, 4, byte_order);
14809 *offsetp += 4;
14810 proto_tree_add_item(t, hf_x11_shm_GetImage_offset, tvb, *offsetp, 4, byte_order);
14811 *offsetp += 4;
14812}
14813static void shmGetImage_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14814{
14815 int sequence_number;
14816
14817 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetImage");
14818
14819 REPLY(reply);
14820 proto_tree_add_item(t, hf_x11_shm_GetImage_reply_depth, tvb, *offsetp, 1, byte_order);
14821 *offsetp += 1;
14822 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
14823 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14824 "%d (shm-GetImage)", sequence_number);
14825 *offsetp += 2;
14826 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14827 *offsetp += 4;
14828 proto_tree_add_item(t, hf_x11_shm_GetImage_reply_visual, tvb, *offsetp, 4, byte_order);
14829 *offsetp += 4;
14830 proto_tree_add_item(t, hf_x11_shm_GetImage_reply_size, tvb, *offsetp, 4, byte_order);
14831 *offsetp += 4;
14832}
14833
14834static void shmCreatePixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14835{
14836 proto_tree_add_item(t, hf_x11_shm_CreatePixmap_pid, tvb, *offsetp, 4, byte_order);
14837 *offsetp += 4;
14838 proto_tree_add_item(t, hf_x11_shm_CreatePixmap_drawable, tvb, *offsetp, 4, byte_order);
14839 *offsetp += 4;
14840 proto_tree_add_item(t, hf_x11_shm_CreatePixmap_width, tvb, *offsetp, 2, byte_order);
14841 *offsetp += 2;
14842 proto_tree_add_item(t, hf_x11_shm_CreatePixmap_height, tvb, *offsetp, 2, byte_order);
14843 *offsetp += 2;
14844 proto_tree_add_item(t, hf_x11_shm_CreatePixmap_depth, tvb, *offsetp, 1, byte_order);
14845 *offsetp += 1;
14846 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14847 *offsetp += 3;
14848 proto_tree_add_item(t, hf_x11_shm_CreatePixmap_shmseg, tvb, *offsetp, 4, byte_order);
14849 *offsetp += 4;
14850 proto_tree_add_item(t, hf_x11_shm_CreatePixmap_offset, tvb, *offsetp, 4, byte_order);
14851 *offsetp += 4;
14852}
14853
14854static void shmAttachFd(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14855{
14856 proto_tree_add_item(t, hf_x11_shm_AttachFd_shmseg, tvb, *offsetp, 4, byte_order);
14857 *offsetp += 4;
14858 proto_tree_add_item(t, hf_x11_shm_AttachFd_read_only, tvb, *offsetp, 1, byte_order);
14859 *offsetp += 1;
14860 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14861 *offsetp += 3;
14862}
14863
14864static void shmCreateSegment(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14865{
14866 proto_tree_add_item(t, hf_x11_shm_CreateSegment_shmseg, tvb, *offsetp, 4, byte_order);
14867 *offsetp += 4;
14868 proto_tree_add_item(t, hf_x11_shm_CreateSegment_size, tvb, *offsetp, 4, byte_order);
14869 *offsetp += 4;
14870 proto_tree_add_item(t, hf_x11_shm_CreateSegment_read_only, tvb, *offsetp, 1, byte_order);
14871 *offsetp += 1;
14872 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
14873 *offsetp += 3;
14874}
14875static void shmCreateSegment_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14876{
14877 int sequence_number;
14878
14879 col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateSegment");
14880
14881 REPLY(reply);
14882 proto_tree_add_item(t, hf_x11_shm_CreateSegment_reply_nfd, tvb, *offsetp, 1, byte_order);
14883 *offsetp += 1;
14884 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
14885 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14886 "%d (shm-CreateSegment)", sequence_number);
14887 *offsetp += 2;
14888 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14889 *offsetp += 4;
14890 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
14891 *offsetp += 24;
14892}
14893static const value_string shm_extension_minor[] = {
14894 { 0, "QueryVersion" },
14895 { 1, "Attach" },
14896 { 2, "Detach" },
14897 { 3, "PutImage" },
14898 { 4, "GetImage" },
14899 { 5, "CreatePixmap" },
14900 { 6, "AttachFd" },
14901 { 7, "CreateSegment" },
14902 { 0, NULL }
14903};
14904static const x11_event_info shm_events[] = {
14905 { NULL, NULL }
14906};
14907static const x11_reply_info shm_replies[] = {
14908 { 0, shmQueryVersion_Reply },
14909 { 4, shmGetImage_Reply },
14910 { 7, shmCreateSegment_Reply },
14911 { 0, NULL }
14912};
14913
14914static void dispatch_shm(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14915{
14916 int minor, length;
14917 minor = CARD8(shm_extension_minor);
14918 length = REQUEST_LENGTH();
14919
14920 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
14921 val_to_str(minor, shm_extension_minor,
14922 "<Unknown opcode %d>"));
14923 switch (minor) {
14924 case 0:
14925 shmQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
14926 break;
14927 case 1:
14928 shmAttach(tvb, pinfo, offsetp, t, byte_order, length);
14929 break;
14930 case 2:
14931 shmDetach(tvb, pinfo, offsetp, t, byte_order, length);
14932 break;
14933 case 3:
14934 shmPutImage(tvb, pinfo, offsetp, t, byte_order, length);
14935 break;
14936 case 4:
14937 shmGetImage(tvb, pinfo, offsetp, t, byte_order, length);
14938 break;
14939 case 5:
14940 shmCreatePixmap(tvb, pinfo, offsetp, t, byte_order, length);
14941 break;
14942 case 6:
14943 shmAttachFd(tvb, pinfo, offsetp, t, byte_order, length);
14944 break;
14945 case 7:
14946 shmCreateSegment(tvb, pinfo, offsetp, t, byte_order, length);
14947 break;
14948 /* No need for a default case here, since Unknown is printed above,
14949 and UNDECODED() is taken care of by dissect_x11_request */
14950 }
14951}
14952
14953static void register_shm(void)
14954{
14955 set_handler("MIT-SHM", dispatch_shm, shm_errors, shm_events, NULL, shm_replies);
14956}
14957
14958static void syncInitialize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
14959{
14960 proto_tree_add_item(t, hf_x11_sync_Initialize_desired_major_version, tvb, *offsetp, 1, byte_order);
14961 *offsetp += 1;
14962 proto_tree_add_item(t, hf_x11_sync_Initialize_desired_minor_version, tvb, *offsetp, 1, byte_order);
14963 *offsetp += 1;
14964}
14965static void syncInitialize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14966{
14967 int sequence_number;
14968
14969 col_append_fstr(pinfo->cinfo, COL_INFO, "-Initialize");
14970
14971 REPLY(reply);
14972 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
14973 *offsetp += 1;
14974 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
14975 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
14976 "%d (sync-Initialize)", sequence_number);
14977 *offsetp += 2;
14978 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
14979 *offsetp += 4;
14980 proto_tree_add_item(t, hf_x11_sync_Initialize_reply_major_version, tvb, *offsetp, 1, byte_order);
14981 *offsetp += 1;
14982 proto_tree_add_item(t, hf_x11_sync_Initialize_reply_minor_version, tvb, *offsetp, 1, byte_order);
14983 *offsetp += 1;
14984 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
14985 *offsetp += 22;
14986}
14987
14988static void syncListSystemCounters(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
14989{
14990}
14991static void syncListSystemCounters_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
14992{
14993 int sequence_number;
14994 int f_counters_len;
14995
14996 col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSystemCounters");
14997
14998 REPLY(reply);
14999 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15000 *offsetp += 1;
15001 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15002 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15003 "%d (sync-ListSystemCounters)", sequence_number);
15004 *offsetp += 2;
15005 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15006 *offsetp += 4;
15007 f_counters_len = tvb_get_uint32(tvb, *offsetp, byte_order);
15008 proto_tree_add_item(t, hf_x11_sync_ListSystemCounters_reply_counters_len, tvb, *offsetp, 4, byte_order);
15009 *offsetp += 4;
15010 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
15011 *offsetp += 20;
15012 struct_sync_SYSTEMCOUNTER(tvb, offsetp, t, byte_order, f_counters_len);
15013}
15014
15015static void syncCreateCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15016{
15017 proto_tree_add_item(t, hf_x11_sync_CreateCounter_id, tvb, *offsetp, 4, byte_order);
15018 *offsetp += 4;
15019 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
15020}
15021
15022static void syncDestroyCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15023{
15024 proto_tree_add_item(t, hf_x11_sync_DestroyCounter_counter, tvb, *offsetp, 4, byte_order);
15025 *offsetp += 4;
15026}
15027
15028static void syncQueryCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15029{
15030 proto_tree_add_item(t, hf_x11_sync_QueryCounter_counter, tvb, *offsetp, 4, byte_order);
15031 *offsetp += 4;
15032}
15033static void syncQueryCounter_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15034{
15035 int sequence_number;
15036
15037 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryCounter");
15038
15039 REPLY(reply);
15040 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15041 *offsetp += 1;
15042 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15043 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15044 "%d (sync-QueryCounter)", sequence_number);
15045 *offsetp += 2;
15046 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15047 *offsetp += 4;
15048 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
15049}
15050
15051static void syncAwait(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15052{
15053 struct_sync_WAITCONDITION(tvb, offsetp, t, byte_order, (length - 4) / 28);
15054}
15055
15056static void syncChangeCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15057{
15058 proto_tree_add_item(t, hf_x11_sync_ChangeCounter_counter, tvb, *offsetp, 4, byte_order);
15059 *offsetp += 4;
15060 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
15061}
15062
15063static void syncSetCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15064{
15065 proto_tree_add_item(t, hf_x11_sync_SetCounter_counter, tvb, *offsetp, 4, byte_order);
15066 *offsetp += 4;
15067 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
15068}
15069
15070static void syncCreateAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15071{
15072 int f_value_mask;
15073 proto_tree_add_item(t, hf_x11_sync_CreateAlarm_id, tvb, *offsetp, 4, byte_order);
15074 *offsetp += 4;
15075 f_value_mask = tvb_get_uint32(tvb, *offsetp, byte_order);
15076 {
15077 static int* const value_mask_bits [] = {
15078 &hf_x11_sync_CreateAlarm_value_mask_mask_Counter,
15079 &hf_x11_sync_CreateAlarm_value_mask_mask_ValueType,
15080 &hf_x11_sync_CreateAlarm_value_mask_mask_Value,
15081 &hf_x11_sync_CreateAlarm_value_mask_mask_TestType,
15082 &hf_x11_sync_CreateAlarm_value_mask_mask_Delta,
15083 &hf_x11_sync_CreateAlarm_value_mask_mask_Events,
15084 NULL
15085 };
15086 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_sync_CreateAlarm_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
15087 }
15088 *offsetp += 4;
15089 if (f_value_mask & (1U << 0)) {
15090 proto_tree_add_item(t, hf_x11_sync_CreateAlarm_Counter_counter, tvb, *offsetp, 4, byte_order);
15091 *offsetp += 4;
15092 }
15093 if (f_value_mask & (1U << 1)) {
15094 field32(tvb, offsetp, t, hf_x11_sync_CreateAlarm_ValueType_valueType, byte_order);
15095 }
15096 if (f_value_mask & (1U << 2)) {
15097 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
15098 }
15099 if (f_value_mask & (1U << 3)) {
15100 field32(tvb, offsetp, t, hf_x11_sync_CreateAlarm_TestType_testType, byte_order);
15101 }
15102 if (f_value_mask & (1U << 4)) {
15103 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
15104 }
15105 if (f_value_mask & (1U << 5)) {
15106 proto_tree_add_item(t, hf_x11_sync_CreateAlarm_Events_events, tvb, *offsetp, 4, byte_order);
15107 *offsetp += 4;
15108 }
15109}
15110
15111static void syncChangeAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15112{
15113 int f_value_mask;
15114 proto_tree_add_item(t, hf_x11_sync_ChangeAlarm_id, tvb, *offsetp, 4, byte_order);
15115 *offsetp += 4;
15116 f_value_mask = tvb_get_uint32(tvb, *offsetp, byte_order);
15117 {
15118 static int* const value_mask_bits [] = {
15119 &hf_x11_sync_ChangeAlarm_value_mask_mask_Counter,
15120 &hf_x11_sync_ChangeAlarm_value_mask_mask_ValueType,
15121 &hf_x11_sync_ChangeAlarm_value_mask_mask_Value,
15122 &hf_x11_sync_ChangeAlarm_value_mask_mask_TestType,
15123 &hf_x11_sync_ChangeAlarm_value_mask_mask_Delta,
15124 &hf_x11_sync_ChangeAlarm_value_mask_mask_Events,
15125 NULL
15126 };
15127 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_sync_ChangeAlarm_value_mask, ett_x11_rectangle, value_mask_bits, byte_order);
15128 }
15129 *offsetp += 4;
15130 if (f_value_mask & (1U << 0)) {
15131 proto_tree_add_item(t, hf_x11_sync_ChangeAlarm_Counter_counter, tvb, *offsetp, 4, byte_order);
15132 *offsetp += 4;
15133 }
15134 if (f_value_mask & (1U << 1)) {
15135 field32(tvb, offsetp, t, hf_x11_sync_ChangeAlarm_ValueType_valueType, byte_order);
15136 }
15137 if (f_value_mask & (1U << 2)) {
15138 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
15139 }
15140 if (f_value_mask & (1U << 3)) {
15141 field32(tvb, offsetp, t, hf_x11_sync_ChangeAlarm_TestType_testType, byte_order);
15142 }
15143 if (f_value_mask & (1U << 4)) {
15144 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
15145 }
15146 if (f_value_mask & (1U << 5)) {
15147 proto_tree_add_item(t, hf_x11_sync_ChangeAlarm_Events_events, tvb, *offsetp, 4, byte_order);
15148 *offsetp += 4;
15149 }
15150}
15151
15152static void syncDestroyAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15153{
15154 proto_tree_add_item(t, hf_x11_sync_DestroyAlarm_alarm, tvb, *offsetp, 4, byte_order);
15155 *offsetp += 4;
15156}
15157
15158static void syncQueryAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15159{
15160 proto_tree_add_item(t, hf_x11_sync_QueryAlarm_alarm, tvb, *offsetp, 4, byte_order);
15161 *offsetp += 4;
15162}
15163static void syncQueryAlarm_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15164{
15165 int sequence_number;
15166
15167 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryAlarm");
15168
15169 REPLY(reply);
15170 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15171 *offsetp += 1;
15172 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15173 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15174 "%d (sync-QueryAlarm)", sequence_number);
15175 *offsetp += 2;
15176 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15177 *offsetp += 4;
15178 struct_sync_TRIGGER(tvb, offsetp, t, byte_order, 1);
15179 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
15180 proto_tree_add_item(t, hf_x11_sync_QueryAlarm_reply_events, tvb, *offsetp, 1, byte_order);
15181 *offsetp += 1;
15182 field8(tvb, offsetp, t, hf_x11_sync_QueryAlarm_reply_state, byte_order);
15183 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
15184 *offsetp += 2;
15185}
15186
15187static void syncSetPriority(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15188{
15189 proto_tree_add_item(t, hf_x11_sync_SetPriority_id, tvb, *offsetp, 4, byte_order);
15190 *offsetp += 4;
15191 proto_tree_add_item(t, hf_x11_sync_SetPriority_priority, tvb, *offsetp, 4, byte_order);
15192 *offsetp += 4;
15193}
15194
15195static void syncGetPriority(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15196{
15197 proto_tree_add_item(t, hf_x11_sync_GetPriority_id, tvb, *offsetp, 4, byte_order);
15198 *offsetp += 4;
15199}
15200static void syncGetPriority_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15201{
15202 int sequence_number;
15203
15204 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPriority");
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_uint16(tvb, *offsetp, byte_order);
15210 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15211 "%d (sync-GetPriority)", 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_sync_GetPriority_reply_priority, tvb, *offsetp, 4, byte_order);
15216 *offsetp += 4;
15217}
15218
15219static void syncCreateFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15220{
15221 proto_tree_add_item(t, hf_x11_sync_CreateFence_drawable, tvb, *offsetp, 4, byte_order);
15222 *offsetp += 4;
15223 proto_tree_add_item(t, hf_x11_sync_CreateFence_fence, tvb, *offsetp, 4, byte_order);
15224 *offsetp += 4;
15225 proto_tree_add_item(t, hf_x11_sync_CreateFence_initially_triggered, tvb, *offsetp, 1, byte_order);
15226 *offsetp += 1;
15227}
15228
15229static void syncTriggerFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15230{
15231 proto_tree_add_item(t, hf_x11_sync_TriggerFence_fence, tvb, *offsetp, 4, byte_order);
15232 *offsetp += 4;
15233}
15234
15235static void syncResetFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15236{
15237 proto_tree_add_item(t, hf_x11_sync_ResetFence_fence, tvb, *offsetp, 4, byte_order);
15238 *offsetp += 4;
15239}
15240
15241static void syncDestroyFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15242{
15243 proto_tree_add_item(t, hf_x11_sync_DestroyFence_fence, tvb, *offsetp, 4, byte_order);
15244 *offsetp += 4;
15245}
15246
15247static void syncQueryFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15248{
15249 proto_tree_add_item(t, hf_x11_sync_QueryFence_fence, tvb, *offsetp, 4, byte_order);
15250 *offsetp += 4;
15251}
15252static void syncQueryFence_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15253{
15254 int sequence_number;
15255
15256 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryFence");
15257
15258 REPLY(reply);
15259 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15260 *offsetp += 1;
15261 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15262 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15263 "%d (sync-QueryFence)", sequence_number);
15264 *offsetp += 2;
15265 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15266 *offsetp += 4;
15267 proto_tree_add_item(t, hf_x11_sync_QueryFence_reply_triggered, tvb, *offsetp, 1, byte_order);
15268 *offsetp += 1;
15269 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
15270 *offsetp += 23;
15271}
15272
15273static void syncAwaitFence(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15274{
15275 listOfCard32(tvb, offsetp, t, hf_x11_sync_AwaitFence_fence_list, hf_x11_sync_AwaitFence_fence_list_item, (length - 4) / 4, byte_order);
15276}
15277
15278static void syncAlarmNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
15279{
15280 proto_tree_add_item(t, hf_x11_sync_AlarmNotify_kind, tvb, *offsetp, 1, byte_order);
15281 *offsetp += 1;
15282 CARD16(event_sequencenumber);
15283 proto_tree_add_item(t, hf_x11_sync_AlarmNotify_alarm, tvb, *offsetp, 4, byte_order);
15284 *offsetp += 4;
15285 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
15286 struct_sync_INT64(tvb, offsetp, t, byte_order, 1);
15287 proto_tree_add_item(t, hf_x11_sync_AlarmNotify_timestamp, tvb, *offsetp, 4, byte_order);
15288 *offsetp += 4;
15289 field8(tvb, offsetp, t, hf_x11_sync_AlarmNotify_state, byte_order);
15290 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
15291 *offsetp += 3;
15292}
15293
15294static const value_string sync_extension_minor[] = {
15295 { 0, "Initialize" },
15296 { 1, "ListSystemCounters" },
15297 { 2, "CreateCounter" },
15298 { 3, "SetCounter" },
15299 { 4, "ChangeCounter" },
15300 { 5, "QueryCounter" },
15301 { 6, "DestroyCounter" },
15302 { 7, "Await" },
15303 { 8, "CreateAlarm" },
15304 { 9, "ChangeAlarm" },
15305 { 10, "QueryAlarm" },
15306 { 11, "DestroyAlarm" },
15307 { 12, "SetPriority" },
15308 { 13, "GetPriority" },
15309 { 14, "CreateFence" },
15310 { 15, "TriggerFence" },
15311 { 16, "ResetFence" },
15312 { 17, "DestroyFence" },
15313 { 18, "QueryFence" },
15314 { 19, "AwaitFence" },
15315 { 0, NULL }
15316};
15317static const x11_event_info sync_events[] = {
15318 { "sync-AlarmNotify", syncAlarmNotify },
15319 { NULL, NULL }
15320};
15321static const x11_reply_info sync_replies[] = {
15322 { 0, syncInitialize_Reply },
15323 { 1, syncListSystemCounters_Reply },
15324 { 5, syncQueryCounter_Reply },
15325 { 10, syncQueryAlarm_Reply },
15326 { 13, syncGetPriority_Reply },
15327 { 18, syncQueryFence_Reply },
15328 { 0, NULL }
15329};
15330
15331static void dispatch_sync(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15332{
15333 int minor, length;
15334 minor = CARD8(sync_extension_minor);
15335 length = REQUEST_LENGTH();
15336
15337 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
15338 val_to_str(minor, sync_extension_minor,
15339 "<Unknown opcode %d>"));
15340 switch (minor) {
15341 case 0:
15342 syncInitialize(tvb, pinfo, offsetp, t, byte_order, length);
15343 break;
15344 case 1:
15345 syncListSystemCounters(tvb, pinfo, offsetp, t, byte_order, length);
15346 break;
15347 case 2:
15348 syncCreateCounter(tvb, pinfo, offsetp, t, byte_order, length);
15349 break;
15350 case 3:
15351 syncSetCounter(tvb, pinfo, offsetp, t, byte_order, length);
15352 break;
15353 case 4:
15354 syncChangeCounter(tvb, pinfo, offsetp, t, byte_order, length);
15355 break;
15356 case 5:
15357 syncQueryCounter(tvb, pinfo, offsetp, t, byte_order, length);
15358 break;
15359 case 6:
15360 syncDestroyCounter(tvb, pinfo, offsetp, t, byte_order, length);
15361 break;
15362 case 7:
15363 syncAwait(tvb, pinfo, offsetp, t, byte_order, length);
15364 break;
15365 case 8:
15366 syncCreateAlarm(tvb, pinfo, offsetp, t, byte_order, length);
15367 break;
15368 case 9:
15369 syncChangeAlarm(tvb, pinfo, offsetp, t, byte_order, length);
15370 break;
15371 case 10:
15372 syncQueryAlarm(tvb, pinfo, offsetp, t, byte_order, length);
15373 break;
15374 case 11:
15375 syncDestroyAlarm(tvb, pinfo, offsetp, t, byte_order, length);
15376 break;
15377 case 12:
15378 syncSetPriority(tvb, pinfo, offsetp, t, byte_order, length);
15379 break;
15380 case 13:
15381 syncGetPriority(tvb, pinfo, offsetp, t, byte_order, length);
15382 break;
15383 case 14:
15384 syncCreateFence(tvb, pinfo, offsetp, t, byte_order, length);
15385 break;
15386 case 15:
15387 syncTriggerFence(tvb, pinfo, offsetp, t, byte_order, length);
15388 break;
15389 case 16:
15390 syncResetFence(tvb, pinfo, offsetp, t, byte_order, length);
15391 break;
15392 case 17:
15393 syncDestroyFence(tvb, pinfo, offsetp, t, byte_order, length);
15394 break;
15395 case 18:
15396 syncQueryFence(tvb, pinfo, offsetp, t, byte_order, length);
15397 break;
15398 case 19:
15399 syncAwaitFence(tvb, pinfo, offsetp, t, byte_order, length);
15400 break;
15401 /* No need for a default case here, since Unknown is printed above,
15402 and UNDECODED() is taken care of by dissect_x11_request */
15403 }
15404}
15405
15406static void register_sync(void)
15407{
15408 set_handler("SYNC", dispatch_sync, sync_errors, sync_events, NULL, sync_replies);
15409}
15410
15411static void xc_miscGetVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15412{
15413 proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_client_major_version, tvb, *offsetp, 2, byte_order);
15414 *offsetp += 2;
15415 proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_client_minor_version, tvb, *offsetp, 2, byte_order);
15416 *offsetp += 2;
15417}
15418static void xc_miscGetVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15419{
15420 int sequence_number;
15421
15422 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVersion");
15423
15424 REPLY(reply);
15425 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15426 *offsetp += 1;
15427 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15428 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15429 "%d (xc_misc-GetVersion)", sequence_number);
15430 *offsetp += 2;
15431 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15432 *offsetp += 4;
15433 proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_reply_server_major_version, tvb, *offsetp, 2, byte_order);
15434 *offsetp += 2;
15435 proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_reply_server_minor_version, tvb, *offsetp, 2, byte_order);
15436 *offsetp += 2;
15437}
15438
15439static void xc_miscGetXIDRange(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
15440{
15441}
15442static void xc_miscGetXIDRange_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15443{
15444 int sequence_number;
15445
15446 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetXIDRange");
15447
15448 REPLY(reply);
15449 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15450 *offsetp += 1;
15451 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15452 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15453 "%d (xc_misc-GetXIDRange)", sequence_number);
15454 *offsetp += 2;
15455 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15456 *offsetp += 4;
15457 proto_tree_add_item(t, hf_x11_xc_misc_GetXIDRange_reply_start_id, tvb, *offsetp, 4, byte_order);
15458 *offsetp += 4;
15459 proto_tree_add_item(t, hf_x11_xc_misc_GetXIDRange_reply_count, tvb, *offsetp, 4, byte_order);
15460 *offsetp += 4;
15461}
15462
15463static void xc_miscGetXIDList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15464{
15465 proto_tree_add_item(t, hf_x11_xc_misc_GetXIDList_count, tvb, *offsetp, 4, byte_order);
15466 *offsetp += 4;
15467}
15468static void xc_miscGetXIDList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15469{
15470 int sequence_number;
15471 int f_ids_len;
15472
15473 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetXIDList");
15474
15475 REPLY(reply);
15476 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15477 *offsetp += 1;
15478 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15479 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15480 "%d (xc_misc-GetXIDList)", sequence_number);
15481 *offsetp += 2;
15482 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15483 *offsetp += 4;
15484 f_ids_len = tvb_get_uint32(tvb, *offsetp, byte_order);
15485 proto_tree_add_item(t, hf_x11_xc_misc_GetXIDList_reply_ids_len, tvb, *offsetp, 4, byte_order);
15486 *offsetp += 4;
15487 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
15488 *offsetp += 20;
15489 listOfCard32(tvb, offsetp, t, hf_x11_xc_misc_GetXIDList_reply_ids, hf_x11_xc_misc_GetXIDList_reply_ids_item, f_ids_len, byte_order);
15490}
15491static const value_string xc_misc_extension_minor[] = {
15492 { 0, "GetVersion" },
15493 { 1, "GetXIDRange" },
15494 { 2, "GetXIDList" },
15495 { 0, NULL }
15496};
15497static const x11_event_info xc_misc_events[] = {
15498 { NULL, NULL }
15499};
15500static const x11_reply_info xc_misc_replies[] = {
15501 { 0, xc_miscGetVersion_Reply },
15502 { 1, xc_miscGetXIDRange_Reply },
15503 { 2, xc_miscGetXIDList_Reply },
15504 { 0, NULL }
15505};
15506
15507static void dispatch_xc_misc(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15508{
15509 int minor, length;
15510 minor = CARD8(xc_misc_extension_minor);
15511 length = REQUEST_LENGTH();
15512
15513 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
15514 val_to_str(minor, xc_misc_extension_minor,
15515 "<Unknown opcode %d>"));
15516 switch (minor) {
15517 case 0:
15518 xc_miscGetVersion(tvb, pinfo, offsetp, t, byte_order, length);
15519 break;
15520 case 1:
15521 xc_miscGetXIDRange(tvb, pinfo, offsetp, t, byte_order, length);
15522 break;
15523 case 2:
15524 xc_miscGetXIDList(tvb, pinfo, offsetp, t, byte_order, length);
15525 break;
15526 /* No need for a default case here, since Unknown is printed above,
15527 and UNDECODED() is taken care of by dissect_x11_request */
15528 }
15529}
15530
15531static void register_xc_misc(void)
15532{
15533 set_handler("XC-MISC", dispatch_xc_misc, xc_misc_errors, xc_misc_events, NULL, xc_misc_replies);
15534}
15535
15536static void xevieQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15537{
15538 proto_tree_add_item(t, hf_x11_xevie_QueryVersion_client_major_version, tvb, *offsetp, 2, byte_order);
15539 *offsetp += 2;
15540 proto_tree_add_item(t, hf_x11_xevie_QueryVersion_client_minor_version, tvb, *offsetp, 2, byte_order);
15541 *offsetp += 2;
15542}
15543static void xevieQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15544{
15545 int sequence_number;
15546
15547 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
15548
15549 REPLY(reply);
15550 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15551 *offsetp += 1;
15552 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15553 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15554 "%d (xevie-QueryVersion)", sequence_number);
15555 *offsetp += 2;
15556 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15557 *offsetp += 4;
15558 proto_tree_add_item(t, hf_x11_xevie_QueryVersion_reply_server_major_version, tvb, *offsetp, 2, byte_order);
15559 *offsetp += 2;
15560 proto_tree_add_item(t, hf_x11_xevie_QueryVersion_reply_server_minor_version, tvb, *offsetp, 2, byte_order);
15561 *offsetp += 2;
15562 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
15563 *offsetp += 20;
15564}
15565
15566static void xevieStart(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15567{
15568 proto_tree_add_item(t, hf_x11_xevie_Start_screen, tvb, *offsetp, 4, byte_order);
15569 *offsetp += 4;
15570}
15571static void xevieStart_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15572{
15573 int sequence_number;
15574
15575 col_append_fstr(pinfo->cinfo, COL_INFO, "-Start");
15576
15577 REPLY(reply);
15578 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15579 *offsetp += 1;
15580 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15581 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15582 "%d (xevie-Start)", sequence_number);
15583 *offsetp += 2;
15584 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15585 *offsetp += 4;
15586 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
15587 *offsetp += 24;
15588}
15589
15590static void xevieEnd(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15591{
15592 proto_tree_add_item(t, hf_x11_xevie_End_cmap, tvb, *offsetp, 4, byte_order);
15593 *offsetp += 4;
15594}
15595static void xevieEnd_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15596{
15597 int sequence_number;
15598
15599 col_append_fstr(pinfo->cinfo, COL_INFO, "-End");
15600
15601 REPLY(reply);
15602 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15603 *offsetp += 1;
15604 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15605 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15606 "%d (xevie-End)", sequence_number);
15607 *offsetp += 2;
15608 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15609 *offsetp += 4;
15610 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
15611 *offsetp += 24;
15612}
15613
15614static void struct_xevie_Event(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
15615{
15616 int i;
15617 for (i = 0; i < count; i++) {
15618 proto_item *item;
15619 proto_tree *t;
15620
15621 item = proto_tree_add_item(root, hf_x11_struct_xevie_Event, tvb, *offsetp, 32, ENC_NA);
15622 t = proto_item_add_subtree(item, ett_x11_rectangle);
15623 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 32, ENC_NA);
15624 *offsetp += 32;
15625 }
15626}
15627
15628static void xevieSend(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15629{
15630 struct_xevie_Event(tvb, offsetp, t, byte_order, 1);
15631 proto_tree_add_item(t, hf_x11_xevie_Send_data_type, tvb, *offsetp, 4, byte_order);
15632 *offsetp += 4;
15633 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 64, ENC_NA);
15634 *offsetp += 64;
15635}
15636static void xevieSend_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15637{
15638 int sequence_number;
15639
15640 col_append_fstr(pinfo->cinfo, COL_INFO, "-Send");
15641
15642 REPLY(reply);
15643 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15644 *offsetp += 1;
15645 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15646 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15647 "%d (xevie-Send)", sequence_number);
15648 *offsetp += 2;
15649 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15650 *offsetp += 4;
15651 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
15652 *offsetp += 24;
15653}
15654
15655static void xevieSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15656{
15657 proto_tree_add_item(t, hf_x11_xevie_SelectInput_event_mask, tvb, *offsetp, 4, byte_order);
15658 *offsetp += 4;
15659}
15660static void xevieSelectInput_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15661{
15662 int sequence_number;
15663
15664 col_append_fstr(pinfo->cinfo, COL_INFO, "-SelectInput");
15665
15666 REPLY(reply);
15667 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15668 *offsetp += 1;
15669 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15670 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15671 "%d (xevie-SelectInput)", sequence_number);
15672 *offsetp += 2;
15673 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15674 *offsetp += 4;
15675 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
15676 *offsetp += 24;
15677}
15678static const value_string xevie_extension_minor[] = {
15679 { 0, "QueryVersion" },
15680 { 1, "Start" },
15681 { 2, "End" },
15682 { 3, "Send" },
15683 { 4, "SelectInput" },
15684 { 0, NULL }
15685};
15686static const x11_event_info xevie_events[] = {
15687 { NULL, NULL }
15688};
15689static const x11_reply_info xevie_replies[] = {
15690 { 0, xevieQueryVersion_Reply },
15691 { 1, xevieStart_Reply },
15692 { 2, xevieEnd_Reply },
15693 { 3, xevieSend_Reply },
15694 { 4, xevieSelectInput_Reply },
15695 { 0, NULL }
15696};
15697
15698static void dispatch_xevie(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15699{
15700 int minor, length;
15701 minor = CARD8(xevie_extension_minor);
15702 length = REQUEST_LENGTH();
15703
15704 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
15705 val_to_str(minor, xevie_extension_minor,
15706 "<Unknown opcode %d>"));
15707 switch (minor) {
15708 case 0:
15709 xevieQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
15710 break;
15711 case 1:
15712 xevieStart(tvb, pinfo, offsetp, t, byte_order, length);
15713 break;
15714 case 2:
15715 xevieEnd(tvb, pinfo, offsetp, t, byte_order, length);
15716 break;
15717 case 3:
15718 xevieSend(tvb, pinfo, offsetp, t, byte_order, length);
15719 break;
15720 case 4:
15721 xevieSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
15722 break;
15723 /* No need for a default case here, since Unknown is printed above,
15724 and UNDECODED() is taken care of by dissect_x11_request */
15725 }
15726}
15727
15728static void register_xevie(void)
15729{
15730 set_handler("XEVIE", dispatch_xevie, xevie_errors, xevie_events, NULL, xevie_replies);
15731}
15732
15733static void struct_xf86dri_DrmClipRect(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
15734{
15735 int i;
15736 for (i = 0; i < count; i++) {
15737 proto_item *item;
15738 proto_tree *t;
15739
15740 item = proto_tree_add_item(root, hf_x11_struct_xf86dri_DrmClipRect, tvb, *offsetp, 8, ENC_NA);
15741 t = proto_item_add_subtree(item, ett_x11_rectangle);
15742 proto_tree_add_item(t, hf_x11_struct_xf86dri_DrmClipRect_x1, tvb, *offsetp, 2, byte_order);
15743 *offsetp += 2;
15744 proto_tree_add_item(t, hf_x11_struct_xf86dri_DrmClipRect_y1, tvb, *offsetp, 2, byte_order);
15745 *offsetp += 2;
15746 proto_tree_add_item(t, hf_x11_struct_xf86dri_DrmClipRect_x2, tvb, *offsetp, 2, byte_order);
15747 *offsetp += 2;
15748 proto_tree_add_item(t, hf_x11_struct_xf86dri_DrmClipRect_x3, tvb, *offsetp, 2, byte_order);
15749 *offsetp += 2;
15750 }
15751}
15752
15753static void xf86driQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
15754{
15755}
15756static void xf86driQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15757{
15758 int sequence_number;
15759
15760 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
15761
15762 REPLY(reply);
15763 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15764 *offsetp += 1;
15765 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15766 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15767 "%d (xf86dri-QueryVersion)", sequence_number);
15768 *offsetp += 2;
15769 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15770 *offsetp += 4;
15771 proto_tree_add_item(t, hf_x11_xf86dri_QueryVersion_reply_dri_major_version, tvb, *offsetp, 2, byte_order);
15772 *offsetp += 2;
15773 proto_tree_add_item(t, hf_x11_xf86dri_QueryVersion_reply_dri_minor_version, tvb, *offsetp, 2, byte_order);
15774 *offsetp += 2;
15775 proto_tree_add_item(t, hf_x11_xf86dri_QueryVersion_reply_dri_minor_patch, tvb, *offsetp, 4, byte_order);
15776 *offsetp += 4;
15777}
15778
15779static void xf86driQueryDirectRenderingCapable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15780{
15781 proto_tree_add_item(t, hf_x11_xf86dri_QueryDirectRenderingCapable_screen, tvb, *offsetp, 4, byte_order);
15782 *offsetp += 4;
15783}
15784static void xf86driQueryDirectRenderingCapable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15785{
15786 int sequence_number;
15787
15788 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryDirectRenderingCapable");
15789
15790 REPLY(reply);
15791 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15792 *offsetp += 1;
15793 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15794 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15795 "%d (xf86dri-QueryDirectRenderingCapable)", sequence_number);
15796 *offsetp += 2;
15797 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15798 *offsetp += 4;
15799 proto_tree_add_item(t, hf_x11_xf86dri_QueryDirectRenderingCapable_reply_is_capable, tvb, *offsetp, 1, byte_order);
15800 *offsetp += 1;
15801}
15802
15803static void xf86driOpenConnection(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15804{
15805 proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_screen, tvb, *offsetp, 4, byte_order);
15806 *offsetp += 4;
15807}
15808static void xf86driOpenConnection_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15809{
15810 int sequence_number;
15811 int f_bus_id_len;
15812
15813 col_append_fstr(pinfo->cinfo, COL_INFO, "-OpenConnection");
15814
15815 REPLY(reply);
15816 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15817 *offsetp += 1;
15818 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15819 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15820 "%d (xf86dri-OpenConnection)", sequence_number);
15821 *offsetp += 2;
15822 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15823 *offsetp += 4;
15824 proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_sarea_handle_low, tvb, *offsetp, 4, byte_order);
15825 *offsetp += 4;
15826 proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_sarea_handle_high, tvb, *offsetp, 4, byte_order);
15827 *offsetp += 4;
15828 f_bus_id_len = tvb_get_uint32(tvb, *offsetp, byte_order);
15829 proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_bus_id_len, tvb, *offsetp, 4, byte_order);
15830 *offsetp += 4;
15831 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
15832 *offsetp += 12;
15833 listOfByte(tvb, offsetp, t, hf_x11_xf86dri_OpenConnection_reply_bus_id, f_bus_id_len, byte_order);
15834}
15835
15836static void xf86driCloseConnection(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15837{
15838 proto_tree_add_item(t, hf_x11_xf86dri_CloseConnection_screen, tvb, *offsetp, 4, byte_order);
15839 *offsetp += 4;
15840}
15841
15842static void xf86driGetClientDriverName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15843{
15844 proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_screen, tvb, *offsetp, 4, byte_order);
15845 *offsetp += 4;
15846}
15847static void xf86driGetClientDriverName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15848{
15849 int sequence_number;
15850 int f_client_driver_name_len;
15851
15852 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetClientDriverName");
15853
15854 REPLY(reply);
15855 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15856 *offsetp += 1;
15857 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15858 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15859 "%d (xf86dri-GetClientDriverName)", sequence_number);
15860 *offsetp += 2;
15861 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15862 *offsetp += 4;
15863 proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_major_version, tvb, *offsetp, 4, byte_order);
15864 *offsetp += 4;
15865 proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_minor_version, tvb, *offsetp, 4, byte_order);
15866 *offsetp += 4;
15867 proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_patch_version, tvb, *offsetp, 4, byte_order);
15868 *offsetp += 4;
15869 f_client_driver_name_len = tvb_get_uint32(tvb, *offsetp, byte_order);
15870 proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_name_len, tvb, *offsetp, 4, byte_order);
15871 *offsetp += 4;
15872 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
15873 *offsetp += 8;
15874 listOfByte(tvb, offsetp, t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_name, f_client_driver_name_len, byte_order);
15875}
15876
15877static void xf86driCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15878{
15879 proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_screen, tvb, *offsetp, 4, byte_order);
15880 *offsetp += 4;
15881 proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_visual, tvb, *offsetp, 4, byte_order);
15882 *offsetp += 4;
15883 proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_context, tvb, *offsetp, 4, byte_order);
15884 *offsetp += 4;
15885}
15886static void xf86driCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15887{
15888 int sequence_number;
15889
15890 col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateContext");
15891
15892 REPLY(reply);
15893 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15894 *offsetp += 1;
15895 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15896 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15897 "%d (xf86dri-CreateContext)", sequence_number);
15898 *offsetp += 2;
15899 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15900 *offsetp += 4;
15901 proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_reply_hw_context, tvb, *offsetp, 4, byte_order);
15902 *offsetp += 4;
15903}
15904
15905static void xf86driDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15906{
15907 proto_tree_add_item(t, hf_x11_xf86dri_DestroyContext_screen, tvb, *offsetp, 4, byte_order);
15908 *offsetp += 4;
15909 proto_tree_add_item(t, hf_x11_xf86dri_DestroyContext_context, tvb, *offsetp, 4, byte_order);
15910 *offsetp += 4;
15911}
15912
15913static void xf86driCreateDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15914{
15915 proto_tree_add_item(t, hf_x11_xf86dri_CreateDrawable_screen, tvb, *offsetp, 4, byte_order);
15916 *offsetp += 4;
15917 proto_tree_add_item(t, hf_x11_xf86dri_CreateDrawable_drawable, tvb, *offsetp, 4, byte_order);
15918 *offsetp += 4;
15919}
15920static void xf86driCreateDrawable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15921{
15922 int sequence_number;
15923
15924 col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateDrawable");
15925
15926 REPLY(reply);
15927 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15928 *offsetp += 1;
15929 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15930 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15931 "%d (xf86dri-CreateDrawable)", sequence_number);
15932 *offsetp += 2;
15933 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15934 *offsetp += 4;
15935 proto_tree_add_item(t, hf_x11_xf86dri_CreateDrawable_reply_hw_drawable_handle, tvb, *offsetp, 4, byte_order);
15936 *offsetp += 4;
15937}
15938
15939static void xf86driDestroyDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15940{
15941 proto_tree_add_item(t, hf_x11_xf86dri_DestroyDrawable_screen, tvb, *offsetp, 4, byte_order);
15942 *offsetp += 4;
15943 proto_tree_add_item(t, hf_x11_xf86dri_DestroyDrawable_drawable, tvb, *offsetp, 4, byte_order);
15944 *offsetp += 4;
15945}
15946
15947static void xf86driGetDrawableInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15948{
15949 proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_screen, tvb, *offsetp, 4, byte_order);
15950 *offsetp += 4;
15951 proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_drawable, tvb, *offsetp, 4, byte_order);
15952 *offsetp += 4;
15953}
15954static void xf86driGetDrawableInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
15955{
15956 int sequence_number;
15957 int f_num_clip_rects;
15958 int f_num_back_clip_rects;
15959
15960 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDrawableInfo");
15961
15962 REPLY(reply);
15963 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
15964 *offsetp += 1;
15965 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
15966 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
15967 "%d (xf86dri-GetDrawableInfo)", sequence_number);
15968 *offsetp += 2;
15969 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
15970 *offsetp += 4;
15971 proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_table_index, tvb, *offsetp, 4, byte_order);
15972 *offsetp += 4;
15973 proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_table_stamp, tvb, *offsetp, 4, byte_order);
15974 *offsetp += 4;
15975 proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_origin_X, tvb, *offsetp, 2, byte_order);
15976 *offsetp += 2;
15977 proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_origin_Y, tvb, *offsetp, 2, byte_order);
15978 *offsetp += 2;
15979 proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_size_W, tvb, *offsetp, 2, byte_order);
15980 *offsetp += 2;
15981 proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_size_H, tvb, *offsetp, 2, byte_order);
15982 *offsetp += 2;
15983 f_num_clip_rects = tvb_get_uint32(tvb, *offsetp, byte_order);
15984 proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_num_clip_rects, tvb, *offsetp, 4, byte_order);
15985 *offsetp += 4;
15986 proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_back_x, tvb, *offsetp, 2, byte_order);
15987 *offsetp += 2;
15988 proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_back_y, tvb, *offsetp, 2, byte_order);
15989 *offsetp += 2;
15990 f_num_back_clip_rects = tvb_get_uint32(tvb, *offsetp, byte_order);
15991 proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_num_back_clip_rects, tvb, *offsetp, 4, byte_order);
15992 *offsetp += 4;
15993 struct_xf86dri_DrmClipRect(tvb, offsetp, t, byte_order, f_num_clip_rects);
15994 struct_xf86dri_DrmClipRect(tvb, offsetp, t, byte_order, f_num_back_clip_rects);
15995}
15996
15997static void xf86driGetDeviceInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
15998{
15999 proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_screen, tvb, *offsetp, 4, byte_order);
16000 *offsetp += 4;
16001}
16002static void xf86driGetDeviceInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16003{
16004 int sequence_number;
16005 int f_device_private_size;
16006
16007 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceInfo");
16008
16009 REPLY(reply);
16010 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16011 *offsetp += 1;
16012 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
16013 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16014 "%d (xf86dri-GetDeviceInfo)", sequence_number);
16015 *offsetp += 2;
16016 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16017 *offsetp += 4;
16018 proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_handle_low, tvb, *offsetp, 4, byte_order);
16019 *offsetp += 4;
16020 proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_handle_high, tvb, *offsetp, 4, byte_order);
16021 *offsetp += 4;
16022 proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_origin_offset, tvb, *offsetp, 4, byte_order);
16023 *offsetp += 4;
16024 proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_size, tvb, *offsetp, 4, byte_order);
16025 *offsetp += 4;
16026 proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_stride, tvb, *offsetp, 4, byte_order);
16027 *offsetp += 4;
16028 f_device_private_size = tvb_get_uint32(tvb, *offsetp, byte_order);
16029 proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_device_private_size, tvb, *offsetp, 4, byte_order);
16030 *offsetp += 4;
16031 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);
16032}
16033
16034static void xf86driAuthConnection(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16035{
16036 proto_tree_add_item(t, hf_x11_xf86dri_AuthConnection_screen, tvb, *offsetp, 4, byte_order);
16037 *offsetp += 4;
16038 proto_tree_add_item(t, hf_x11_xf86dri_AuthConnection_magic, tvb, *offsetp, 4, byte_order);
16039 *offsetp += 4;
16040}
16041static void xf86driAuthConnection_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16042{
16043 int sequence_number;
16044
16045 col_append_fstr(pinfo->cinfo, COL_INFO, "-AuthConnection");
16046
16047 REPLY(reply);
16048 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16049 *offsetp += 1;
16050 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
16051 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16052 "%d (xf86dri-AuthConnection)", sequence_number);
16053 *offsetp += 2;
16054 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16055 *offsetp += 4;
16056 proto_tree_add_item(t, hf_x11_xf86dri_AuthConnection_reply_authenticated, tvb, *offsetp, 4, byte_order);
16057 *offsetp += 4;
16058}
16059static const value_string xf86dri_extension_minor[] = {
16060 { 0, "QueryVersion" },
16061 { 1, "QueryDirectRenderingCapable" },
16062 { 2, "OpenConnection" },
16063 { 3, "CloseConnection" },
16064 { 4, "GetClientDriverName" },
16065 { 5, "CreateContext" },
16066 { 6, "DestroyContext" },
16067 { 7, "CreateDrawable" },
16068 { 8, "DestroyDrawable" },
16069 { 9, "GetDrawableInfo" },
16070 { 10, "GetDeviceInfo" },
16071 { 11, "AuthConnection" },
16072 { 0, NULL }
16073};
16074static const x11_event_info xf86dri_events[] = {
16075 { NULL, NULL }
16076};
16077static const x11_reply_info xf86dri_replies[] = {
16078 { 0, xf86driQueryVersion_Reply },
16079 { 1, xf86driQueryDirectRenderingCapable_Reply },
16080 { 2, xf86driOpenConnection_Reply },
16081 { 4, xf86driGetClientDriverName_Reply },
16082 { 5, xf86driCreateContext_Reply },
16083 { 7, xf86driCreateDrawable_Reply },
16084 { 9, xf86driGetDrawableInfo_Reply },
16085 { 10, xf86driGetDeviceInfo_Reply },
16086 { 11, xf86driAuthConnection_Reply },
16087 { 0, NULL }
16088};
16089
16090static void dispatch_xf86dri(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16091{
16092 int minor, length;
16093 minor = CARD8(xf86dri_extension_minor);
16094 length = REQUEST_LENGTH();
16095
16096 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
16097 val_to_str(minor, xf86dri_extension_minor,
16098 "<Unknown opcode %d>"));
16099 switch (minor) {
16100 case 0:
16101 xf86driQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
16102 break;
16103 case 1:
16104 xf86driQueryDirectRenderingCapable(tvb, pinfo, offsetp, t, byte_order, length);
16105 break;
16106 case 2:
16107 xf86driOpenConnection(tvb, pinfo, offsetp, t, byte_order, length);
16108 break;
16109 case 3:
16110 xf86driCloseConnection(tvb, pinfo, offsetp, t, byte_order, length);
16111 break;
16112 case 4:
16113 xf86driGetClientDriverName(tvb, pinfo, offsetp, t, byte_order, length);
16114 break;
16115 case 5:
16116 xf86driCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
16117 break;
16118 case 6:
16119 xf86driDestroyContext(tvb, pinfo, offsetp, t, byte_order, length);
16120 break;
16121 case 7:
16122 xf86driCreateDrawable(tvb, pinfo, offsetp, t, byte_order, length);
16123 break;
16124 case 8:
16125 xf86driDestroyDrawable(tvb, pinfo, offsetp, t, byte_order, length);
16126 break;
16127 case 9:
16128 xf86driGetDrawableInfo(tvb, pinfo, offsetp, t, byte_order, length);
16129 break;
16130 case 10:
16131 xf86driGetDeviceInfo(tvb, pinfo, offsetp, t, byte_order, length);
16132 break;
16133 case 11:
16134 xf86driAuthConnection(tvb, pinfo, offsetp, t, byte_order, length);
16135 break;
16136 /* No need for a default case here, since Unknown is printed above,
16137 and UNDECODED() is taken care of by dissect_x11_request */
16138 }
16139}
16140
16141static void register_xf86dri(void)
16142{
16143 set_handler("XFree86-DRI", dispatch_xf86dri, xf86dri_errors, xf86dri_events, NULL, xf86dri_replies);
16144}
16145
16146static void struct_xf86vidmode_ModeInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
16147{
16148 int i;
16149 for (i = 0; i < count; i++) {
16150 proto_item *item;
16151 proto_tree *t;
16152
16153 item = proto_tree_add_item(root, hf_x11_struct_xf86vidmode_ModeInfo, tvb, *offsetp, 48, ENC_NA);
16154 t = proto_item_add_subtree(item, ett_x11_rectangle);
16155 proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_dotclock, tvb, *offsetp, 4, byte_order);
16156 *offsetp += 4;
16157 proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_hdisplay, tvb, *offsetp, 2, byte_order);
16158 *offsetp += 2;
16159 proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_hsyncstart, tvb, *offsetp, 2, byte_order);
16160 *offsetp += 2;
16161 proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_hsyncend, tvb, *offsetp, 2, byte_order);
16162 *offsetp += 2;
16163 proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_htotal, tvb, *offsetp, 2, byte_order);
16164 *offsetp += 2;
16165 proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_hskew, tvb, *offsetp, 4, byte_order);
16166 *offsetp += 4;
16167 proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_vdisplay, tvb, *offsetp, 2, byte_order);
16168 *offsetp += 2;
16169 proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_vsyncstart, tvb, *offsetp, 2, byte_order);
16170 *offsetp += 2;
16171 proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_vsyncend, tvb, *offsetp, 2, byte_order);
16172 *offsetp += 2;
16173 proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_vtotal, tvb, *offsetp, 2, byte_order);
16174 *offsetp += 2;
16175 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
16176 *offsetp += 4;
16177 {
16178 static int* const flags_bits [] = {
16179 &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Positive_HSync,
16180 &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Negative_HSync,
16181 &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Positive_VSync,
16182 &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Negative_VSync,
16183 &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Interlace,
16184 &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Composite_Sync,
16185 &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Positive_CSync,
16186 &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Negative_CSync,
16187 &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_HSkew,
16188 &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Broadcast,
16189 &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Pixmux,
16190 &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Double_Clock,
16191 &hf_x11_struct_xf86vidmode_ModeInfo_flags_mask_Half_Clock,
16192 NULL
16193 };
16194 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xf86vidmode_ModeInfo_flags, ett_x11_rectangle, flags_bits, byte_order);
16195 }
16196 *offsetp += 4;
16197 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16198 *offsetp += 12;
16199 proto_tree_add_item(t, hf_x11_struct_xf86vidmode_ModeInfo_privsize, tvb, *offsetp, 4, byte_order);
16200 *offsetp += 4;
16201 }
16202}
16203
16204static void xf86vidmodeQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
16205{
16206}
16207static void xf86vidmodeQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16208{
16209 int sequence_number;
16210
16211 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
16212
16213 REPLY(reply);
16214 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16215 *offsetp += 1;
16216 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
16217 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16218 "%d (xf86vidmode-QueryVersion)", sequence_number);
16219 *offsetp += 2;
16220 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16221 *offsetp += 4;
16222 proto_tree_add_item(t, hf_x11_xf86vidmode_QueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
16223 *offsetp += 2;
16224 proto_tree_add_item(t, hf_x11_xf86vidmode_QueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
16225 *offsetp += 2;
16226}
16227
16228static void xf86vidmodeGetModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16229{
16230 proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_screen, tvb, *offsetp, 2, byte_order);
16231 *offsetp += 2;
16232 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16233 *offsetp += 2;
16234}
16235static void xf86vidmodeGetModeLine_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16236{
16237 int sequence_number;
16238 int f_privsize;
16239
16240 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetModeLine");
16241
16242 REPLY(reply);
16243 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16244 *offsetp += 1;
16245 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
16246 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16247 "%d (xf86vidmode-GetModeLine)", sequence_number);
16248 *offsetp += 2;
16249 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16250 *offsetp += 4;
16251 proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_dotclock, tvb, *offsetp, 4, byte_order);
16252 *offsetp += 4;
16253 proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hdisplay, tvb, *offsetp, 2, byte_order);
16254 *offsetp += 2;
16255 proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hsyncstart, tvb, *offsetp, 2, byte_order);
16256 *offsetp += 2;
16257 proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hsyncend, tvb, *offsetp, 2, byte_order);
16258 *offsetp += 2;
16259 proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_htotal, tvb, *offsetp, 2, byte_order);
16260 *offsetp += 2;
16261 proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hskew, tvb, *offsetp, 2, byte_order);
16262 *offsetp += 2;
16263 proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vdisplay, tvb, *offsetp, 2, byte_order);
16264 *offsetp += 2;
16265 proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vsyncstart, tvb, *offsetp, 2, byte_order);
16266 *offsetp += 2;
16267 proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vsyncend, tvb, *offsetp, 2, byte_order);
16268 *offsetp += 2;
16269 proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vtotal, tvb, *offsetp, 2, byte_order);
16270 *offsetp += 2;
16271 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16272 *offsetp += 2;
16273 {
16274 static int* const flags_bits [] = {
16275 &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Positive_HSync,
16276 &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Negative_HSync,
16277 &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Positive_VSync,
16278 &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Negative_VSync,
16279 &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Interlace,
16280 &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Composite_Sync,
16281 &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Positive_CSync,
16282 &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Negative_CSync,
16283 &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_HSkew,
16284 &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Broadcast,
16285 &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Pixmux,
16286 &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Double_Clock,
16287 &hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Half_Clock,
16288 NULL
16289 };
16290 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_GetModeLine_reply_flags, ett_x11_rectangle, flags_bits, byte_order);
16291 }
16292 *offsetp += 4;
16293 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16294 *offsetp += 12;
16295 f_privsize = tvb_get_uint32(tvb, *offsetp, byte_order);
16296 proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_privsize, tvb, *offsetp, 4, byte_order);
16297 *offsetp += 4;
16298 listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetModeLine_reply_private, f_privsize, byte_order);
16299}
16300
16301static void xf86vidmodeModModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16302{
16303 int f_privsize;
16304 proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_screen, tvb, *offsetp, 4, byte_order);
16305 *offsetp += 4;
16306 proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hdisplay, tvb, *offsetp, 2, byte_order);
16307 *offsetp += 2;
16308 proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hsyncstart, tvb, *offsetp, 2, byte_order);
16309 *offsetp += 2;
16310 proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hsyncend, tvb, *offsetp, 2, byte_order);
16311 *offsetp += 2;
16312 proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_htotal, tvb, *offsetp, 2, byte_order);
16313 *offsetp += 2;
16314 proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hskew, tvb, *offsetp, 2, byte_order);
16315 *offsetp += 2;
16316 proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vdisplay, tvb, *offsetp, 2, byte_order);
16317 *offsetp += 2;
16318 proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vsyncstart, tvb, *offsetp, 2, byte_order);
16319 *offsetp += 2;
16320 proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vsyncend, tvb, *offsetp, 2, byte_order);
16321 *offsetp += 2;
16322 proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vtotal, tvb, *offsetp, 2, byte_order);
16323 *offsetp += 2;
16324 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16325 *offsetp += 2;
16326 {
16327 static int* const flags_bits [] = {
16328 &hf_x11_xf86vidmode_ModModeLine_flags_mask_Positive_HSync,
16329 &hf_x11_xf86vidmode_ModModeLine_flags_mask_Negative_HSync,
16330 &hf_x11_xf86vidmode_ModModeLine_flags_mask_Positive_VSync,
16331 &hf_x11_xf86vidmode_ModModeLine_flags_mask_Negative_VSync,
16332 &hf_x11_xf86vidmode_ModModeLine_flags_mask_Interlace,
16333 &hf_x11_xf86vidmode_ModModeLine_flags_mask_Composite_Sync,
16334 &hf_x11_xf86vidmode_ModModeLine_flags_mask_Positive_CSync,
16335 &hf_x11_xf86vidmode_ModModeLine_flags_mask_Negative_CSync,
16336 &hf_x11_xf86vidmode_ModModeLine_flags_mask_HSkew,
16337 &hf_x11_xf86vidmode_ModModeLine_flags_mask_Broadcast,
16338 &hf_x11_xf86vidmode_ModModeLine_flags_mask_Pixmux,
16339 &hf_x11_xf86vidmode_ModModeLine_flags_mask_Double_Clock,
16340 &hf_x11_xf86vidmode_ModModeLine_flags_mask_Half_Clock,
16341 NULL
16342 };
16343 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_ModModeLine_flags, ett_x11_rectangle, flags_bits, byte_order);
16344 }
16345 *offsetp += 4;
16346 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16347 *offsetp += 12;
16348 f_privsize = tvb_get_uint32(tvb, *offsetp, byte_order);
16349 proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_privsize, tvb, *offsetp, 4, byte_order);
16350 *offsetp += 4;
16351 listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_ModModeLine_private, f_privsize, byte_order);
16352 length -= f_privsize * 1;
16353}
16354
16355static void xf86vidmodeSwitchMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16356{
16357 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchMode_screen, tvb, *offsetp, 2, byte_order);
16358 *offsetp += 2;
16359 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchMode_zoom, tvb, *offsetp, 2, byte_order);
16360 *offsetp += 2;
16361}
16362
16363static void xf86vidmodeGetMonitor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16364{
16365 proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_screen, tvb, *offsetp, 2, byte_order);
16366 *offsetp += 2;
16367 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16368 *offsetp += 2;
16369}
16370static void xf86vidmodeGetMonitor_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16371{
16372 int sequence_number;
16373 int f_vendor_length;
16374 int f_model_length;
16375 int f_num_hsync;
16376 int f_num_vsync;
16377
16378 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMonitor");
16379
16380 REPLY(reply);
16381 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16382 *offsetp += 1;
16383 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
16384 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16385 "%d (xf86vidmode-GetMonitor)", sequence_number);
16386 *offsetp += 2;
16387 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16388 *offsetp += 4;
16389 f_vendor_length = tvb_get_uint8(tvb, *offsetp);
16390 proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_vendor_length, tvb, *offsetp, 1, byte_order);
16391 *offsetp += 1;
16392 f_model_length = tvb_get_uint8(tvb, *offsetp);
16393 proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_model_length, tvb, *offsetp, 1, byte_order);
16394 *offsetp += 1;
16395 f_num_hsync = tvb_get_uint8(tvb, *offsetp);
16396 proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_num_hsync, tvb, *offsetp, 1, byte_order);
16397 *offsetp += 1;
16398 f_num_vsync = tvb_get_uint8(tvb, *offsetp);
16399 proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_num_vsync, tvb, *offsetp, 1, byte_order);
16400 *offsetp += 1;
16401 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
16402 *offsetp += 20;
16403 listOfCard32(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_hsync, hf_x11_xf86vidmode_GetMonitor_reply_hsync_item, f_num_hsync, byte_order);
16404 listOfCard32(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_vsync, hf_x11_xf86vidmode_GetMonitor_reply_vsync_item, f_num_vsync, byte_order);
16405 listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_vendor, f_vendor_length, byte_order);
16406 listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_alignment_pad, (((f_vendor_length + 3) & (~3)) - f_vendor_length), byte_order);
16407 listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_model, f_model_length, byte_order);
16408}
16409
16410static void xf86vidmodeLockModeSwitch(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16411{
16412 proto_tree_add_item(t, hf_x11_xf86vidmode_LockModeSwitch_screen, tvb, *offsetp, 2, byte_order);
16413 *offsetp += 2;
16414 proto_tree_add_item(t, hf_x11_xf86vidmode_LockModeSwitch_lock, tvb, *offsetp, 2, byte_order);
16415 *offsetp += 2;
16416}
16417
16418static void xf86vidmodeGetAllModeLines(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16419{
16420 proto_tree_add_item(t, hf_x11_xf86vidmode_GetAllModeLines_screen, tvb, *offsetp, 2, byte_order);
16421 *offsetp += 2;
16422 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16423 *offsetp += 2;
16424}
16425static void xf86vidmodeGetAllModeLines_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16426{
16427 int sequence_number;
16428 int f_modecount;
16429
16430 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetAllModeLines");
16431
16432 REPLY(reply);
16433 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16434 *offsetp += 1;
16435 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
16436 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16437 "%d (xf86vidmode-GetAllModeLines)", sequence_number);
16438 *offsetp += 2;
16439 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16440 *offsetp += 4;
16441 f_modecount = tvb_get_uint32(tvb, *offsetp, byte_order);
16442 proto_tree_add_item(t, hf_x11_xf86vidmode_GetAllModeLines_reply_modecount, tvb, *offsetp, 4, byte_order);
16443 *offsetp += 4;
16444 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
16445 *offsetp += 20;
16446 struct_xf86vidmode_ModeInfo(tvb, offsetp, t, byte_order, f_modecount);
16447}
16448
16449static void xf86vidmodeAddModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16450{
16451 int f_privsize;
16452 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_screen, tvb, *offsetp, 4, byte_order);
16453 *offsetp += 4;
16454 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_dotclock, tvb, *offsetp, 4, byte_order);
16455 *offsetp += 4;
16456 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hdisplay, tvb, *offsetp, 2, byte_order);
16457 *offsetp += 2;
16458 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hsyncstart, tvb, *offsetp, 2, byte_order);
16459 *offsetp += 2;
16460 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hsyncend, tvb, *offsetp, 2, byte_order);
16461 *offsetp += 2;
16462 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_htotal, tvb, *offsetp, 2, byte_order);
16463 *offsetp += 2;
16464 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hskew, tvb, *offsetp, 2, byte_order);
16465 *offsetp += 2;
16466 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vdisplay, tvb, *offsetp, 2, byte_order);
16467 *offsetp += 2;
16468 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vsyncstart, tvb, *offsetp, 2, byte_order);
16469 *offsetp += 2;
16470 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vsyncend, tvb, *offsetp, 2, byte_order);
16471 *offsetp += 2;
16472 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vtotal, tvb, *offsetp, 2, byte_order);
16473 *offsetp += 2;
16474 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16475 *offsetp += 2;
16476 {
16477 static int* const flags_bits [] = {
16478 &hf_x11_xf86vidmode_AddModeLine_flags_mask_Positive_HSync,
16479 &hf_x11_xf86vidmode_AddModeLine_flags_mask_Negative_HSync,
16480 &hf_x11_xf86vidmode_AddModeLine_flags_mask_Positive_VSync,
16481 &hf_x11_xf86vidmode_AddModeLine_flags_mask_Negative_VSync,
16482 &hf_x11_xf86vidmode_AddModeLine_flags_mask_Interlace,
16483 &hf_x11_xf86vidmode_AddModeLine_flags_mask_Composite_Sync,
16484 &hf_x11_xf86vidmode_AddModeLine_flags_mask_Positive_CSync,
16485 &hf_x11_xf86vidmode_AddModeLine_flags_mask_Negative_CSync,
16486 &hf_x11_xf86vidmode_AddModeLine_flags_mask_HSkew,
16487 &hf_x11_xf86vidmode_AddModeLine_flags_mask_Broadcast,
16488 &hf_x11_xf86vidmode_AddModeLine_flags_mask_Pixmux,
16489 &hf_x11_xf86vidmode_AddModeLine_flags_mask_Double_Clock,
16490 &hf_x11_xf86vidmode_AddModeLine_flags_mask_Half_Clock,
16491 NULL
16492 };
16493 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_AddModeLine_flags, ett_x11_rectangle, flags_bits, byte_order);
16494 }
16495 *offsetp += 4;
16496 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16497 *offsetp += 12;
16498 f_privsize = tvb_get_uint32(tvb, *offsetp, byte_order);
16499 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_privsize, tvb, *offsetp, 4, byte_order);
16500 *offsetp += 4;
16501 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_dotclock, tvb, *offsetp, 4, byte_order);
16502 *offsetp += 4;
16503 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hdisplay, tvb, *offsetp, 2, byte_order);
16504 *offsetp += 2;
16505 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hsyncstart, tvb, *offsetp, 2, byte_order);
16506 *offsetp += 2;
16507 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hsyncend, tvb, *offsetp, 2, byte_order);
16508 *offsetp += 2;
16509 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_htotal, tvb, *offsetp, 2, byte_order);
16510 *offsetp += 2;
16511 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hskew, tvb, *offsetp, 2, byte_order);
16512 *offsetp += 2;
16513 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vdisplay, tvb, *offsetp, 2, byte_order);
16514 *offsetp += 2;
16515 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vsyncstart, tvb, *offsetp, 2, byte_order);
16516 *offsetp += 2;
16517 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vsyncend, tvb, *offsetp, 2, byte_order);
16518 *offsetp += 2;
16519 proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vtotal, tvb, *offsetp, 2, byte_order);
16520 *offsetp += 2;
16521 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16522 *offsetp += 2;
16523 {
16524 static int* const after_flags_bits [] = {
16525 &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Positive_HSync,
16526 &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Negative_HSync,
16527 &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Positive_VSync,
16528 &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Negative_VSync,
16529 &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Interlace,
16530 &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Composite_Sync,
16531 &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Positive_CSync,
16532 &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Negative_CSync,
16533 &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_HSkew,
16534 &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Broadcast,
16535 &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Pixmux,
16536 &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Double_Clock,
16537 &hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Half_Clock,
16538 NULL
16539 };
16540 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_AddModeLine_after_flags, ett_x11_rectangle, after_flags_bits, byte_order);
16541 }
16542 *offsetp += 4;
16543 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16544 *offsetp += 12;
16545 listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_AddModeLine_private, f_privsize, byte_order);
16546 length -= f_privsize * 1;
16547}
16548
16549static void xf86vidmodeDeleteModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16550{
16551 int f_privsize;
16552 proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_screen, tvb, *offsetp, 4, byte_order);
16553 *offsetp += 4;
16554 proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_dotclock, tvb, *offsetp, 4, byte_order);
16555 *offsetp += 4;
16556 proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hdisplay, tvb, *offsetp, 2, byte_order);
16557 *offsetp += 2;
16558 proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hsyncstart, tvb, *offsetp, 2, byte_order);
16559 *offsetp += 2;
16560 proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hsyncend, tvb, *offsetp, 2, byte_order);
16561 *offsetp += 2;
16562 proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_htotal, tvb, *offsetp, 2, byte_order);
16563 *offsetp += 2;
16564 proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hskew, tvb, *offsetp, 2, byte_order);
16565 *offsetp += 2;
16566 proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vdisplay, tvb, *offsetp, 2, byte_order);
16567 *offsetp += 2;
16568 proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vsyncstart, tvb, *offsetp, 2, byte_order);
16569 *offsetp += 2;
16570 proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vsyncend, tvb, *offsetp, 2, byte_order);
16571 *offsetp += 2;
16572 proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vtotal, tvb, *offsetp, 2, byte_order);
16573 *offsetp += 2;
16574 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16575 *offsetp += 2;
16576 {
16577 static int* const flags_bits [] = {
16578 &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Positive_HSync,
16579 &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Negative_HSync,
16580 &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Positive_VSync,
16581 &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Negative_VSync,
16582 &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Interlace,
16583 &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Composite_Sync,
16584 &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Positive_CSync,
16585 &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Negative_CSync,
16586 &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_HSkew,
16587 &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Broadcast,
16588 &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Pixmux,
16589 &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Double_Clock,
16590 &hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Half_Clock,
16591 NULL
16592 };
16593 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_DeleteModeLine_flags, ett_x11_rectangle, flags_bits, byte_order);
16594 }
16595 *offsetp += 4;
16596 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16597 *offsetp += 12;
16598 f_privsize = tvb_get_uint32(tvb, *offsetp, byte_order);
16599 proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_privsize, tvb, *offsetp, 4, byte_order);
16600 *offsetp += 4;
16601 listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_DeleteModeLine_private, f_privsize, byte_order);
16602 length -= f_privsize * 1;
16603}
16604
16605static void xf86vidmodeValidateModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16606{
16607 int f_privsize;
16608 proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_screen, tvb, *offsetp, 4, byte_order);
16609 *offsetp += 4;
16610 proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_dotclock, tvb, *offsetp, 4, byte_order);
16611 *offsetp += 4;
16612 proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hdisplay, tvb, *offsetp, 2, byte_order);
16613 *offsetp += 2;
16614 proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hsyncstart, tvb, *offsetp, 2, byte_order);
16615 *offsetp += 2;
16616 proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hsyncend, tvb, *offsetp, 2, byte_order);
16617 *offsetp += 2;
16618 proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_htotal, tvb, *offsetp, 2, byte_order);
16619 *offsetp += 2;
16620 proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hskew, tvb, *offsetp, 2, byte_order);
16621 *offsetp += 2;
16622 proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vdisplay, tvb, *offsetp, 2, byte_order);
16623 *offsetp += 2;
16624 proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vsyncstart, tvb, *offsetp, 2, byte_order);
16625 *offsetp += 2;
16626 proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vsyncend, tvb, *offsetp, 2, byte_order);
16627 *offsetp += 2;
16628 proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vtotal, tvb, *offsetp, 2, byte_order);
16629 *offsetp += 2;
16630 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16631 *offsetp += 2;
16632 {
16633 static int* const flags_bits [] = {
16634 &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Positive_HSync,
16635 &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Negative_HSync,
16636 &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Positive_VSync,
16637 &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Negative_VSync,
16638 &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Interlace,
16639 &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Composite_Sync,
16640 &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Positive_CSync,
16641 &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Negative_CSync,
16642 &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_HSkew,
16643 &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Broadcast,
16644 &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Pixmux,
16645 &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Double_Clock,
16646 &hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Half_Clock,
16647 NULL
16648 };
16649 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_ValidateModeLine_flags, ett_x11_rectangle, flags_bits, byte_order);
16650 }
16651 *offsetp += 4;
16652 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16653 *offsetp += 12;
16654 f_privsize = tvb_get_uint32(tvb, *offsetp, byte_order);
16655 proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_privsize, tvb, *offsetp, 4, byte_order);
16656 *offsetp += 4;
16657 listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_ValidateModeLine_private, f_privsize, byte_order);
16658 length -= f_privsize * 1;
16659}
16660static void xf86vidmodeValidateModeLine_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16661{
16662 int sequence_number;
16663
16664 col_append_fstr(pinfo->cinfo, COL_INFO, "-ValidateModeLine");
16665
16666 REPLY(reply);
16667 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16668 *offsetp += 1;
16669 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
16670 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16671 "%d (xf86vidmode-ValidateModeLine)", sequence_number);
16672 *offsetp += 2;
16673 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16674 *offsetp += 4;
16675 proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_reply_status, tvb, *offsetp, 4, byte_order);
16676 *offsetp += 4;
16677 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
16678 *offsetp += 20;
16679}
16680
16681static void xf86vidmodeSwitchToMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16682{
16683 int f_privsize;
16684 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_screen, tvb, *offsetp, 4, byte_order);
16685 *offsetp += 4;
16686 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_dotclock, tvb, *offsetp, 4, byte_order);
16687 *offsetp += 4;
16688 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hdisplay, tvb, *offsetp, 2, byte_order);
16689 *offsetp += 2;
16690 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hsyncstart, tvb, *offsetp, 2, byte_order);
16691 *offsetp += 2;
16692 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hsyncend, tvb, *offsetp, 2, byte_order);
16693 *offsetp += 2;
16694 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_htotal, tvb, *offsetp, 2, byte_order);
16695 *offsetp += 2;
16696 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hskew, tvb, *offsetp, 2, byte_order);
16697 *offsetp += 2;
16698 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vdisplay, tvb, *offsetp, 2, byte_order);
16699 *offsetp += 2;
16700 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vsyncstart, tvb, *offsetp, 2, byte_order);
16701 *offsetp += 2;
16702 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vsyncend, tvb, *offsetp, 2, byte_order);
16703 *offsetp += 2;
16704 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vtotal, tvb, *offsetp, 2, byte_order);
16705 *offsetp += 2;
16706 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16707 *offsetp += 2;
16708 {
16709 static int* const flags_bits [] = {
16710 &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Positive_HSync,
16711 &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Negative_HSync,
16712 &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Positive_VSync,
16713 &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Negative_VSync,
16714 &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Interlace,
16715 &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Composite_Sync,
16716 &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Positive_CSync,
16717 &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Negative_CSync,
16718 &hf_x11_xf86vidmode_SwitchToMode_flags_mask_HSkew,
16719 &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Broadcast,
16720 &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Pixmux,
16721 &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Double_Clock,
16722 &hf_x11_xf86vidmode_SwitchToMode_flags_mask_Half_Clock,
16723 NULL
16724 };
16725 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_SwitchToMode_flags, ett_x11_rectangle, flags_bits, byte_order);
16726 }
16727 *offsetp += 4;
16728 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16729 *offsetp += 12;
16730 f_privsize = tvb_get_uint32(tvb, *offsetp, byte_order);
16731 proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_privsize, tvb, *offsetp, 4, byte_order);
16732 *offsetp += 4;
16733 listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_SwitchToMode_private, f_privsize, byte_order);
16734 length -= f_privsize * 1;
16735}
16736
16737static void xf86vidmodeGetViewPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16738{
16739 proto_tree_add_item(t, hf_x11_xf86vidmode_GetViewPort_screen, tvb, *offsetp, 2, byte_order);
16740 *offsetp += 2;
16741 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16742 *offsetp += 2;
16743}
16744static void xf86vidmodeGetViewPort_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16745{
16746 int sequence_number;
16747
16748 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetViewPort");
16749
16750 REPLY(reply);
16751 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16752 *offsetp += 1;
16753 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
16754 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16755 "%d (xf86vidmode-GetViewPort)", sequence_number);
16756 *offsetp += 2;
16757 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16758 *offsetp += 4;
16759 proto_tree_add_item(t, hf_x11_xf86vidmode_GetViewPort_reply_x, tvb, *offsetp, 4, byte_order);
16760 *offsetp += 4;
16761 proto_tree_add_item(t, hf_x11_xf86vidmode_GetViewPort_reply_y, tvb, *offsetp, 4, byte_order);
16762 *offsetp += 4;
16763 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
16764 *offsetp += 16;
16765}
16766
16767static void xf86vidmodeSetViewPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16768{
16769 proto_tree_add_item(t, hf_x11_xf86vidmode_SetViewPort_screen, tvb, *offsetp, 2, byte_order);
16770 *offsetp += 2;
16771 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16772 *offsetp += 2;
16773 proto_tree_add_item(t, hf_x11_xf86vidmode_SetViewPort_x, tvb, *offsetp, 4, byte_order);
16774 *offsetp += 4;
16775 proto_tree_add_item(t, hf_x11_xf86vidmode_SetViewPort_y, tvb, *offsetp, 4, byte_order);
16776 *offsetp += 4;
16777}
16778
16779static void xf86vidmodeGetDotClocks(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16780{
16781 proto_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_screen, tvb, *offsetp, 2, byte_order);
16782 *offsetp += 2;
16783 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16784 *offsetp += 2;
16785}
16786static void xf86vidmodeGetDotClocks_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16787{
16788 int sequence_number;
16789 int f_flags;
16790 int f_clocks;
16791
16792 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDotClocks");
16793
16794 REPLY(reply);
16795 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16796 *offsetp += 1;
16797 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
16798 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16799 "%d (xf86vidmode-GetDotClocks)", sequence_number);
16800 *offsetp += 2;
16801 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16802 *offsetp += 4;
16803 f_flags = tvb_get_uint32(tvb, *offsetp, byte_order);
16804 {
16805 static int* const flags_bits [] = {
16806 &hf_x11_xf86vidmode_GetDotClocks_reply_flags_mask_Programable,
16807 NULL
16808 };
16809 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_GetDotClocks_reply_flags, ett_x11_rectangle, flags_bits, byte_order);
16810 }
16811 *offsetp += 4;
16812 f_clocks = tvb_get_uint32(tvb, *offsetp, byte_order);
16813 proto_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_reply_clocks, tvb, *offsetp, 4, byte_order);
16814 *offsetp += 4;
16815 proto_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_reply_maxclocks, tvb, *offsetp, 4, byte_order);
16816 *offsetp += 4;
16817 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16818 *offsetp += 12;
16819 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);
16820}
16821
16822static void xf86vidmodeSetClientVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16823{
16824 proto_tree_add_item(t, hf_x11_xf86vidmode_SetClientVersion_major, tvb, *offsetp, 2, byte_order);
16825 *offsetp += 2;
16826 proto_tree_add_item(t, hf_x11_xf86vidmode_SetClientVersion_minor, tvb, *offsetp, 2, byte_order);
16827 *offsetp += 2;
16828}
16829
16830static void xf86vidmodeSetGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16831{
16832 proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_screen, tvb, *offsetp, 2, byte_order);
16833 *offsetp += 2;
16834 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16835 *offsetp += 2;
16836 proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_red, tvb, *offsetp, 4, byte_order);
16837 *offsetp += 4;
16838 proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_green, tvb, *offsetp, 4, byte_order);
16839 *offsetp += 4;
16840 proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_blue, tvb, *offsetp, 4, byte_order);
16841 *offsetp += 4;
16842 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16843 *offsetp += 12;
16844}
16845
16846static void xf86vidmodeGetGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16847{
16848 proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_screen, tvb, *offsetp, 2, byte_order);
16849 *offsetp += 2;
16850 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 26, ENC_NA);
16851 *offsetp += 26;
16852}
16853static void xf86vidmodeGetGamma_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16854{
16855 int sequence_number;
16856
16857 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetGamma");
16858
16859 REPLY(reply);
16860 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16861 *offsetp += 1;
16862 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
16863 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16864 "%d (xf86vidmode-GetGamma)", sequence_number);
16865 *offsetp += 2;
16866 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16867 *offsetp += 4;
16868 proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_reply_red, tvb, *offsetp, 4, byte_order);
16869 *offsetp += 4;
16870 proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_reply_green, tvb, *offsetp, 4, byte_order);
16871 *offsetp += 4;
16872 proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_reply_blue, tvb, *offsetp, 4, byte_order);
16873 *offsetp += 4;
16874 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
16875 *offsetp += 12;
16876}
16877
16878static void xf86vidmodeGetGammaRamp(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16879{
16880 proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRamp_screen, tvb, *offsetp, 2, byte_order);
16881 *offsetp += 2;
16882 proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRamp_size, tvb, *offsetp, 2, byte_order);
16883 *offsetp += 2;
16884}
16885static void xf86vidmodeGetGammaRamp_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16886{
16887 int sequence_number;
16888 int f_size;
16889
16890 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetGammaRamp");
16891
16892 REPLY(reply);
16893 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16894 *offsetp += 1;
16895 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
16896 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16897 "%d (xf86vidmode-GetGammaRamp)", sequence_number);
16898 *offsetp += 2;
16899 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16900 *offsetp += 4;
16901 f_size = tvb_get_uint16(tvb, *offsetp, byte_order);
16902 proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRamp_reply_size, tvb, *offsetp, 2, byte_order);
16903 *offsetp += 2;
16904 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
16905 *offsetp += 22;
16906 listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_GetGammaRamp_reply_red, hf_x11_xf86vidmode_GetGammaRamp_reply_red_item, ((f_size + 1) & (~1)), byte_order);
16907 listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_GetGammaRamp_reply_green, hf_x11_xf86vidmode_GetGammaRamp_reply_green_item, ((f_size + 1) & (~1)), byte_order);
16908 listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_GetGammaRamp_reply_blue, hf_x11_xf86vidmode_GetGammaRamp_reply_blue_item, ((f_size + 1) & (~1)), byte_order);
16909}
16910
16911static void xf86vidmodeSetGammaRamp(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16912{
16913 int f_size;
16914 proto_tree_add_item(t, hf_x11_xf86vidmode_SetGammaRamp_screen, tvb, *offsetp, 2, byte_order);
16915 *offsetp += 2;
16916 f_size = tvb_get_uint16(tvb, *offsetp, byte_order);
16917 proto_tree_add_item(t, hf_x11_xf86vidmode_SetGammaRamp_size, tvb, *offsetp, 2, byte_order);
16918 *offsetp += 2;
16919 listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_SetGammaRamp_red, hf_x11_xf86vidmode_SetGammaRamp_red_item, ((f_size + 1) & (~1)), byte_order);
16920 length -= ((f_size + 1) & (~1)) * 2;
16921 listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_SetGammaRamp_green, hf_x11_xf86vidmode_SetGammaRamp_green_item, ((f_size + 1) & (~1)), byte_order);
16922 length -= ((f_size + 1) & (~1)) * 2;
16923 listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_SetGammaRamp_blue, hf_x11_xf86vidmode_SetGammaRamp_blue_item, ((f_size + 1) & (~1)), byte_order);
16924 length -= ((f_size + 1) & (~1)) * 2;
16925}
16926
16927static void xf86vidmodeGetGammaRampSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16928{
16929 proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRampSize_screen, tvb, *offsetp, 2, byte_order);
16930 *offsetp += 2;
16931 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16932 *offsetp += 2;
16933}
16934static void xf86vidmodeGetGammaRampSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16935{
16936 int sequence_number;
16937
16938 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetGammaRampSize");
16939
16940 REPLY(reply);
16941 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16942 *offsetp += 1;
16943 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
16944 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16945 "%d (xf86vidmode-GetGammaRampSize)", sequence_number);
16946 *offsetp += 2;
16947 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16948 *offsetp += 4;
16949 proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRampSize_reply_size, tvb, *offsetp, 2, byte_order);
16950 *offsetp += 2;
16951 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
16952 *offsetp += 22;
16953}
16954
16955static void xf86vidmodeGetPermissions(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
16956{
16957 proto_tree_add_item(t, hf_x11_xf86vidmode_GetPermissions_screen, tvb, *offsetp, 2, byte_order);
16958 *offsetp += 2;
16959 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
16960 *offsetp += 2;
16961}
16962static void xf86vidmodeGetPermissions_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
16963{
16964 int sequence_number;
16965
16966 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPermissions");
16967
16968 REPLY(reply);
16969 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
16970 *offsetp += 1;
16971 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
16972 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
16973 "%d (xf86vidmode-GetPermissions)", sequence_number);
16974 *offsetp += 2;
16975 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
16976 *offsetp += 4;
16977 {
16978 static int* const permissions_bits [] = {
16979 &hf_x11_xf86vidmode_GetPermissions_reply_permissions_mask_Read,
16980 &hf_x11_xf86vidmode_GetPermissions_reply_permissions_mask_Write,
16981 NULL
16982 };
16983 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xf86vidmode_GetPermissions_reply_permissions, ett_x11_rectangle, permissions_bits, byte_order);
16984 }
16985 *offsetp += 4;
16986 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
16987 *offsetp += 20;
16988}
16989static const value_string xf86vidmode_extension_minor[] = {
16990 { 0, "QueryVersion" },
16991 { 1, "GetModeLine" },
16992 { 2, "ModModeLine" },
16993 { 3, "SwitchMode" },
16994 { 4, "GetMonitor" },
16995 { 5, "LockModeSwitch" },
16996 { 6, "GetAllModeLines" },
16997 { 7, "AddModeLine" },
16998 { 8, "DeleteModeLine" },
16999 { 9, "ValidateModeLine" },
17000 { 10, "SwitchToMode" },
17001 { 11, "GetViewPort" },
17002 { 12, "SetViewPort" },
17003 { 13, "GetDotClocks" },
17004 { 14, "SetClientVersion" },
17005 { 15, "SetGamma" },
17006 { 16, "GetGamma" },
17007 { 17, "GetGammaRamp" },
17008 { 18, "SetGammaRamp" },
17009 { 19, "GetGammaRampSize" },
17010 { 20, "GetPermissions" },
17011 { 0, NULL }
17012};
17013static const x11_event_info xf86vidmode_events[] = {
17014 { NULL, NULL }
17015};
17016static const x11_reply_info xf86vidmode_replies[] = {
17017 { 0, xf86vidmodeQueryVersion_Reply },
17018 { 1, xf86vidmodeGetModeLine_Reply },
17019 { 4, xf86vidmodeGetMonitor_Reply },
17020 { 6, xf86vidmodeGetAllModeLines_Reply },
17021 { 9, xf86vidmodeValidateModeLine_Reply },
17022 { 11, xf86vidmodeGetViewPort_Reply },
17023 { 13, xf86vidmodeGetDotClocks_Reply },
17024 { 16, xf86vidmodeGetGamma_Reply },
17025 { 17, xf86vidmodeGetGammaRamp_Reply },
17026 { 19, xf86vidmodeGetGammaRampSize_Reply },
17027 { 20, xf86vidmodeGetPermissions_Reply },
17028 { 0, NULL }
17029};
17030
17031static void dispatch_xf86vidmode(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17032{
17033 int minor, length;
17034 minor = CARD8(xf86vidmode_extension_minor);
17035 length = REQUEST_LENGTH();
17036
17037 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
17038 val_to_str(minor, xf86vidmode_extension_minor,
17039 "<Unknown opcode %d>"));
17040 switch (minor) {
17041 case 0:
17042 xf86vidmodeQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
17043 break;
17044 case 1:
17045 xf86vidmodeGetModeLine(tvb, pinfo, offsetp, t, byte_order, length);
17046 break;
17047 case 2:
17048 xf86vidmodeModModeLine(tvb, pinfo, offsetp, t, byte_order, length);
17049 break;
17050 case 3:
17051 xf86vidmodeSwitchMode(tvb, pinfo, offsetp, t, byte_order, length);
17052 break;
17053 case 4:
17054 xf86vidmodeGetMonitor(tvb, pinfo, offsetp, t, byte_order, length);
17055 break;
17056 case 5:
17057 xf86vidmodeLockModeSwitch(tvb, pinfo, offsetp, t, byte_order, length);
17058 break;
17059 case 6:
17060 xf86vidmodeGetAllModeLines(tvb, pinfo, offsetp, t, byte_order, length);
17061 break;
17062 case 7:
17063 xf86vidmodeAddModeLine(tvb, pinfo, offsetp, t, byte_order, length);
17064 break;
17065 case 8:
17066 xf86vidmodeDeleteModeLine(tvb, pinfo, offsetp, t, byte_order, length);
17067 break;
17068 case 9:
17069 xf86vidmodeValidateModeLine(tvb, pinfo, offsetp, t, byte_order, length);
17070 break;
17071 case 10:
17072 xf86vidmodeSwitchToMode(tvb, pinfo, offsetp, t, byte_order, length);
17073 break;
17074 case 11:
17075 xf86vidmodeGetViewPort(tvb, pinfo, offsetp, t, byte_order, length);
17076 break;
17077 case 12:
17078 xf86vidmodeSetViewPort(tvb, pinfo, offsetp, t, byte_order, length);
17079 break;
17080 case 13:
17081 xf86vidmodeGetDotClocks(tvb, pinfo, offsetp, t, byte_order, length);
17082 break;
17083 case 14:
17084 xf86vidmodeSetClientVersion(tvb, pinfo, offsetp, t, byte_order, length);
17085 break;
17086 case 15:
17087 xf86vidmodeSetGamma(tvb, pinfo, offsetp, t, byte_order, length);
17088 break;
17089 case 16:
17090 xf86vidmodeGetGamma(tvb, pinfo, offsetp, t, byte_order, length);
17091 break;
17092 case 17:
17093 xf86vidmodeGetGammaRamp(tvb, pinfo, offsetp, t, byte_order, length);
17094 break;
17095 case 18:
17096 xf86vidmodeSetGammaRamp(tvb, pinfo, offsetp, t, byte_order, length);
17097 break;
17098 case 19:
17099 xf86vidmodeGetGammaRampSize(tvb, pinfo, offsetp, t, byte_order, length);
17100 break;
17101 case 20:
17102 xf86vidmodeGetPermissions(tvb, pinfo, offsetp, t, byte_order, length);
17103 break;
17104 /* No need for a default case here, since Unknown is printed above,
17105 and UNDECODED() is taken care of by dissect_x11_request */
17106 }
17107}
17108
17109static void register_xf86vidmode(void)
17110{
17111 set_handler("XFree86-VidModeExtension", dispatch_xf86vidmode, xf86vidmode_errors, xf86vidmode_events, NULL, xf86vidmode_replies);
17112}
17113
17114static void xfixesQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17115{
17116 proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_client_major_version, tvb, *offsetp, 4, byte_order);
17117 *offsetp += 4;
17118 proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_client_minor_version, tvb, *offsetp, 4, byte_order);
17119 *offsetp += 4;
17120}
17121static void xfixesQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17122{
17123 int sequence_number;
17124
17125 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
17126
17127 REPLY(reply);
17128 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17129 *offsetp += 1;
17130 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
17131 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17132 "%d (xfixes-QueryVersion)", sequence_number);
17133 *offsetp += 2;
17134 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17135 *offsetp += 4;
17136 proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_reply_major_version, tvb, *offsetp, 4, byte_order);
17137 *offsetp += 4;
17138 proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_reply_minor_version, tvb, *offsetp, 4, byte_order);
17139 *offsetp += 4;
17140 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
17141 *offsetp += 16;
17142}
17143
17144static void xfixesChangeSaveSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17145{
17146 field8(tvb, offsetp, t, hf_x11_xfixes_ChangeSaveSet_mode, byte_order);
17147 field8(tvb, offsetp, t, hf_x11_xfixes_ChangeSaveSet_target, byte_order);
17148 field8(tvb, offsetp, t, hf_x11_xfixes_ChangeSaveSet_map, byte_order);
17149 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17150 *offsetp += 1;
17151 proto_tree_add_item(t, hf_x11_xfixes_ChangeSaveSet_window, tvb, *offsetp, 4, byte_order);
17152 *offsetp += 4;
17153}
17154
17155static void xfixesSelectSelectionInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17156{
17157 proto_tree_add_item(t, hf_x11_xfixes_SelectSelectionInput_window, tvb, *offsetp, 4, byte_order);
17158 *offsetp += 4;
17159 proto_tree_add_item(t, hf_x11_xfixes_SelectSelectionInput_selection, tvb, *offsetp, 4, byte_order);
17160 *offsetp += 4;
17161 {
17162 static int* const event_mask_bits [] = {
17163 &hf_x11_xfixes_SelectSelectionInput_event_mask_mask_SetSelectionOwner,
17164 &hf_x11_xfixes_SelectSelectionInput_event_mask_mask_SelectionWindowDestroy,
17165 &hf_x11_xfixes_SelectSelectionInput_event_mask_mask_SelectionClientClose,
17166 NULL
17167 };
17168 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xfixes_SelectSelectionInput_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
17169 }
17170 *offsetp += 4;
17171}
17172
17173static void xfixesCursorNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
17174{
17175 field8(tvb, offsetp, t, hf_x11_xfixes_CursorNotify_subtype, byte_order);
17176 CARD16(event_sequencenumber);
17177 proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_window, tvb, *offsetp, 4, byte_order);
17178 *offsetp += 4;
17179 proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_cursor_serial, tvb, *offsetp, 4, byte_order);
17180 *offsetp += 4;
17181 proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_timestamp, tvb, *offsetp, 4, byte_order);
17182 *offsetp += 4;
17183 field32(tvb, offsetp, t, hf_x11_xfixes_CursorNotify_name, byte_order);
17184 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
17185 *offsetp += 12;
17186}
17187
17188
17189static void xfixesSelectCursorInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17190{
17191 proto_tree_add_item(t, hf_x11_xfixes_SelectCursorInput_window, tvb, *offsetp, 4, byte_order);
17192 *offsetp += 4;
17193 {
17194 static int* const event_mask_bits [] = {
17195 &hf_x11_xfixes_SelectCursorInput_event_mask_mask_DisplayCursor,
17196 NULL
17197 };
17198 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xfixes_SelectCursorInput_event_mask, ett_x11_rectangle, event_mask_bits, byte_order);
17199 }
17200 *offsetp += 4;
17201}
17202
17203static void xfixesGetCursorImage(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
17204{
17205}
17206static void xfixesGetCursorImage_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17207{
17208 int sequence_number;
17209 int f_width;
17210 int f_height;
17211
17212 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCursorImage");
17213
17214 REPLY(reply);
17215 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17216 *offsetp += 1;
17217 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
17218 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17219 "%d (xfixes-GetCursorImage)", sequence_number);
17220 *offsetp += 2;
17221 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17222 *offsetp += 4;
17223 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_x, tvb, *offsetp, 2, byte_order);
17224 *offsetp += 2;
17225 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_y, tvb, *offsetp, 2, byte_order);
17226 *offsetp += 2;
17227 f_width = tvb_get_uint16(tvb, *offsetp, byte_order);
17228 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_width, tvb, *offsetp, 2, byte_order);
17229 *offsetp += 2;
17230 f_height = tvb_get_uint16(tvb, *offsetp, byte_order);
17231 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_height, tvb, *offsetp, 2, byte_order);
17232 *offsetp += 2;
17233 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_xhot, tvb, *offsetp, 2, byte_order);
17234 *offsetp += 2;
17235 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_yhot, tvb, *offsetp, 2, byte_order);
17236 *offsetp += 2;
17237 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_cursor_serial, tvb, *offsetp, 4, byte_order);
17238 *offsetp += 4;
17239 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
17240 *offsetp += 8;
17241 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);
17242}
17243
17244static void xfixesCreateRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17245{
17246 proto_tree_add_item(t, hf_x11_xfixes_CreateRegion_region, tvb, *offsetp, 4, byte_order);
17247 *offsetp += 4;
17248 struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 8) / 8);
17249}
17250
17251static void xfixesCreateRegionFromBitmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17252{
17253 proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromBitmap_region, tvb, *offsetp, 4, byte_order);
17254 *offsetp += 4;
17255 proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromBitmap_bitmap, tvb, *offsetp, 4, byte_order);
17256 *offsetp += 4;
17257}
17258
17259static void xfixesCreateRegionFromWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17260{
17261 proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromWindow_region, tvb, *offsetp, 4, byte_order);
17262 *offsetp += 4;
17263 proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromWindow_window, tvb, *offsetp, 4, byte_order);
17264 *offsetp += 4;
17265 field8(tvb, offsetp, t, hf_x11_xfixes_CreateRegionFromWindow_kind, byte_order);
17266 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
17267 *offsetp += 3;
17268}
17269
17270static void xfixesCreateRegionFromGC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17271{
17272 proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromGC_region, tvb, *offsetp, 4, byte_order);
17273 *offsetp += 4;
17274 proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromGC_gc, tvb, *offsetp, 4, byte_order);
17275 *offsetp += 4;
17276}
17277
17278static void xfixesCreateRegionFromPicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17279{
17280 proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromPicture_region, tvb, *offsetp, 4, byte_order);
17281 *offsetp += 4;
17282 proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromPicture_picture, tvb, *offsetp, 4, byte_order);
17283 *offsetp += 4;
17284}
17285
17286static void xfixesDestroyRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17287{
17288 proto_tree_add_item(t, hf_x11_xfixes_DestroyRegion_region, tvb, *offsetp, 4, byte_order);
17289 *offsetp += 4;
17290}
17291
17292static void xfixesSetRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17293{
17294 proto_tree_add_item(t, hf_x11_xfixes_SetRegion_region, tvb, *offsetp, 4, byte_order);
17295 *offsetp += 4;
17296 struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (length - 8) / 8);
17297}
17298
17299static void xfixesCopyRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17300{
17301 proto_tree_add_item(t, hf_x11_xfixes_CopyRegion_source, tvb, *offsetp, 4, byte_order);
17302 *offsetp += 4;
17303 proto_tree_add_item(t, hf_x11_xfixes_CopyRegion_destination, tvb, *offsetp, 4, byte_order);
17304 *offsetp += 4;
17305}
17306
17307static void xfixesUnionRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17308{
17309 proto_tree_add_item(t, hf_x11_xfixes_UnionRegion_source1, tvb, *offsetp, 4, byte_order);
17310 *offsetp += 4;
17311 proto_tree_add_item(t, hf_x11_xfixes_UnionRegion_source2, tvb, *offsetp, 4, byte_order);
17312 *offsetp += 4;
17313 proto_tree_add_item(t, hf_x11_xfixes_UnionRegion_destination, tvb, *offsetp, 4, byte_order);
17314 *offsetp += 4;
17315}
17316
17317static void xfixesIntersectRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17318{
17319 proto_tree_add_item(t, hf_x11_xfixes_IntersectRegion_source1, tvb, *offsetp, 4, byte_order);
17320 *offsetp += 4;
17321 proto_tree_add_item(t, hf_x11_xfixes_IntersectRegion_source2, tvb, *offsetp, 4, byte_order);
17322 *offsetp += 4;
17323 proto_tree_add_item(t, hf_x11_xfixes_IntersectRegion_destination, tvb, *offsetp, 4, byte_order);
17324 *offsetp += 4;
17325}
17326
17327static void xfixesSubtractRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17328{
17329 proto_tree_add_item(t, hf_x11_xfixes_SubtractRegion_source1, tvb, *offsetp, 4, byte_order);
17330 *offsetp += 4;
17331 proto_tree_add_item(t, hf_x11_xfixes_SubtractRegion_source2, tvb, *offsetp, 4, byte_order);
17332 *offsetp += 4;
17333 proto_tree_add_item(t, hf_x11_xfixes_SubtractRegion_destination, tvb, *offsetp, 4, byte_order);
17334 *offsetp += 4;
17335}
17336
17337static void xfixesInvertRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17338{
17339 proto_tree_add_item(t, hf_x11_xfixes_InvertRegion_source, tvb, *offsetp, 4, byte_order);
17340 *offsetp += 4;
17341 struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, 1);
17342 proto_tree_add_item(t, hf_x11_xfixes_InvertRegion_destination, tvb, *offsetp, 4, byte_order);
17343 *offsetp += 4;
17344}
17345
17346static void xfixesTranslateRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17347{
17348 proto_tree_add_item(t, hf_x11_xfixes_TranslateRegion_region, tvb, *offsetp, 4, byte_order);
17349 *offsetp += 4;
17350 proto_tree_add_item(t, hf_x11_xfixes_TranslateRegion_dx, tvb, *offsetp, 2, byte_order);
17351 *offsetp += 2;
17352 proto_tree_add_item(t, hf_x11_xfixes_TranslateRegion_dy, tvb, *offsetp, 2, byte_order);
17353 *offsetp += 2;
17354}
17355
17356static void xfixesRegionExtents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17357{
17358 proto_tree_add_item(t, hf_x11_xfixes_RegionExtents_source, tvb, *offsetp, 4, byte_order);
17359 *offsetp += 4;
17360 proto_tree_add_item(t, hf_x11_xfixes_RegionExtents_destination, tvb, *offsetp, 4, byte_order);
17361 *offsetp += 4;
17362}
17363
17364static void xfixesFetchRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17365{
17366 proto_tree_add_item(t, hf_x11_xfixes_FetchRegion_region, tvb, *offsetp, 4, byte_order);
17367 *offsetp += 4;
17368}
17369static void xfixesFetchRegion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17370{
17371 int sequence_number;
17372 int f_length;
17373
17374 col_append_fstr(pinfo->cinfo, COL_INFO, "-FetchRegion");
17375
17376 REPLY(reply);
17377 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17378 *offsetp += 1;
17379 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
17380 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17381 "%d (xfixes-FetchRegion)", sequence_number);
17382 *offsetp += 2;
17383 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
17384 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17385 *offsetp += 4;
17386 struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, 1);
17387 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
17388 *offsetp += 16;
17389 struct_xproto_RECTANGLE(tvb, offsetp, t, byte_order, (f_length / 2));
17390}
17391
17392static void xfixesSetGCClipRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17393{
17394 proto_tree_add_item(t, hf_x11_xfixes_SetGCClipRegion_gc, tvb, *offsetp, 4, byte_order);
17395 *offsetp += 4;
17396 field32(tvb, offsetp, t, hf_x11_xfixes_SetGCClipRegion_region, byte_order);
17397 proto_tree_add_item(t, hf_x11_xfixes_SetGCClipRegion_x_origin, tvb, *offsetp, 2, byte_order);
17398 *offsetp += 2;
17399 proto_tree_add_item(t, hf_x11_xfixes_SetGCClipRegion_y_origin, tvb, *offsetp, 2, byte_order);
17400 *offsetp += 2;
17401}
17402
17403static void xfixesSetWindowShapeRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17404{
17405 proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_dest, tvb, *offsetp, 4, byte_order);
17406 *offsetp += 4;
17407 field8(tvb, offsetp, t, hf_x11_xfixes_SetWindowShapeRegion_dest_kind, byte_order);
17408 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
17409 *offsetp += 3;
17410 proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_x_offset, tvb, *offsetp, 2, byte_order);
17411 *offsetp += 2;
17412 proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_y_offset, tvb, *offsetp, 2, byte_order);
17413 *offsetp += 2;
17414 field32(tvb, offsetp, t, hf_x11_xfixes_SetWindowShapeRegion_region, byte_order);
17415}
17416
17417static void xfixesSetPictureClipRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17418{
17419 proto_tree_add_item(t, hf_x11_xfixes_SetPictureClipRegion_picture, tvb, *offsetp, 4, byte_order);
17420 *offsetp += 4;
17421 field32(tvb, offsetp, t, hf_x11_xfixes_SetPictureClipRegion_region, byte_order);
17422 proto_tree_add_item(t, hf_x11_xfixes_SetPictureClipRegion_x_origin, tvb, *offsetp, 2, byte_order);
17423 *offsetp += 2;
17424 proto_tree_add_item(t, hf_x11_xfixes_SetPictureClipRegion_y_origin, tvb, *offsetp, 2, byte_order);
17425 *offsetp += 2;
17426}
17427
17428static void xfixesSetCursorName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17429{
17430 int f_nbytes;
17431 proto_tree_add_item(t, hf_x11_xfixes_SetCursorName_cursor, tvb, *offsetp, 4, byte_order);
17432 *offsetp += 4;
17433 f_nbytes = tvb_get_uint16(tvb, *offsetp, byte_order);
17434 proto_tree_add_item(t, hf_x11_xfixes_SetCursorName_nbytes, tvb, *offsetp, 2, byte_order);
17435 *offsetp += 2;
17436 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17437 *offsetp += 2;
17438 listOfByte(tvb, offsetp, t, hf_x11_xfixes_SetCursorName_name, f_nbytes, byte_order);
17439 length -= f_nbytes * 1;
17440}
17441
17442static void xfixesGetCursorName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17443{
17444 proto_tree_add_item(t, hf_x11_xfixes_GetCursorName_cursor, tvb, *offsetp, 4, byte_order);
17445 *offsetp += 4;
17446}
17447static void xfixesGetCursorName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17448{
17449 int sequence_number;
17450 int f_nbytes;
17451
17452 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCursorName");
17453
17454 REPLY(reply);
17455 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17456 *offsetp += 1;
17457 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
17458 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17459 "%d (xfixes-GetCursorName)", sequence_number);
17460 *offsetp += 2;
17461 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17462 *offsetp += 4;
17463 field32(tvb, offsetp, t, hf_x11_xfixes_GetCursorName_reply_atom, byte_order);
17464 f_nbytes = tvb_get_uint16(tvb, *offsetp, byte_order);
17465 proto_tree_add_item(t, hf_x11_xfixes_GetCursorName_reply_nbytes, tvb, *offsetp, 2, byte_order);
17466 *offsetp += 2;
17467 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
17468 *offsetp += 18;
17469 listOfByte(tvb, offsetp, t, hf_x11_xfixes_GetCursorName_reply_name, f_nbytes, byte_order);
17470}
17471
17472static void xfixesGetCursorImageAndName(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
17473{
17474}
17475static void xfixesGetCursorImageAndName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17476{
17477 int sequence_number;
17478 int f_width;
17479 int f_height;
17480 int f_nbytes;
17481
17482 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCursorImageAndName");
17483
17484 REPLY(reply);
17485 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17486 *offsetp += 1;
17487 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
17488 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17489 "%d (xfixes-GetCursorImageAndName)", sequence_number);
17490 *offsetp += 2;
17491 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17492 *offsetp += 4;
17493 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_x, tvb, *offsetp, 2, byte_order);
17494 *offsetp += 2;
17495 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_y, tvb, *offsetp, 2, byte_order);
17496 *offsetp += 2;
17497 f_width = tvb_get_uint16(tvb, *offsetp, byte_order);
17498 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_width, tvb, *offsetp, 2, byte_order);
17499 *offsetp += 2;
17500 f_height = tvb_get_uint16(tvb, *offsetp, byte_order);
17501 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_height, tvb, *offsetp, 2, byte_order);
17502 *offsetp += 2;
17503 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_xhot, tvb, *offsetp, 2, byte_order);
17504 *offsetp += 2;
17505 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_yhot, tvb, *offsetp, 2, byte_order);
17506 *offsetp += 2;
17507 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_cursor_serial, tvb, *offsetp, 4, byte_order);
17508 *offsetp += 4;
17509 field32(tvb, offsetp, t, hf_x11_xfixes_GetCursorImageAndName_reply_cursor_atom, byte_order);
17510 f_nbytes = tvb_get_uint16(tvb, *offsetp, byte_order);
17511 proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_nbytes, tvb, *offsetp, 2, byte_order);
17512 *offsetp += 2;
17513 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17514 *offsetp += 2;
17515 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);
17516 listOfByte(tvb, offsetp, t, hf_x11_xfixes_GetCursorImageAndName_reply_name, f_nbytes, byte_order);
17517}
17518
17519static void xfixesChangeCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17520{
17521 proto_tree_add_item(t, hf_x11_xfixes_ChangeCursor_source, tvb, *offsetp, 4, byte_order);
17522 *offsetp += 4;
17523 proto_tree_add_item(t, hf_x11_xfixes_ChangeCursor_destination, tvb, *offsetp, 4, byte_order);
17524 *offsetp += 4;
17525}
17526
17527static void xfixesChangeCursorByName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17528{
17529 int f_nbytes;
17530 proto_tree_add_item(t, hf_x11_xfixes_ChangeCursorByName_src, tvb, *offsetp, 4, byte_order);
17531 *offsetp += 4;
17532 f_nbytes = tvb_get_uint16(tvb, *offsetp, byte_order);
17533 proto_tree_add_item(t, hf_x11_xfixes_ChangeCursorByName_nbytes, tvb, *offsetp, 2, byte_order);
17534 *offsetp += 2;
17535 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17536 *offsetp += 2;
17537 listOfByte(tvb, offsetp, t, hf_x11_xfixes_ChangeCursorByName_name, f_nbytes, byte_order);
17538 length -= f_nbytes * 1;
17539}
17540
17541static void xfixesExpandRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17542{
17543 proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_source, tvb, *offsetp, 4, byte_order);
17544 *offsetp += 4;
17545 proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_destination, tvb, *offsetp, 4, byte_order);
17546 *offsetp += 4;
17547 proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_left, tvb, *offsetp, 2, byte_order);
17548 *offsetp += 2;
17549 proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_right, tvb, *offsetp, 2, byte_order);
17550 *offsetp += 2;
17551 proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_top, tvb, *offsetp, 2, byte_order);
17552 *offsetp += 2;
17553 proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_bottom, tvb, *offsetp, 2, byte_order);
17554 *offsetp += 2;
17555}
17556
17557static void xfixesHideCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17558{
17559 proto_tree_add_item(t, hf_x11_xfixes_HideCursor_window, tvb, *offsetp, 4, byte_order);
17560 *offsetp += 4;
17561}
17562
17563static void xfixesShowCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17564{
17565 proto_tree_add_item(t, hf_x11_xfixes_ShowCursor_window, tvb, *offsetp, 4, byte_order);
17566 *offsetp += 4;
17567}
17568
17569static void xfixesCreatePointerBarrier(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17570{
17571 int f_num_devices;
17572 proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_barrier, tvb, *offsetp, 4, byte_order);
17573 *offsetp += 4;
17574 proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_window, tvb, *offsetp, 4, byte_order);
17575 *offsetp += 4;
17576 proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_x1, tvb, *offsetp, 2, byte_order);
17577 *offsetp += 2;
17578 proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_y1, tvb, *offsetp, 2, byte_order);
17579 *offsetp += 2;
17580 proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_x2, tvb, *offsetp, 2, byte_order);
17581 *offsetp += 2;
17582 proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_y2, tvb, *offsetp, 2, byte_order);
17583 *offsetp += 2;
17584 {
17585 static int* const directions_bits [] = {
17586 &hf_x11_xfixes_CreatePointerBarrier_directions_mask_PositiveX,
17587 &hf_x11_xfixes_CreatePointerBarrier_directions_mask_PositiveY,
17588 &hf_x11_xfixes_CreatePointerBarrier_directions_mask_NegativeX,
17589 &hf_x11_xfixes_CreatePointerBarrier_directions_mask_NegativeY,
17590 NULL
17591 };
17592 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xfixes_CreatePointerBarrier_directions, ett_x11_rectangle, directions_bits, byte_order);
17593 }
17594 *offsetp += 4;
17595 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
17596 *offsetp += 2;
17597 f_num_devices = tvb_get_uint16(tvb, *offsetp, byte_order);
17598 proto_tree_add_item(t, hf_x11_xfixes_CreatePointerBarrier_num_devices, tvb, *offsetp, 2, byte_order);
17599 *offsetp += 2;
17600 listOfCard16(tvb, offsetp, t, hf_x11_xfixes_CreatePointerBarrier_devices, hf_x11_xfixes_CreatePointerBarrier_devices_item, f_num_devices, byte_order);
17601 length -= f_num_devices * 2;
17602}
17603
17604static void xfixesDeletePointerBarrier(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17605{
17606 proto_tree_add_item(t, hf_x11_xfixes_DeletePointerBarrier_barrier, tvb, *offsetp, 4, byte_order);
17607 *offsetp += 4;
17608}
17609
17610static void xfixesSetClientDisconnectMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17611{
17612 {
17613 static int* const disconnect_mode_bits [] = {
17614 &hf_x11_xfixes_SetClientDisconnectMode_disconnect_mode_mask_Terminate,
17615 NULL
17616 };
17617 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xfixes_SetClientDisconnectMode_disconnect_mode, ett_x11_rectangle, disconnect_mode_bits, byte_order);
17618 }
17619 *offsetp += 4;
17620}
17621
17622static void xfixesGetClientDisconnectMode(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
17623{
17624}
17625static void xfixesGetClientDisconnectMode_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17626{
17627 int sequence_number;
17628
17629 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetClientDisconnectMode");
17630
17631 REPLY(reply);
17632 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17633 *offsetp += 1;
17634 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
17635 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17636 "%d (xfixes-GetClientDisconnectMode)", sequence_number);
17637 *offsetp += 2;
17638 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17639 *offsetp += 4;
17640 {
17641 static int* const disconnect_mode_bits [] = {
17642 &hf_x11_xfixes_GetClientDisconnectMode_reply_disconnect_mode_mask_Terminate,
17643 NULL
17644 };
17645 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xfixes_GetClientDisconnectMode_reply_disconnect_mode, ett_x11_rectangle, disconnect_mode_bits, byte_order);
17646 }
17647 *offsetp += 4;
17648 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
17649 *offsetp += 20;
17650}
17651static const value_string xfixes_extension_minor[] = {
17652 { 0, "QueryVersion" },
17653 { 1, "ChangeSaveSet" },
17654 { 2, "SelectSelectionInput" },
17655 { 3, "SelectCursorInput" },
17656 { 4, "GetCursorImage" },
17657 { 5, "CreateRegion" },
17658 { 6, "CreateRegionFromBitmap" },
17659 { 7, "CreateRegionFromWindow" },
17660 { 8, "CreateRegionFromGC" },
17661 { 9, "CreateRegionFromPicture" },
17662 { 10, "DestroyRegion" },
17663 { 11, "SetRegion" },
17664 { 12, "CopyRegion" },
17665 { 13, "UnionRegion" },
17666 { 14, "IntersectRegion" },
17667 { 15, "SubtractRegion" },
17668 { 16, "InvertRegion" },
17669 { 17, "TranslateRegion" },
17670 { 18, "RegionExtents" },
17671 { 19, "FetchRegion" },
17672 { 20, "SetGCClipRegion" },
17673 { 21, "SetWindowShapeRegion" },
17674 { 22, "SetPictureClipRegion" },
17675 { 23, "SetCursorName" },
17676 { 24, "GetCursorName" },
17677 { 25, "GetCursorImageAndName" },
17678 { 26, "ChangeCursor" },
17679 { 27, "ChangeCursorByName" },
17680 { 28, "ExpandRegion" },
17681 { 29, "HideCursor" },
17682 { 30, "ShowCursor" },
17683 { 31, "CreatePointerBarrier" },
17684 { 32, "DeletePointerBarrier" },
17685 { 33, "SetClientDisconnectMode" },
17686 { 34, "GetClientDisconnectMode" },
17687 { 0, NULL }
17688};
17689static const x11_event_info xfixes_events[] = {
17690 { "xfixes-CursorNotify", xfixesCursorNotify },
17691 { NULL, NULL }
17692};
17693static const x11_reply_info xfixes_replies[] = {
17694 { 0, xfixesQueryVersion_Reply },
17695 { 4, xfixesGetCursorImage_Reply },
17696 { 19, xfixesFetchRegion_Reply },
17697 { 24, xfixesGetCursorName_Reply },
17698 { 25, xfixesGetCursorImageAndName_Reply },
17699 { 34, xfixesGetClientDisconnectMode_Reply },
17700 { 0, NULL }
17701};
17702
17703static void dispatch_xfixes(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17704{
17705 int minor, length;
17706 minor = CARD8(xfixes_extension_minor);
17707 length = REQUEST_LENGTH();
17708
17709 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
17710 val_to_str(minor, xfixes_extension_minor,
17711 "<Unknown opcode %d>"));
17712 switch (minor) {
17713 case 0:
17714 xfixesQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
17715 break;
17716 case 1:
17717 xfixesChangeSaveSet(tvb, pinfo, offsetp, t, byte_order, length);
17718 break;
17719 case 2:
17720 xfixesSelectSelectionInput(tvb, pinfo, offsetp, t, byte_order, length);
17721 break;
17722 case 3:
17723 xfixesSelectCursorInput(tvb, pinfo, offsetp, t, byte_order, length);
17724 break;
17725 case 4:
17726 xfixesGetCursorImage(tvb, pinfo, offsetp, t, byte_order, length);
17727 break;
17728 case 5:
17729 xfixesCreateRegion(tvb, pinfo, offsetp, t, byte_order, length);
17730 break;
17731 case 6:
17732 xfixesCreateRegionFromBitmap(tvb, pinfo, offsetp, t, byte_order, length);
17733 break;
17734 case 7:
17735 xfixesCreateRegionFromWindow(tvb, pinfo, offsetp, t, byte_order, length);
17736 break;
17737 case 8:
17738 xfixesCreateRegionFromGC(tvb, pinfo, offsetp, t, byte_order, length);
17739 break;
17740 case 9:
17741 xfixesCreateRegionFromPicture(tvb, pinfo, offsetp, t, byte_order, length);
17742 break;
17743 case 10:
17744 xfixesDestroyRegion(tvb, pinfo, offsetp, t, byte_order, length);
17745 break;
17746 case 11:
17747 xfixesSetRegion(tvb, pinfo, offsetp, t, byte_order, length);
17748 break;
17749 case 12:
17750 xfixesCopyRegion(tvb, pinfo, offsetp, t, byte_order, length);
17751 break;
17752 case 13:
17753 xfixesUnionRegion(tvb, pinfo, offsetp, t, byte_order, length);
17754 break;
17755 case 14:
17756 xfixesIntersectRegion(tvb, pinfo, offsetp, t, byte_order, length);
17757 break;
17758 case 15:
17759 xfixesSubtractRegion(tvb, pinfo, offsetp, t, byte_order, length);
17760 break;
17761 case 16:
17762 xfixesInvertRegion(tvb, pinfo, offsetp, t, byte_order, length);
17763 break;
17764 case 17:
17765 xfixesTranslateRegion(tvb, pinfo, offsetp, t, byte_order, length);
17766 break;
17767 case 18:
17768 xfixesRegionExtents(tvb, pinfo, offsetp, t, byte_order, length);
17769 break;
17770 case 19:
17771 xfixesFetchRegion(tvb, pinfo, offsetp, t, byte_order, length);
17772 break;
17773 case 20:
17774 xfixesSetGCClipRegion(tvb, pinfo, offsetp, t, byte_order, length);
17775 break;
17776 case 21:
17777 xfixesSetWindowShapeRegion(tvb, pinfo, offsetp, t, byte_order, length);
17778 break;
17779 case 22:
17780 xfixesSetPictureClipRegion(tvb, pinfo, offsetp, t, byte_order, length);
17781 break;
17782 case 23:
17783 xfixesSetCursorName(tvb, pinfo, offsetp, t, byte_order, length);
17784 break;
17785 case 24:
17786 xfixesGetCursorName(tvb, pinfo, offsetp, t, byte_order, length);
17787 break;
17788 case 25:
17789 xfixesGetCursorImageAndName(tvb, pinfo, offsetp, t, byte_order, length);
17790 break;
17791 case 26:
17792 xfixesChangeCursor(tvb, pinfo, offsetp, t, byte_order, length);
17793 break;
17794 case 27:
17795 xfixesChangeCursorByName(tvb, pinfo, offsetp, t, byte_order, length);
17796 break;
17797 case 28:
17798 xfixesExpandRegion(tvb, pinfo, offsetp, t, byte_order, length);
17799 break;
17800 case 29:
17801 xfixesHideCursor(tvb, pinfo, offsetp, t, byte_order, length);
17802 break;
17803 case 30:
17804 xfixesShowCursor(tvb, pinfo, offsetp, t, byte_order, length);
17805 break;
17806 case 31:
17807 xfixesCreatePointerBarrier(tvb, pinfo, offsetp, t, byte_order, length);
17808 break;
17809 case 32:
17810 xfixesDeletePointerBarrier(tvb, pinfo, offsetp, t, byte_order, length);
17811 break;
17812 case 33:
17813 xfixesSetClientDisconnectMode(tvb, pinfo, offsetp, t, byte_order, length);
17814 break;
17815 case 34:
17816 xfixesGetClientDisconnectMode(tvb, pinfo, offsetp, t, byte_order, length);
17817 break;
17818 /* No need for a default case here, since Unknown is printed above,
17819 and UNDECODED() is taken care of by dissect_x11_request */
17820 }
17821}
17822
17823static void register_xfixes(void)
17824{
17825 set_handler("XFIXES", dispatch_xfixes, xfixes_errors, xfixes_events, NULL, xfixes_replies);
17826}
17827
17828static void struct_xinerama_ScreenInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
17829{
17830 int i;
17831 for (i = 0; i < count; i++) {
17832 proto_item *item;
17833 proto_tree *t;
17834
17835 item = proto_tree_add_item(root, hf_x11_struct_xinerama_ScreenInfo, tvb, *offsetp, 8, ENC_NA);
17836 t = proto_item_add_subtree(item, ett_x11_rectangle);
17837 proto_tree_add_item(t, hf_x11_struct_xinerama_ScreenInfo_x_org, tvb, *offsetp, 2, byte_order);
17838 *offsetp += 2;
17839 proto_tree_add_item(t, hf_x11_struct_xinerama_ScreenInfo_y_org, tvb, *offsetp, 2, byte_order);
17840 *offsetp += 2;
17841 proto_tree_add_item(t, hf_x11_struct_xinerama_ScreenInfo_width, tvb, *offsetp, 2, byte_order);
17842 *offsetp += 2;
17843 proto_tree_add_item(t, hf_x11_struct_xinerama_ScreenInfo_height, tvb, *offsetp, 2, byte_order);
17844 *offsetp += 2;
17845 }
17846}
17847
17848static void xineramaQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17849{
17850 proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_major, tvb, *offsetp, 1, byte_order);
17851 *offsetp += 1;
17852 proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_minor, tvb, *offsetp, 1, byte_order);
17853 *offsetp += 1;
17854}
17855static void xineramaQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17856{
17857 int sequence_number;
17858
17859 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
17860
17861 REPLY(reply);
17862 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17863 *offsetp += 1;
17864 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
17865 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17866 "%d (xinerama-QueryVersion)", sequence_number);
17867 *offsetp += 2;
17868 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17869 *offsetp += 4;
17870 proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_reply_major, tvb, *offsetp, 2, byte_order);
17871 *offsetp += 2;
17872 proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_reply_minor, tvb, *offsetp, 2, byte_order);
17873 *offsetp += 2;
17874}
17875
17876static void xineramaGetState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17877{
17878 proto_tree_add_item(t, hf_x11_xinerama_GetState_window, tvb, *offsetp, 4, byte_order);
17879 *offsetp += 4;
17880}
17881static void xineramaGetState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17882{
17883 int sequence_number;
17884
17885 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetState");
17886
17887 REPLY(reply);
17888 proto_tree_add_item(t, hf_x11_xinerama_GetState_reply_state, tvb, *offsetp, 1, ENC_NA);
17889 *offsetp += 1;
17890 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
17891 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17892 "%d (xinerama-GetState)", sequence_number);
17893 *offsetp += 2;
17894 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17895 *offsetp += 4;
17896 proto_tree_add_item(t, hf_x11_xinerama_GetState_reply_window, tvb, *offsetp, 4, byte_order);
17897 *offsetp += 4;
17898}
17899
17900static void xineramaGetScreenCount(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17901{
17902 proto_tree_add_item(t, hf_x11_xinerama_GetScreenCount_window, tvb, *offsetp, 4, byte_order);
17903 *offsetp += 4;
17904}
17905static void xineramaGetScreenCount_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17906{
17907 int sequence_number;
17908
17909 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenCount");
17910
17911 REPLY(reply);
17912 proto_tree_add_item(t, hf_x11_xinerama_GetScreenCount_reply_screen_count, tvb, *offsetp, 1, ENC_NA);
17913 *offsetp += 1;
17914 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
17915 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17916 "%d (xinerama-GetScreenCount)", sequence_number);
17917 *offsetp += 2;
17918 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17919 *offsetp += 4;
17920 proto_tree_add_item(t, hf_x11_xinerama_GetScreenCount_reply_window, tvb, *offsetp, 4, byte_order);
17921 *offsetp += 4;
17922}
17923
17924static void xineramaGetScreenSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
17925{
17926 proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_window, tvb, *offsetp, 4, byte_order);
17927 *offsetp += 4;
17928 proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_screen, tvb, *offsetp, 4, byte_order);
17929 *offsetp += 4;
17930}
17931static void xineramaGetScreenSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17932{
17933 int sequence_number;
17934
17935 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenSize");
17936
17937 REPLY(reply);
17938 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17939 *offsetp += 1;
17940 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
17941 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17942 "%d (xinerama-GetScreenSize)", sequence_number);
17943 *offsetp += 2;
17944 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17945 *offsetp += 4;
17946 proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_width, tvb, *offsetp, 4, byte_order);
17947 *offsetp += 4;
17948 proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_height, tvb, *offsetp, 4, byte_order);
17949 *offsetp += 4;
17950 proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_window, tvb, *offsetp, 4, byte_order);
17951 *offsetp += 4;
17952 proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_screen, tvb, *offsetp, 4, byte_order);
17953 *offsetp += 4;
17954}
17955
17956static void xineramaIsActive(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
17957{
17958}
17959static void xineramaIsActive_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17960{
17961 int sequence_number;
17962
17963 col_append_fstr(pinfo->cinfo, COL_INFO, "-IsActive");
17964
17965 REPLY(reply);
17966 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17967 *offsetp += 1;
17968 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
17969 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17970 "%d (xinerama-IsActive)", sequence_number);
17971 *offsetp += 2;
17972 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17973 *offsetp += 4;
17974 proto_tree_add_item(t, hf_x11_xinerama_IsActive_reply_state, tvb, *offsetp, 4, byte_order);
17975 *offsetp += 4;
17976}
17977
17978static void xineramaQueryScreens(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
17979{
17980}
17981static void xineramaQueryScreens_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
17982{
17983 int sequence_number;
17984 int f_number;
17985
17986 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryScreens");
17987
17988 REPLY(reply);
17989 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
17990 *offsetp += 1;
17991 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
17992 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
17993 "%d (xinerama-QueryScreens)", sequence_number);
17994 *offsetp += 2;
17995 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
17996 *offsetp += 4;
17997 f_number = tvb_get_uint32(tvb, *offsetp, byte_order);
17998 proto_tree_add_item(t, hf_x11_xinerama_QueryScreens_reply_number, tvb, *offsetp, 4, byte_order);
17999 *offsetp += 4;
18000 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
18001 *offsetp += 20;
18002 struct_xinerama_ScreenInfo(tvb, offsetp, t, byte_order, f_number);
18003}
18004static const value_string xinerama_extension_minor[] = {
18005 { 0, "QueryVersion" },
18006 { 1, "GetState" },
18007 { 2, "GetScreenCount" },
18008 { 3, "GetScreenSize" },
18009 { 4, "IsActive" },
18010 { 5, "QueryScreens" },
18011 { 0, NULL }
18012};
18013static const x11_event_info xinerama_events[] = {
18014 { NULL, NULL }
18015};
18016static const x11_reply_info xinerama_replies[] = {
18017 { 0, xineramaQueryVersion_Reply },
18018 { 1, xineramaGetState_Reply },
18019 { 2, xineramaGetScreenCount_Reply },
18020 { 3, xineramaGetScreenSize_Reply },
18021 { 4, xineramaIsActive_Reply },
18022 { 5, xineramaQueryScreens_Reply },
18023 { 0, NULL }
18024};
18025
18026static void dispatch_xinerama(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18027{
18028 int minor, length;
18029 minor = CARD8(xinerama_extension_minor);
18030 length = REQUEST_LENGTH();
18031
18032 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
18033 val_to_str(minor, xinerama_extension_minor,
18034 "<Unknown opcode %d>"));
18035 switch (minor) {
18036 case 0:
18037 xineramaQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
18038 break;
18039 case 1:
18040 xineramaGetState(tvb, pinfo, offsetp, t, byte_order, length);
18041 break;
18042 case 2:
18043 xineramaGetScreenCount(tvb, pinfo, offsetp, t, byte_order, length);
18044 break;
18045 case 3:
18046 xineramaGetScreenSize(tvb, pinfo, offsetp, t, byte_order, length);
18047 break;
18048 case 4:
18049 xineramaIsActive(tvb, pinfo, offsetp, t, byte_order, length);
18050 break;
18051 case 5:
18052 xineramaQueryScreens(tvb, pinfo, offsetp, t, byte_order, length);
18053 break;
18054 /* No need for a default case here, since Unknown is printed above,
18055 and UNDECODED() is taken care of by dissect_x11_request */
18056 }
18057}
18058
18059static void register_xinerama(void)
18060{
18061 set_handler("XINERAMA", dispatch_xinerama, xinerama_errors, xinerama_events, NULL, xinerama_replies);
18062}
18063
18064static void struct_xinput_FP3232(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
18065{
18066 int i;
18067 for (i = 0; i < count; i++) {
18068 proto_item *item;
18069 proto_tree *t;
18070
18071 item = proto_tree_add_item(root, hf_x11_struct_xinput_FP3232, tvb, *offsetp, 8, ENC_NA);
18072 t = proto_item_add_subtree(item, ett_x11_rectangle);
18073 proto_tree_add_item(t, hf_x11_struct_xinput_FP3232_integral, tvb, *offsetp, 4, byte_order);
18074 *offsetp += 4;
18075 proto_tree_add_item(t, hf_x11_struct_xinput_FP3232_frac, tvb, *offsetp, 4, byte_order);
18076 *offsetp += 4;
18077 }
18078}
18079
18080static void xinputGetExtensionVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18081{
18082 int f_name_len;
18083 f_name_len = tvb_get_uint16(tvb, *offsetp, byte_order);
18084 proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_name_len, tvb, *offsetp, 2, byte_order);
18085 *offsetp += 2;
18086 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18087 *offsetp += 2;
18088 listOfByte(tvb, offsetp, t, hf_x11_xinput_GetExtensionVersion_name, f_name_len, byte_order);
18089 length -= f_name_len * 1;
18090}
18091static void xinputGetExtensionVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18092{
18093 int sequence_number;
18094
18095 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetExtensionVersion");
18096
18097 REPLY(reply);
18098 proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18099 *offsetp += 1;
18100 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
18101 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18102 "%d (xinput-GetExtensionVersion)", sequence_number);
18103 *offsetp += 2;
18104 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18105 *offsetp += 4;
18106 proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_server_major, tvb, *offsetp, 2, byte_order);
18107 *offsetp += 2;
18108 proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_server_minor, tvb, *offsetp, 2, byte_order);
18109 *offsetp += 2;
18110 proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_present, tvb, *offsetp, 1, byte_order);
18111 *offsetp += 1;
18112 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 19, ENC_NA);
18113 *offsetp += 19;
18114}
18115
18116static void struct_xinput_DeviceInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
18117{
18118 int i;
18119 for (i = 0; i < count; i++) {
18120 proto_item *item;
18121 proto_tree *t;
18122
18123 item = proto_tree_add_item(root, hf_x11_struct_xinput_DeviceInfo, tvb, *offsetp, 8, ENC_NA);
18124 t = proto_item_add_subtree(item, ett_x11_rectangle);
18125 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceInfo_device_type, tvb, *offsetp, 4, byte_order);
18126 *offsetp += 4;
18127 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceInfo_device_id, tvb, *offsetp, 1, byte_order);
18128 *offsetp += 1;
18129 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceInfo_num_class_info, tvb, *offsetp, 1, byte_order);
18130 *offsetp += 1;
18131 field8(tvb, offsetp, t, hf_x11_struct_xinput_DeviceInfo_device_use, byte_order);
18132 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18133 *offsetp += 1;
18134 }
18135}
18136
18137static void struct_xinput_AxisInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
18138{
18139 int i;
18140 for (i = 0; i < count; i++) {
18141 proto_item *item;
18142 proto_tree *t;
18143
18144 item = proto_tree_add_item(root, hf_x11_struct_xinput_AxisInfo, tvb, *offsetp, 12, ENC_NA);
18145 t = proto_item_add_subtree(item, ett_x11_rectangle);
18146 proto_tree_add_item(t, hf_x11_struct_xinput_AxisInfo_resolution, tvb, *offsetp, 4, byte_order);
18147 *offsetp += 4;
18148 proto_tree_add_item(t, hf_x11_struct_xinput_AxisInfo_minimum, tvb, *offsetp, 4, byte_order);
18149 *offsetp += 4;
18150 proto_tree_add_item(t, hf_x11_struct_xinput_AxisInfo_maximum, tvb, *offsetp, 4, byte_order);
18151 *offsetp += 4;
18152 }
18153}
18154
18155static int struct_size_xinput_InputInfo(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
18156{
18157 int size = 0;
18158 return size + 2;
18159}
18160
18161static void struct_xinput_InputInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned 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_InputInfo, tvb, *offsetp, struct_size_xinput_InputInfo(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_InputInfo_class_id, byte_order);
18172 proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_len, tvb, *offsetp, 1, byte_order);
18173 *offsetp += 1;
18174 if (f_class_id == 0) {
18175 proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Key_min_keycode, tvb, *offsetp, 1, byte_order);
18176 *offsetp += 1;
18177 proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Key_max_keycode, tvb, *offsetp, 1, byte_order);
18178 *offsetp += 1;
18179 proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Key_num_keys, tvb, *offsetp, 2, byte_order);
18180 *offsetp += 2;
18181 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18182 *offsetp += 2;
18183 }
18184 if (f_class_id == 1) {
18185 proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Button_num_buttons, tvb, *offsetp, 2, byte_order);
18186 *offsetp += 2;
18187 }
18188 if (f_class_id == 2) {
18189 int f_axes_len;
18190 f_axes_len = tvb_get_uint8(tvb, *offsetp);
18191 proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Valuator_axes_len, tvb, *offsetp, 1, byte_order);
18192 *offsetp += 1;
18193 field8(tvb, offsetp, t, hf_x11_struct_xinput_InputInfo_Valuator_mode, byte_order);
18194 proto_tree_add_item(t, hf_x11_struct_xinput_InputInfo_Valuator_motion_size, tvb, *offsetp, 4, byte_order);
18195 *offsetp += 4;
18196 struct_xinput_AxisInfo(tvb, offsetp, t, byte_order, f_axes_len);
18197 }
18198 }
18199}
18200
18201static void xinputListInputDevices(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
18202{
18203}
18204static void xinputListInputDevices_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18205{
18206 int sequence_number;
18207 int f_devices_len;
18208 int sumof_devices = 0;
18209
18210 col_append_fstr(pinfo->cinfo, COL_INFO, "-ListInputDevices");
18211
18212 REPLY(reply);
18213 proto_tree_add_item(t, hf_x11_xinput_ListInputDevices_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18214 *offsetp += 1;
18215 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
18216 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18217 "%d (xinput-ListInputDevices)", sequence_number);
18218 *offsetp += 2;
18219 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18220 *offsetp += 4;
18221 f_devices_len = tvb_get_uint8(tvb, *offsetp);
18222 proto_tree_add_item(t, hf_x11_xinput_ListInputDevices_reply_devices_len, tvb, *offsetp, 1, byte_order);
18223 *offsetp += 1;
18224 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18225 *offsetp += 23;
18226 struct_xinput_DeviceInfo(tvb, offsetp, t, byte_order, f_devices_len);
18227 struct_xinput_InputInfo(tvb, offsetp, t, byte_order, sumof_devices);
18228 struct_xproto_STR(tvb, offsetp, t, byte_order, f_devices_len);
18229 pad_to_4_bytes(tvb, offsetp, t);
18230}
18231
18232static void struct_xinput_InputClassInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
18233{
18234 int i;
18235 for (i = 0; i < count; i++) {
18236 proto_item *item;
18237 proto_tree *t;
18238
18239 item = proto_tree_add_item(root, hf_x11_struct_xinput_InputClassInfo, tvb, *offsetp, 2, ENC_NA);
18240 t = proto_item_add_subtree(item, ett_x11_rectangle);
18241 field8(tvb, offsetp, t, hf_x11_struct_xinput_InputClassInfo_class_id, byte_order);
18242 proto_tree_add_item(t, hf_x11_struct_xinput_InputClassInfo_event_type_base, tvb, *offsetp, 1, byte_order);
18243 *offsetp += 1;
18244 }
18245}
18246
18247static void xinputOpenDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18248{
18249 proto_tree_add_item(t, hf_x11_xinput_OpenDevice_device_id, tvb, *offsetp, 1, byte_order);
18250 *offsetp += 1;
18251 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18252 *offsetp += 3;
18253}
18254static void xinputOpenDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18255{
18256 int sequence_number;
18257 int f_num_classes;
18258
18259 col_append_fstr(pinfo->cinfo, COL_INFO, "-OpenDevice");
18260
18261 REPLY(reply);
18262 proto_tree_add_item(t, hf_x11_xinput_OpenDevice_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18263 *offsetp += 1;
18264 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
18265 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18266 "%d (xinput-OpenDevice)", sequence_number);
18267 *offsetp += 2;
18268 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18269 *offsetp += 4;
18270 f_num_classes = tvb_get_uint8(tvb, *offsetp);
18271 proto_tree_add_item(t, hf_x11_xinput_OpenDevice_reply_num_classes, tvb, *offsetp, 1, byte_order);
18272 *offsetp += 1;
18273 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18274 *offsetp += 23;
18275 struct_xinput_InputClassInfo(tvb, offsetp, t, byte_order, f_num_classes);
18276 pad_to_4_bytes(tvb, offsetp, t);
18277}
18278
18279static void xinputCloseDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18280{
18281 proto_tree_add_item(t, hf_x11_xinput_CloseDevice_device_id, tvb, *offsetp, 1, byte_order);
18282 *offsetp += 1;
18283 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18284 *offsetp += 3;
18285}
18286
18287static void xinputSetDeviceMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18288{
18289 proto_tree_add_item(t, hf_x11_xinput_SetDeviceMode_device_id, tvb, *offsetp, 1, byte_order);
18290 *offsetp += 1;
18291 field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceMode_mode, byte_order);
18292 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18293 *offsetp += 2;
18294}
18295static void xinputSetDeviceMode_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18296{
18297 int sequence_number;
18298
18299 col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceMode");
18300
18301 REPLY(reply);
18302 proto_tree_add_item(t, hf_x11_xinput_SetDeviceMode_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18303 *offsetp += 1;
18304 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
18305 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18306 "%d (xinput-SetDeviceMode)", sequence_number);
18307 *offsetp += 2;
18308 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18309 *offsetp += 4;
18310 field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceMode_reply_status, byte_order);
18311 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18312 *offsetp += 23;
18313}
18314
18315static void xinputSelectExtensionEvent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18316{
18317 int f_num_classes;
18318 proto_tree_add_item(t, hf_x11_xinput_SelectExtensionEvent_window, tvb, *offsetp, 4, byte_order);
18319 *offsetp += 4;
18320 f_num_classes = tvb_get_uint16(tvb, *offsetp, byte_order);
18321 proto_tree_add_item(t, hf_x11_xinput_SelectExtensionEvent_num_classes, tvb, *offsetp, 2, byte_order);
18322 *offsetp += 2;
18323 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18324 *offsetp += 2;
18325 listOfCard32(tvb, offsetp, t, hf_x11_xinput_SelectExtensionEvent_classes, hf_x11_xinput_SelectExtensionEvent_classes_item, f_num_classes, byte_order);
18326 length -= f_num_classes * 4;
18327}
18328
18329static void xinputGetSelectedExtensionEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18330{
18331 proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_window, tvb, *offsetp, 4, byte_order);
18332 *offsetp += 4;
18333}
18334static void xinputGetSelectedExtensionEvents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18335{
18336 int sequence_number;
18337 int f_num_this_classes;
18338 int f_num_all_classes;
18339
18340 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectedExtensionEvents");
18341
18342 REPLY(reply);
18343 proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18344 *offsetp += 1;
18345 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
18346 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18347 "%d (xinput-GetSelectedExtensionEvents)", sequence_number);
18348 *offsetp += 2;
18349 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18350 *offsetp += 4;
18351 f_num_this_classes = tvb_get_uint16(tvb, *offsetp, byte_order);
18352 proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_reply_num_this_classes, tvb, *offsetp, 2, byte_order);
18353 *offsetp += 2;
18354 f_num_all_classes = tvb_get_uint16(tvb, *offsetp, byte_order);
18355 proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_reply_num_all_classes, tvb, *offsetp, 2, byte_order);
18356 *offsetp += 2;
18357 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
18358 *offsetp += 20;
18359 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);
18360 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);
18361}
18362
18363static void xinputChangeDeviceDontPropagateList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18364{
18365 int f_num_classes;
18366 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceDontPropagateList_window, tvb, *offsetp, 4, byte_order);
18367 *offsetp += 4;
18368 f_num_classes = tvb_get_uint16(tvb, *offsetp, byte_order);
18369 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceDontPropagateList_num_classes, tvb, *offsetp, 2, byte_order);
18370 *offsetp += 2;
18371 field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceDontPropagateList_mode, byte_order);
18372 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18373 *offsetp += 1;
18374 listOfCard32(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceDontPropagateList_classes, hf_x11_xinput_ChangeDeviceDontPropagateList_classes_item, f_num_classes, byte_order);
18375 length -= f_num_classes * 4;
18376}
18377
18378static void xinputGetDeviceDontPropagateList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18379{
18380 proto_tree_add_item(t, hf_x11_xinput_GetDeviceDontPropagateList_window, tvb, *offsetp, 4, byte_order);
18381 *offsetp += 4;
18382}
18383static void xinputGetDeviceDontPropagateList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18384{
18385 int sequence_number;
18386 int f_num_classes;
18387
18388 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceDontPropagateList");
18389
18390 REPLY(reply);
18391 proto_tree_add_item(t, hf_x11_xinput_GetDeviceDontPropagateList_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18392 *offsetp += 1;
18393 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
18394 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18395 "%d (xinput-GetDeviceDontPropagateList)", sequence_number);
18396 *offsetp += 2;
18397 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18398 *offsetp += 4;
18399 f_num_classes = tvb_get_uint16(tvb, *offsetp, byte_order);
18400 proto_tree_add_item(t, hf_x11_xinput_GetDeviceDontPropagateList_reply_num_classes, tvb, *offsetp, 2, byte_order);
18401 *offsetp += 2;
18402 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
18403 *offsetp += 22;
18404 listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetDeviceDontPropagateList_reply_classes, hf_x11_xinput_GetDeviceDontPropagateList_reply_classes_item, f_num_classes, byte_order);
18405}
18406
18407static int struct_size_xinput_DeviceTimeCoord(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_, int p_num_axes)
18408{
18409 int size = 0;
18410 size += p_num_axes * 4;
18411 return size + 4;
18412}
18413
18414static void struct_xinput_DeviceTimeCoord(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count, int p_num_axes)
18415{
18416 int i;
18417 for (i = 0; i < count; i++) {
18418 proto_item *item;
18419 proto_tree *t;
18420
18421 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);
18422 t = proto_item_add_subtree(item, ett_x11_rectangle);
18423 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceTimeCoord_time, tvb, *offsetp, 4, byte_order);
18424 *offsetp += 4;
18425 listOfInt32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceTimeCoord_axisvalues, hf_x11_struct_xinput_DeviceTimeCoord_axisvalues_item, p_num_axes, byte_order);
18426 }
18427}
18428
18429static void xinputGetDeviceMotionEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18430{
18431 proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_start, tvb, *offsetp, 4, byte_order);
18432 *offsetp += 4;
18433 field32(tvb, offsetp, t, hf_x11_xinput_GetDeviceMotionEvents_stop, byte_order);
18434 proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_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}
18439static void xinputGetDeviceMotionEvents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18440{
18441 int sequence_number;
18442 int f_num_events;
18443 int f_num_axes;
18444
18445 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceMotionEvents");
18446
18447 REPLY(reply);
18448 proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18449 *offsetp += 1;
18450 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
18451 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18452 "%d (xinput-GetDeviceMotionEvents)", sequence_number);
18453 *offsetp += 2;
18454 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18455 *offsetp += 4;
18456 f_num_events = tvb_get_uint32(tvb, *offsetp, byte_order);
18457 proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_reply_num_events, tvb, *offsetp, 4, byte_order);
18458 *offsetp += 4;
18459 f_num_axes = tvb_get_uint8(tvb, *offsetp);
18460 proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_reply_num_axes, tvb, *offsetp, 1, byte_order);
18461 *offsetp += 1;
18462 field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceMotionEvents_reply_device_mode, byte_order);
18463 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
18464 *offsetp += 18;
18465 struct_xinput_DeviceTimeCoord(tvb, offsetp, t, byte_order, f_num_events, f_num_axes);
18466}
18467
18468static void xinputChangeKeyboardDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18469{
18470 proto_tree_add_item(t, hf_x11_xinput_ChangeKeyboardDevice_device_id, tvb, *offsetp, 1, byte_order);
18471 *offsetp += 1;
18472 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18473 *offsetp += 3;
18474}
18475static void xinputChangeKeyboardDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18476{
18477 int sequence_number;
18478
18479 col_append_fstr(pinfo->cinfo, COL_INFO, "-ChangeKeyboardDevice");
18480
18481 REPLY(reply);
18482 proto_tree_add_item(t, hf_x11_xinput_ChangeKeyboardDevice_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18483 *offsetp += 1;
18484 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
18485 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18486 "%d (xinput-ChangeKeyboardDevice)", sequence_number);
18487 *offsetp += 2;
18488 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18489 *offsetp += 4;
18490 field8(tvb, offsetp, t, hf_x11_xinput_ChangeKeyboardDevice_reply_status, byte_order);
18491 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18492 *offsetp += 23;
18493}
18494
18495static void xinputChangePointerDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18496{
18497 proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_x_axis, tvb, *offsetp, 1, byte_order);
18498 *offsetp += 1;
18499 proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_y_axis, tvb, *offsetp, 1, byte_order);
18500 *offsetp += 1;
18501 proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_device_id, tvb, *offsetp, 1, byte_order);
18502 *offsetp += 1;
18503 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18504 *offsetp += 1;
18505}
18506static void xinputChangePointerDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18507{
18508 int sequence_number;
18509
18510 col_append_fstr(pinfo->cinfo, COL_INFO, "-ChangePointerDevice");
18511
18512 REPLY(reply);
18513 proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18514 *offsetp += 1;
18515 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
18516 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18517 "%d (xinput-ChangePointerDevice)", sequence_number);
18518 *offsetp += 2;
18519 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18520 *offsetp += 4;
18521 field8(tvb, offsetp, t, hf_x11_xinput_ChangePointerDevice_reply_status, byte_order);
18522 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18523 *offsetp += 23;
18524}
18525
18526static void xinputGrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18527{
18528 int f_num_classes;
18529 proto_tree_add_item(t, hf_x11_xinput_GrabDevice_grab_window, tvb, *offsetp, 4, byte_order);
18530 *offsetp += 4;
18531 field32(tvb, offsetp, t, hf_x11_xinput_GrabDevice_time, byte_order);
18532 f_num_classes = tvb_get_uint16(tvb, *offsetp, byte_order);
18533 proto_tree_add_item(t, hf_x11_xinput_GrabDevice_num_classes, tvb, *offsetp, 2, byte_order);
18534 *offsetp += 2;
18535 field8(tvb, offsetp, t, hf_x11_xinput_GrabDevice_this_device_mode, byte_order);
18536 field8(tvb, offsetp, t, hf_x11_xinput_GrabDevice_other_device_mode, byte_order);
18537 proto_tree_add_item(t, hf_x11_xinput_GrabDevice_owner_events, tvb, *offsetp, 1, byte_order);
18538 *offsetp += 1;
18539 proto_tree_add_item(t, hf_x11_xinput_GrabDevice_device_id, tvb, *offsetp, 1, byte_order);
18540 *offsetp += 1;
18541 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18542 *offsetp += 2;
18543 listOfCard32(tvb, offsetp, t, hf_x11_xinput_GrabDevice_classes, hf_x11_xinput_GrabDevice_classes_item, f_num_classes, byte_order);
18544 length -= f_num_classes * 4;
18545}
18546static void xinputGrabDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18547{
18548 int sequence_number;
18549
18550 col_append_fstr(pinfo->cinfo, COL_INFO, "-GrabDevice");
18551
18552 REPLY(reply);
18553 proto_tree_add_item(t, hf_x11_xinput_GrabDevice_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18554 *offsetp += 1;
18555 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
18556 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18557 "%d (xinput-GrabDevice)", sequence_number);
18558 *offsetp += 2;
18559 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18560 *offsetp += 4;
18561 field8(tvb, offsetp, t, hf_x11_xinput_GrabDevice_reply_status, byte_order);
18562 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
18563 *offsetp += 23;
18564}
18565
18566static void xinputUngrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18567{
18568 field32(tvb, offsetp, t, hf_x11_xinput_UngrabDevice_time, byte_order);
18569 proto_tree_add_item(t, hf_x11_xinput_UngrabDevice_device_id, tvb, *offsetp, 1, byte_order);
18570 *offsetp += 1;
18571 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18572 *offsetp += 3;
18573}
18574
18575static void xinputGrabDeviceKey(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18576{
18577 int f_num_classes;
18578 proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_grab_window, tvb, *offsetp, 4, byte_order);
18579 *offsetp += 4;
18580 f_num_classes = tvb_get_uint16(tvb, *offsetp, byte_order);
18581 proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_num_classes, tvb, *offsetp, 2, byte_order);
18582 *offsetp += 2;
18583 {
18584 static int* const modifiers_bits [] = {
18585 &hf_x11_xinput_GrabDeviceKey_modifiers_mask_Shift,
18586 &hf_x11_xinput_GrabDeviceKey_modifiers_mask_Lock,
18587 &hf_x11_xinput_GrabDeviceKey_modifiers_mask_Control,
18588 &hf_x11_xinput_GrabDeviceKey_modifiers_mask_1,
18589 &hf_x11_xinput_GrabDeviceKey_modifiers_mask_2,
18590 &hf_x11_xinput_GrabDeviceKey_modifiers_mask_3,
18591 &hf_x11_xinput_GrabDeviceKey_modifiers_mask_4,
18592 &hf_x11_xinput_GrabDeviceKey_modifiers_mask_5,
18593 &hf_x11_xinput_GrabDeviceKey_modifiers_mask_Any,
18594 NULL
18595 };
18596 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_GrabDeviceKey_modifiers, ett_x11_rectangle, modifiers_bits, byte_order);
18597 }
18598 *offsetp += 2;
18599 field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_modifier_device, byte_order);
18600 proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_grabbed_device, tvb, *offsetp, 1, byte_order);
18601 *offsetp += 1;
18602 field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_key, byte_order);
18603 field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_this_device_mode, byte_order);
18604 field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_other_device_mode, byte_order);
18605 proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_owner_events, tvb, *offsetp, 1, byte_order);
18606 *offsetp += 1;
18607 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18608 *offsetp += 2;
18609 listOfCard32(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_classes, hf_x11_xinput_GrabDeviceKey_classes_item, f_num_classes, byte_order);
18610 length -= f_num_classes * 4;
18611}
18612
18613static void xinputUngrabDeviceKey(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18614{
18615 proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceKey_grabWindow, tvb, *offsetp, 4, byte_order);
18616 *offsetp += 4;
18617 {
18618 static int* const modifiers_bits [] = {
18619 &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Shift,
18620 &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Lock,
18621 &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Control,
18622 &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_1,
18623 &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_2,
18624 &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_3,
18625 &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_4,
18626 &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_5,
18627 &hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Any,
18628 NULL
18629 };
18630 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_UngrabDeviceKey_modifiers, ett_x11_rectangle, modifiers_bits, byte_order);
18631 }
18632 *offsetp += 2;
18633 field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceKey_modifier_device, byte_order);
18634 field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceKey_key, byte_order);
18635 proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceKey_grabbed_device, tvb, *offsetp, 1, byte_order);
18636 *offsetp += 1;
18637}
18638
18639static void xinputGrabDeviceButton(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18640{
18641 int f_num_classes;
18642 proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_grab_window, tvb, *offsetp, 4, byte_order);
18643 *offsetp += 4;
18644 proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_grabbed_device, tvb, *offsetp, 1, byte_order);
18645 *offsetp += 1;
18646 field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_modifier_device, byte_order);
18647 f_num_classes = tvb_get_uint16(tvb, *offsetp, byte_order);
18648 proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_num_classes, tvb, *offsetp, 2, byte_order);
18649 *offsetp += 2;
18650 {
18651 static int* const modifiers_bits [] = {
18652 &hf_x11_xinput_GrabDeviceButton_modifiers_mask_Shift,
18653 &hf_x11_xinput_GrabDeviceButton_modifiers_mask_Lock,
18654 &hf_x11_xinput_GrabDeviceButton_modifiers_mask_Control,
18655 &hf_x11_xinput_GrabDeviceButton_modifiers_mask_1,
18656 &hf_x11_xinput_GrabDeviceButton_modifiers_mask_2,
18657 &hf_x11_xinput_GrabDeviceButton_modifiers_mask_3,
18658 &hf_x11_xinput_GrabDeviceButton_modifiers_mask_4,
18659 &hf_x11_xinput_GrabDeviceButton_modifiers_mask_5,
18660 &hf_x11_xinput_GrabDeviceButton_modifiers_mask_Any,
18661 NULL
18662 };
18663 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_GrabDeviceButton_modifiers, ett_x11_rectangle, modifiers_bits, byte_order);
18664 }
18665 *offsetp += 2;
18666 field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_this_device_mode, byte_order);
18667 field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_other_device_mode, byte_order);
18668 field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_button, byte_order);
18669 proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_owner_events, tvb, *offsetp, 1, byte_order);
18670 *offsetp += 1;
18671 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18672 *offsetp += 2;
18673 listOfCard32(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_classes, hf_x11_xinput_GrabDeviceButton_classes_item, f_num_classes, byte_order);
18674 length -= f_num_classes * 4;
18675}
18676
18677static void xinputUngrabDeviceButton(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18678{
18679 proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceButton_grab_window, tvb, *offsetp, 4, byte_order);
18680 *offsetp += 4;
18681 {
18682 static int* const modifiers_bits [] = {
18683 &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Shift,
18684 &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Lock,
18685 &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Control,
18686 &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_1,
18687 &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_2,
18688 &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_3,
18689 &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_4,
18690 &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_5,
18691 &hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Any,
18692 NULL
18693 };
18694 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_UngrabDeviceButton_modifiers, ett_x11_rectangle, modifiers_bits, byte_order);
18695 }
18696 *offsetp += 2;
18697 field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceButton_modifier_device, byte_order);
18698 field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceButton_button, byte_order);
18699 proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceButton_grabbed_device, tvb, *offsetp, 1, byte_order);
18700 *offsetp += 1;
18701 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18702 *offsetp += 3;
18703}
18704
18705static void xinputAllowDeviceEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18706{
18707 field32(tvb, offsetp, t, hf_x11_xinput_AllowDeviceEvents_time, byte_order);
18708 field8(tvb, offsetp, t, hf_x11_xinput_AllowDeviceEvents_mode, byte_order);
18709 proto_tree_add_item(t, hf_x11_xinput_AllowDeviceEvents_device_id, tvb, *offsetp, 1, byte_order);
18710 *offsetp += 1;
18711 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18712 *offsetp += 2;
18713}
18714
18715static void xinputGetDeviceFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18716{
18717 proto_tree_add_item(t, hf_x11_xinput_GetDeviceFocus_device_id, tvb, *offsetp, 1, byte_order);
18718 *offsetp += 1;
18719 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18720 *offsetp += 3;
18721}
18722static void xinputGetDeviceFocus_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18723{
18724 int sequence_number;
18725
18726 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceFocus");
18727
18728 REPLY(reply);
18729 proto_tree_add_item(t, hf_x11_xinput_GetDeviceFocus_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18730 *offsetp += 1;
18731 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
18732 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18733 "%d (xinput-GetDeviceFocus)", sequence_number);
18734 *offsetp += 2;
18735 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18736 *offsetp += 4;
18737 field32(tvb, offsetp, t, hf_x11_xinput_GetDeviceFocus_reply_focus, byte_order);
18738 proto_tree_add_item(t, hf_x11_xinput_GetDeviceFocus_reply_time, tvb, *offsetp, 4, byte_order);
18739 *offsetp += 4;
18740 field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceFocus_reply_revert_to, byte_order);
18741 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
18742 *offsetp += 15;
18743}
18744
18745static void xinputSetDeviceFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18746{
18747 field32(tvb, offsetp, t, hf_x11_xinput_SetDeviceFocus_focus, byte_order);
18748 field32(tvb, offsetp, t, hf_x11_xinput_SetDeviceFocus_time, byte_order);
18749 field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceFocus_revert_to, byte_order);
18750 proto_tree_add_item(t, hf_x11_xinput_SetDeviceFocus_device_id, tvb, *offsetp, 1, byte_order);
18751 *offsetp += 1;
18752 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18753 *offsetp += 2;
18754}
18755
18756static int struct_size_xinput_FeedbackState(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
18757{
18758 int size = 0;
18759 return size + 4;
18760}
18761
18762static void struct_xinput_FeedbackState(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
18763{
18764 int i;
18765 for (i = 0; i < count; i++) {
18766 proto_item *item;
18767 proto_tree *t;
18768 int f_class_id;
18769
18770 item = proto_tree_add_item(root, hf_x11_struct_xinput_FeedbackState, tvb, *offsetp, struct_size_xinput_FeedbackState(tvb, offsetp, byte_order), ENC_NA);
18771 t = proto_item_add_subtree(item, ett_x11_rectangle);
18772 f_class_id = field8(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackState_class_id, byte_order);
18773 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_feedback_id, tvb, *offsetp, 1, byte_order);
18774 *offsetp += 1;
18775 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_len, tvb, *offsetp, 2, byte_order);
18776 *offsetp += 2;
18777 if (f_class_id == 0) {
18778 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_pitch, tvb, *offsetp, 2, byte_order);
18779 *offsetp += 2;
18780 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_duration, tvb, *offsetp, 2, byte_order);
18781 *offsetp += 2;
18782 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_led_mask, tvb, *offsetp, 4, byte_order);
18783 *offsetp += 4;
18784 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_led_values, tvb, *offsetp, 4, byte_order);
18785 *offsetp += 4;
18786 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_global_auto_repeat, tvb, *offsetp, 1, byte_order);
18787 *offsetp += 1;
18788 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_click, tvb, *offsetp, 1, byte_order);
18789 *offsetp += 1;
18790 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Keyboard_percent, tvb, *offsetp, 1, byte_order);
18791 *offsetp += 1;
18792 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18793 *offsetp += 1;
18794 listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackState_Keyboard_auto_repeats, 32, byte_order);
18795 }
18796 if (f_class_id == 1) {
18797 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18798 *offsetp += 2;
18799 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Pointer_accel_num, tvb, *offsetp, 2, byte_order);
18800 *offsetp += 2;
18801 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Pointer_accel_denom, tvb, *offsetp, 2, byte_order);
18802 *offsetp += 2;
18803 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Pointer_threshold, tvb, *offsetp, 2, byte_order);
18804 *offsetp += 2;
18805 }
18806 if (f_class_id == 2) {
18807 int f_num_keysyms;
18808 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_String_max_symbols, tvb, *offsetp, 2, byte_order);
18809 *offsetp += 2;
18810 f_num_keysyms = tvb_get_uint16(tvb, *offsetp, byte_order);
18811 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_String_num_keysyms, tvb, *offsetp, 2, byte_order);
18812 *offsetp += 2;
18813 listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackState_String_keysyms, hf_x11_struct_xinput_FeedbackState_String_keysyms_item, f_num_keysyms, byte_order);
18814 }
18815 if (f_class_id == 3) {
18816 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Integer_resolution, tvb, *offsetp, 4, byte_order);
18817 *offsetp += 4;
18818 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Integer_min_value, tvb, *offsetp, 4, byte_order);
18819 *offsetp += 4;
18820 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Integer_max_value, tvb, *offsetp, 4, byte_order);
18821 *offsetp += 4;
18822 }
18823 if (f_class_id == 4) {
18824 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Led_led_mask, tvb, *offsetp, 4, byte_order);
18825 *offsetp += 4;
18826 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Led_led_values, tvb, *offsetp, 4, byte_order);
18827 *offsetp += 4;
18828 }
18829 if (f_class_id == 5) {
18830 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Bell_percent, tvb, *offsetp, 1, byte_order);
18831 *offsetp += 1;
18832 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18833 *offsetp += 3;
18834 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Bell_pitch, tvb, *offsetp, 2, byte_order);
18835 *offsetp += 2;
18836 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackState_Bell_duration, tvb, *offsetp, 2, byte_order);
18837 *offsetp += 2;
18838 }
18839 }
18840}
18841
18842static void xinputGetFeedbackControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18843{
18844 proto_tree_add_item(t, hf_x11_xinput_GetFeedbackControl_device_id, tvb, *offsetp, 1, byte_order);
18845 *offsetp += 1;
18846 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18847 *offsetp += 3;
18848}
18849static void xinputGetFeedbackControl_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18850{
18851 int sequence_number;
18852 int f_num_feedbacks;
18853
18854 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetFeedbackControl");
18855
18856 REPLY(reply);
18857 proto_tree_add_item(t, hf_x11_xinput_GetFeedbackControl_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
18858 *offsetp += 1;
18859 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
18860 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
18861 "%d (xinput-GetFeedbackControl)", sequence_number);
18862 *offsetp += 2;
18863 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
18864 *offsetp += 4;
18865 f_num_feedbacks = tvb_get_uint16(tvb, *offsetp, byte_order);
18866 proto_tree_add_item(t, hf_x11_xinput_GetFeedbackControl_reply_num_feedbacks, tvb, *offsetp, 2, byte_order);
18867 *offsetp += 2;
18868 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
18869 *offsetp += 22;
18870 struct_xinput_FeedbackState(tvb, offsetp, t, byte_order, f_num_feedbacks);
18871}
18872
18873static int struct_size_xinput_FeedbackCtl(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
18874{
18875 int size = 0;
18876 return size + 4;
18877}
18878
18879static void struct_xinput_FeedbackCtl(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
18880{
18881 int i;
18882 for (i = 0; i < count; i++) {
18883 proto_item *item;
18884 proto_tree *t;
18885 int f_class_id;
18886
18887 item = proto_tree_add_item(root, hf_x11_struct_xinput_FeedbackCtl, tvb, *offsetp, struct_size_xinput_FeedbackCtl(tvb, offsetp, byte_order), ENC_NA);
18888 t = proto_item_add_subtree(item, ett_x11_rectangle);
18889 f_class_id = field8(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackCtl_class_id, byte_order);
18890 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_feedback_id, tvb, *offsetp, 1, byte_order);
18891 *offsetp += 1;
18892 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_len, tvb, *offsetp, 2, byte_order);
18893 *offsetp += 2;
18894 if (f_class_id == 0) {
18895 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_key, tvb, *offsetp, 1, byte_order);
18896 *offsetp += 1;
18897 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_auto_repeat_mode, tvb, *offsetp, 1, byte_order);
18898 *offsetp += 1;
18899 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_key_click_percent, tvb, *offsetp, 1, byte_order);
18900 *offsetp += 1;
18901 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_bell_percent, tvb, *offsetp, 1, byte_order);
18902 *offsetp += 1;
18903 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_bell_pitch, tvb, *offsetp, 2, byte_order);
18904 *offsetp += 2;
18905 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_bell_duration, tvb, *offsetp, 2, byte_order);
18906 *offsetp += 2;
18907 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_led_mask, tvb, *offsetp, 4, byte_order);
18908 *offsetp += 4;
18909 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Keyboard_led_values, tvb, *offsetp, 4, byte_order);
18910 *offsetp += 4;
18911 }
18912 if (f_class_id == 1) {
18913 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18914 *offsetp += 2;
18915 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Pointer_num, tvb, *offsetp, 2, byte_order);
18916 *offsetp += 2;
18917 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Pointer_denom, tvb, *offsetp, 2, byte_order);
18918 *offsetp += 2;
18919 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Pointer_threshold, tvb, *offsetp, 2, byte_order);
18920 *offsetp += 2;
18921 }
18922 if (f_class_id == 2) {
18923 int f_num_keysyms;
18924 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18925 *offsetp += 2;
18926 f_num_keysyms = tvb_get_uint16(tvb, *offsetp, byte_order);
18927 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_String_num_keysyms, tvb, *offsetp, 2, byte_order);
18928 *offsetp += 2;
18929 listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_FeedbackCtl_String_keysyms, hf_x11_struct_xinput_FeedbackCtl_String_keysyms_item, f_num_keysyms, byte_order);
18930 }
18931 if (f_class_id == 3) {
18932 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Integer_int_to_display, tvb, *offsetp, 4, byte_order);
18933 *offsetp += 4;
18934 }
18935 if (f_class_id == 4) {
18936 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Led_led_mask, tvb, *offsetp, 4, byte_order);
18937 *offsetp += 4;
18938 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Led_led_values, tvb, *offsetp, 4, byte_order);
18939 *offsetp += 4;
18940 }
18941 if (f_class_id == 5) {
18942 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Bell_percent, tvb, *offsetp, 1, byte_order);
18943 *offsetp += 1;
18944 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
18945 *offsetp += 3;
18946 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Bell_pitch, tvb, *offsetp, 2, byte_order);
18947 *offsetp += 2;
18948 proto_tree_add_item(t, hf_x11_struct_xinput_FeedbackCtl_Bell_duration, tvb, *offsetp, 2, byte_order);
18949 *offsetp += 2;
18950 }
18951 }
18952}
18953
18954static void xinputChangeFeedbackControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18955{
18956 {
18957 static int* const mask_bits [] = {
18958 &hf_x11_xinput_ChangeFeedbackControl_mask_mask_AccelNum,
18959 &hf_x11_xinput_ChangeFeedbackControl_mask_mask_AccelDenom,
18960 &hf_x11_xinput_ChangeFeedbackControl_mask_mask_Threshold,
18961 &hf_x11_xinput_ChangeFeedbackControl_mask_mask_Duration,
18962 &hf_x11_xinput_ChangeFeedbackControl_mask_mask_Led,
18963 &hf_x11_xinput_ChangeFeedbackControl_mask_mask_LedMode,
18964 &hf_x11_xinput_ChangeFeedbackControl_mask_mask_Key,
18965 &hf_x11_xinput_ChangeFeedbackControl_mask_mask_AutoRepeatMode,
18966 NULL
18967 };
18968 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_ChangeFeedbackControl_mask, ett_x11_rectangle, mask_bits, byte_order);
18969 }
18970 *offsetp += 4;
18971 proto_tree_add_item(t, hf_x11_xinput_ChangeFeedbackControl_device_id, tvb, *offsetp, 1, byte_order);
18972 *offsetp += 1;
18973 proto_tree_add_item(t, hf_x11_xinput_ChangeFeedbackControl_feedback_id, tvb, *offsetp, 1, byte_order);
18974 *offsetp += 1;
18975 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
18976 *offsetp += 2;
18977 struct_xinput_FeedbackCtl(tvb, offsetp, t, byte_order, 1);
18978}
18979
18980static void xinputGetDeviceKeyMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
18981{
18982 proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_device_id, tvb, *offsetp, 1, byte_order);
18983 *offsetp += 1;
18984 proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_first_keycode, tvb, *offsetp, 1, byte_order);
18985 *offsetp += 1;
18986 proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_count, tvb, *offsetp, 1, byte_order);
18987 *offsetp += 1;
18988 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
18989 *offsetp += 1;
18990}
18991static void xinputGetDeviceKeyMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
18992{
18993 int sequence_number;
18994 int f_length;
18995
18996 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceKeyMapping");
18997
18998 REPLY(reply);
18999 proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19000 *offsetp += 1;
19001 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19002 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19003 "%d (xinput-GetDeviceKeyMapping)", sequence_number);
19004 *offsetp += 2;
19005 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
19006 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19007 *offsetp += 4;
19008 proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_reply_keysyms_per_keycode, tvb, *offsetp, 1, byte_order);
19009 *offsetp += 1;
19010 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
19011 *offsetp += 23;
19012 listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetDeviceKeyMapping_reply_keysyms, hf_x11_xinput_GetDeviceKeyMapping_reply_keysyms_item, f_length, byte_order);
19013}
19014
19015static void xinputChangeDeviceKeyMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19016{
19017 int f_keysyms_per_keycode;
19018 int f_keycode_count;
19019 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_device_id, tvb, *offsetp, 1, byte_order);
19020 *offsetp += 1;
19021 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_first_keycode, tvb, *offsetp, 1, byte_order);
19022 *offsetp += 1;
19023 f_keysyms_per_keycode = tvb_get_uint8(tvb, *offsetp);
19024 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_keysyms_per_keycode, tvb, *offsetp, 1, byte_order);
19025 *offsetp += 1;
19026 f_keycode_count = tvb_get_uint8(tvb, *offsetp);
19027 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_keycode_count, tvb, *offsetp, 1, byte_order);
19028 *offsetp += 1;
19029 listOfCard32(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceKeyMapping_keysyms, hf_x11_xinput_ChangeDeviceKeyMapping_keysyms_item, (f_keycode_count * f_keysyms_per_keycode), byte_order);
19030 length -= (f_keycode_count * f_keysyms_per_keycode) * 4;
19031}
19032
19033static void xinputGetDeviceModifierMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19034{
19035 proto_tree_add_item(t, hf_x11_xinput_GetDeviceModifierMapping_device_id, tvb, *offsetp, 1, byte_order);
19036 *offsetp += 1;
19037 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19038 *offsetp += 3;
19039}
19040static void xinputGetDeviceModifierMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
19041{
19042 int sequence_number;
19043 int f_keycodes_per_modifier;
19044
19045 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceModifierMapping");
19046
19047 REPLY(reply);
19048 proto_tree_add_item(t, hf_x11_xinput_GetDeviceModifierMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19049 *offsetp += 1;
19050 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19051 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19052 "%d (xinput-GetDeviceModifierMapping)", sequence_number);
19053 *offsetp += 2;
19054 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19055 *offsetp += 4;
19056 f_keycodes_per_modifier = tvb_get_uint8(tvb, *offsetp);
19057 proto_tree_add_item(t, hf_x11_xinput_GetDeviceModifierMapping_reply_keycodes_per_modifier, tvb, *offsetp, 1, byte_order);
19058 *offsetp += 1;
19059 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
19060 *offsetp += 23;
19061 listOfByte(tvb, offsetp, t, hf_x11_xinput_GetDeviceModifierMapping_reply_keymaps, (f_keycodes_per_modifier * 8), byte_order);
19062}
19063
19064static void xinputSetDeviceModifierMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19065{
19066 int f_keycodes_per_modifier;
19067 proto_tree_add_item(t, hf_x11_xinput_SetDeviceModifierMapping_device_id, tvb, *offsetp, 1, byte_order);
19068 *offsetp += 1;
19069 f_keycodes_per_modifier = tvb_get_uint8(tvb, *offsetp);
19070 proto_tree_add_item(t, hf_x11_xinput_SetDeviceModifierMapping_keycodes_per_modifier, tvb, *offsetp, 1, byte_order);
19071 *offsetp += 1;
19072 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19073 *offsetp += 2;
19074 listOfByte(tvb, offsetp, t, hf_x11_xinput_SetDeviceModifierMapping_keymaps, (f_keycodes_per_modifier * 8), byte_order);
19075 length -= (f_keycodes_per_modifier * 8) * 1;
19076}
19077static void xinputSetDeviceModifierMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
19078{
19079 int sequence_number;
19080
19081 col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceModifierMapping");
19082
19083 REPLY(reply);
19084 proto_tree_add_item(t, hf_x11_xinput_SetDeviceModifierMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19085 *offsetp += 1;
19086 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19087 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19088 "%d (xinput-SetDeviceModifierMapping)", sequence_number);
19089 *offsetp += 2;
19090 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19091 *offsetp += 4;
19092 field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceModifierMapping_reply_status, byte_order);
19093 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
19094 *offsetp += 23;
19095}
19096
19097static void xinputGetDeviceButtonMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19098{
19099 proto_tree_add_item(t, hf_x11_xinput_GetDeviceButtonMapping_device_id, tvb, *offsetp, 1, byte_order);
19100 *offsetp += 1;
19101 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19102 *offsetp += 3;
19103}
19104static void xinputGetDeviceButtonMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
19105{
19106 int sequence_number;
19107 int f_map_size;
19108
19109 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceButtonMapping");
19110
19111 REPLY(reply);
19112 proto_tree_add_item(t, hf_x11_xinput_GetDeviceButtonMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19113 *offsetp += 1;
19114 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19115 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19116 "%d (xinput-GetDeviceButtonMapping)", sequence_number);
19117 *offsetp += 2;
19118 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19119 *offsetp += 4;
19120 f_map_size = tvb_get_uint8(tvb, *offsetp);
19121 proto_tree_add_item(t, hf_x11_xinput_GetDeviceButtonMapping_reply_map_size, tvb, *offsetp, 1, byte_order);
19122 *offsetp += 1;
19123 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
19124 *offsetp += 23;
19125 listOfByte(tvb, offsetp, t, hf_x11_xinput_GetDeviceButtonMapping_reply_map, f_map_size, byte_order);
19126 pad_to_4_bytes(tvb, offsetp, t);
19127}
19128
19129static void xinputSetDeviceButtonMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19130{
19131 int f_map_size;
19132 proto_tree_add_item(t, hf_x11_xinput_SetDeviceButtonMapping_device_id, tvb, *offsetp, 1, byte_order);
19133 *offsetp += 1;
19134 f_map_size = tvb_get_uint8(tvb, *offsetp);
19135 proto_tree_add_item(t, hf_x11_xinput_SetDeviceButtonMapping_map_size, tvb, *offsetp, 1, byte_order);
19136 *offsetp += 1;
19137 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19138 *offsetp += 2;
19139 listOfByte(tvb, offsetp, t, hf_x11_xinput_SetDeviceButtonMapping_map, f_map_size, byte_order);
19140 length -= f_map_size * 1;
19141}
19142static void xinputSetDeviceButtonMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
19143{
19144 int sequence_number;
19145
19146 col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceButtonMapping");
19147
19148 REPLY(reply);
19149 proto_tree_add_item(t, hf_x11_xinput_SetDeviceButtonMapping_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19150 *offsetp += 1;
19151 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19152 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19153 "%d (xinput-SetDeviceButtonMapping)", sequence_number);
19154 *offsetp += 2;
19155 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19156 *offsetp += 4;
19157 field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceButtonMapping_reply_status, byte_order);
19158 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
19159 *offsetp += 23;
19160}
19161
19162static int struct_size_xinput_InputState(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
19163{
19164 int size = 0;
19165 return size + 2;
19166}
19167
19168static void struct_xinput_InputState(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
19169{
19170 int i;
19171 for (i = 0; i < count; i++) {
19172 proto_item *item;
19173 proto_tree *t;
19174 int f_class_id;
19175
19176 item = proto_tree_add_item(root, hf_x11_struct_xinput_InputState, tvb, *offsetp, struct_size_xinput_InputState(tvb, offsetp, byte_order), ENC_NA);
19177 t = proto_item_add_subtree(item, ett_x11_rectangle);
19178 f_class_id = field8(tvb, offsetp, t, hf_x11_struct_xinput_InputState_class_id, byte_order);
19179 proto_tree_add_item(t, hf_x11_struct_xinput_InputState_len, tvb, *offsetp, 1, byte_order);
19180 *offsetp += 1;
19181 if (f_class_id == 0) {
19182 proto_tree_add_item(t, hf_x11_struct_xinput_InputState_Key_num_keys, tvb, *offsetp, 1, byte_order);
19183 *offsetp += 1;
19184 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19185 *offsetp += 1;
19186 listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_InputState_Key_keys, 32, byte_order);
19187 }
19188 if (f_class_id == 1) {
19189 proto_tree_add_item(t, hf_x11_struct_xinput_InputState_Button_num_buttons, tvb, *offsetp, 1, byte_order);
19190 *offsetp += 1;
19191 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19192 *offsetp += 1;
19193 listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_InputState_Button_buttons, 32, byte_order);
19194 }
19195 if (f_class_id == 2) {
19196 int f_num_valuators;
19197 f_num_valuators = tvb_get_uint8(tvb, *offsetp);
19198 proto_tree_add_item(t, hf_x11_struct_xinput_InputState_Valuator_num_valuators, tvb, *offsetp, 1, byte_order);
19199 *offsetp += 1;
19200 {
19201 static int* const mode_bits [] = {
19202 &hf_x11_struct_xinput_InputState_Valuator_mode_mask_DeviceModeAbsolute,
19203 &hf_x11_struct_xinput_InputState_Valuator_mode_mask_OutOfProximity,
19204 NULL
19205 };
19206 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xinput_InputState_Valuator_mode, ett_x11_rectangle, mode_bits, byte_order);
19207 }
19208 *offsetp += 1;
19209 listOfInt32(tvb, offsetp, t, hf_x11_struct_xinput_InputState_Valuator_valuators, hf_x11_struct_xinput_InputState_Valuator_valuators_item, f_num_valuators, byte_order);
19210 }
19211 }
19212}
19213
19214static void xinputQueryDeviceState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19215{
19216 proto_tree_add_item(t, hf_x11_xinput_QueryDeviceState_device_id, tvb, *offsetp, 1, byte_order);
19217 *offsetp += 1;
19218 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19219 *offsetp += 3;
19220}
19221static void xinputQueryDeviceState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
19222{
19223 int sequence_number;
19224 int f_num_classes;
19225
19226 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryDeviceState");
19227
19228 REPLY(reply);
19229 proto_tree_add_item(t, hf_x11_xinput_QueryDeviceState_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19230 *offsetp += 1;
19231 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19232 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19233 "%d (xinput-QueryDeviceState)", sequence_number);
19234 *offsetp += 2;
19235 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19236 *offsetp += 4;
19237 f_num_classes = tvb_get_uint8(tvb, *offsetp);
19238 proto_tree_add_item(t, hf_x11_xinput_QueryDeviceState_reply_num_classes, tvb, *offsetp, 1, byte_order);
19239 *offsetp += 1;
19240 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
19241 *offsetp += 23;
19242 struct_xinput_InputState(tvb, offsetp, t, byte_order, f_num_classes);
19243}
19244
19245static void xinputDeviceBell(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19246{
19247 proto_tree_add_item(t, hf_x11_xinput_DeviceBell_device_id, tvb, *offsetp, 1, byte_order);
19248 *offsetp += 1;
19249 proto_tree_add_item(t, hf_x11_xinput_DeviceBell_feedback_id, tvb, *offsetp, 1, byte_order);
19250 *offsetp += 1;
19251 proto_tree_add_item(t, hf_x11_xinput_DeviceBell_feedback_class, tvb, *offsetp, 1, byte_order);
19252 *offsetp += 1;
19253 proto_tree_add_item(t, hf_x11_xinput_DeviceBell_percent, tvb, *offsetp, 1, byte_order);
19254 *offsetp += 1;
19255}
19256
19257static void xinputSetDeviceValuators(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19258{
19259 int f_num_valuators;
19260 proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_device_id, tvb, *offsetp, 1, byte_order);
19261 *offsetp += 1;
19262 proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_first_valuator, tvb, *offsetp, 1, byte_order);
19263 *offsetp += 1;
19264 f_num_valuators = tvb_get_uint8(tvb, *offsetp);
19265 proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_num_valuators, tvb, *offsetp, 1, byte_order);
19266 *offsetp += 1;
19267 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19268 *offsetp += 1;
19269 listOfInt32(tvb, offsetp, t, hf_x11_xinput_SetDeviceValuators_valuators, hf_x11_xinput_SetDeviceValuators_valuators_item, f_num_valuators, byte_order);
19270 length -= f_num_valuators * 4;
19271}
19272static void xinputSetDeviceValuators_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
19273{
19274 int sequence_number;
19275
19276 col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceValuators");
19277
19278 REPLY(reply);
19279 proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19280 *offsetp += 1;
19281 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19282 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19283 "%d (xinput-SetDeviceValuators)", sequence_number);
19284 *offsetp += 2;
19285 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19286 *offsetp += 4;
19287 field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceValuators_reply_status, byte_order);
19288 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
19289 *offsetp += 23;
19290}
19291
19292static int struct_size_xinput_DeviceState(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
19293{
19294 int size = 0;
19295 return size + 4;
19296}
19297
19298static void struct_xinput_DeviceState(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
19299{
19300 int i;
19301 for (i = 0; i < count; i++) {
19302 proto_item *item;
19303 proto_tree *t;
19304 int f_control_id;
19305
19306 item = proto_tree_add_item(root, hf_x11_struct_xinput_DeviceState, tvb, *offsetp, struct_size_xinput_DeviceState(tvb, offsetp, byte_order), ENC_NA);
19307 t = proto_item_add_subtree(item, ett_x11_rectangle);
19308 f_control_id = field16(tvb, offsetp, t, hf_x11_struct_xinput_DeviceState_control_id, byte_order);
19309 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_len, tvb, *offsetp, 2, byte_order);
19310 *offsetp += 2;
19311 if (f_control_id == 1) {
19312 int f_num_valuators;
19313 f_num_valuators = tvb_get_uint32(tvb, *offsetp, byte_order);
19314 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_resolution_num_valuators, tvb, *offsetp, 4, byte_order);
19315 *offsetp += 4;
19316 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);
19317 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);
19318 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);
19319 }
19320 if (f_control_id == 2) {
19321 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_min_x, tvb, *offsetp, 4, byte_order);
19322 *offsetp += 4;
19323 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_max_x, tvb, *offsetp, 4, byte_order);
19324 *offsetp += 4;
19325 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_min_y, tvb, *offsetp, 4, byte_order);
19326 *offsetp += 4;
19327 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_max_y, tvb, *offsetp, 4, byte_order);
19328 *offsetp += 4;
19329 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_flip_x, tvb, *offsetp, 4, byte_order);
19330 *offsetp += 4;
19331 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_flip_y, tvb, *offsetp, 4, byte_order);
19332 *offsetp += 4;
19333 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_rotation, tvb, *offsetp, 4, byte_order);
19334 *offsetp += 4;
19335 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_calib_button_threshold, tvb, *offsetp, 4, byte_order);
19336 *offsetp += 4;
19337 }
19338 if (f_control_id == 3) {
19339 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_core_status, tvb, *offsetp, 1, byte_order);
19340 *offsetp += 1;
19341 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_core_iscore, tvb, *offsetp, 1, byte_order);
19342 *offsetp += 1;
19343 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19344 *offsetp += 2;
19345 }
19346 if (f_control_id == 4) {
19347 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_enable_enable, tvb, *offsetp, 1, byte_order);
19348 *offsetp += 1;
19349 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19350 *offsetp += 3;
19351 }
19352 if (f_control_id == 5) {
19353 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_offset_x, tvb, *offsetp, 4, byte_order);
19354 *offsetp += 4;
19355 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_offset_y, tvb, *offsetp, 4, byte_order);
19356 *offsetp += 4;
19357 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_width, tvb, *offsetp, 4, byte_order);
19358 *offsetp += 4;
19359 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_height, tvb, *offsetp, 4, byte_order);
19360 *offsetp += 4;
19361 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_screen, tvb, *offsetp, 4, byte_order);
19362 *offsetp += 4;
19363 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceState_abs_area_following, tvb, *offsetp, 4, byte_order);
19364 *offsetp += 4;
19365 }
19366 }
19367}
19368
19369static void xinputGetDeviceControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19370{
19371 field16(tvb, offsetp, t, hf_x11_xinput_GetDeviceControl_control_id, byte_order);
19372 proto_tree_add_item(t, hf_x11_xinput_GetDeviceControl_device_id, tvb, *offsetp, 1, byte_order);
19373 *offsetp += 1;
19374 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19375 *offsetp += 1;
19376}
19377static void xinputGetDeviceControl_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
19378{
19379 int sequence_number;
19380
19381 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceControl");
19382
19383 REPLY(reply);
19384 proto_tree_add_item(t, hf_x11_xinput_GetDeviceControl_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19385 *offsetp += 1;
19386 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19387 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19388 "%d (xinput-GetDeviceControl)", sequence_number);
19389 *offsetp += 2;
19390 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19391 *offsetp += 4;
19392 field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceControl_reply_status, byte_order);
19393 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
19394 *offsetp += 23;
19395 struct_xinput_DeviceState(tvb, offsetp, t, byte_order, 1);
19396}
19397
19398static int struct_size_xinput_DeviceCtl(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
19399{
19400 int size = 0;
19401 return size + 4;
19402}
19403
19404static void struct_xinput_DeviceCtl(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
19405{
19406 int i;
19407 for (i = 0; i < count; i++) {
19408 proto_item *item;
19409 proto_tree *t;
19410 int f_control_id;
19411
19412 item = proto_tree_add_item(root, hf_x11_struct_xinput_DeviceCtl, tvb, *offsetp, struct_size_xinput_DeviceCtl(tvb, offsetp, byte_order), ENC_NA);
19413 t = proto_item_add_subtree(item, ett_x11_rectangle);
19414 f_control_id = field16(tvb, offsetp, t, hf_x11_struct_xinput_DeviceCtl_control_id, byte_order);
19415 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_len, tvb, *offsetp, 2, byte_order);
19416 *offsetp += 2;
19417 if (f_control_id == 1) {
19418 int f_num_valuators;
19419 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_resolution_first_valuator, tvb, *offsetp, 1, byte_order);
19420 *offsetp += 1;
19421 f_num_valuators = tvb_get_uint8(tvb, *offsetp);
19422 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_resolution_num_valuators, tvb, *offsetp, 1, byte_order);
19423 *offsetp += 1;
19424 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19425 *offsetp += 2;
19426 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);
19427 }
19428 if (f_control_id == 2) {
19429 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_min_x, tvb, *offsetp, 4, byte_order);
19430 *offsetp += 4;
19431 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_max_x, tvb, *offsetp, 4, byte_order);
19432 *offsetp += 4;
19433 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_min_y, tvb, *offsetp, 4, byte_order);
19434 *offsetp += 4;
19435 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_max_y, tvb, *offsetp, 4, byte_order);
19436 *offsetp += 4;
19437 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_flip_x, tvb, *offsetp, 4, byte_order);
19438 *offsetp += 4;
19439 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_flip_y, tvb, *offsetp, 4, byte_order);
19440 *offsetp += 4;
19441 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_rotation, tvb, *offsetp, 4, byte_order);
19442 *offsetp += 4;
19443 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_calib_button_threshold, tvb, *offsetp, 4, byte_order);
19444 *offsetp += 4;
19445 }
19446 if (f_control_id == 3) {
19447 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_core_status, tvb, *offsetp, 1, byte_order);
19448 *offsetp += 1;
19449 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19450 *offsetp += 3;
19451 }
19452 if (f_control_id == 4) {
19453 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_enable_enable, tvb, *offsetp, 1, byte_order);
19454 *offsetp += 1;
19455 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19456 *offsetp += 3;
19457 }
19458 if (f_control_id == 5) {
19459 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_offset_x, tvb, *offsetp, 4, byte_order);
19460 *offsetp += 4;
19461 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_offset_y, tvb, *offsetp, 4, byte_order);
19462 *offsetp += 4;
19463 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_width, tvb, *offsetp, 4, byte_order);
19464 *offsetp += 4;
19465 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_height, tvb, *offsetp, 4, byte_order);
19466 *offsetp += 4;
19467 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_screen, tvb, *offsetp, 4, byte_order);
19468 *offsetp += 4;
19469 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceCtl_abs_area_following, tvb, *offsetp, 4, byte_order);
19470 *offsetp += 4;
19471 }
19472 }
19473}
19474
19475static void xinputChangeDeviceControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19476{
19477 field16(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceControl_control_id, byte_order);
19478 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceControl_device_id, tvb, *offsetp, 1, byte_order);
19479 *offsetp += 1;
19480 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19481 *offsetp += 1;
19482 struct_xinput_DeviceCtl(tvb, offsetp, t, byte_order, 1);
19483}
19484static void xinputChangeDeviceControl_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
19485{
19486 int sequence_number;
19487
19488 col_append_fstr(pinfo->cinfo, COL_INFO, "-ChangeDeviceControl");
19489
19490 REPLY(reply);
19491 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceControl_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19492 *offsetp += 1;
19493 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19494 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19495 "%d (xinput-ChangeDeviceControl)", sequence_number);
19496 *offsetp += 2;
19497 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19498 *offsetp += 4;
19499 field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceControl_reply_status, byte_order);
19500 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
19501 *offsetp += 23;
19502}
19503
19504static void xinputListDeviceProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19505{
19506 proto_tree_add_item(t, hf_x11_xinput_ListDeviceProperties_device_id, tvb, *offsetp, 1, byte_order);
19507 *offsetp += 1;
19508 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19509 *offsetp += 3;
19510}
19511static void xinputListDeviceProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
19512{
19513 int sequence_number;
19514 int f_num_atoms;
19515
19516 col_append_fstr(pinfo->cinfo, COL_INFO, "-ListDeviceProperties");
19517
19518 REPLY(reply);
19519 proto_tree_add_item(t, hf_x11_xinput_ListDeviceProperties_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19520 *offsetp += 1;
19521 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19522 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19523 "%d (xinput-ListDeviceProperties)", sequence_number);
19524 *offsetp += 2;
19525 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19526 *offsetp += 4;
19527 f_num_atoms = tvb_get_uint16(tvb, *offsetp, byte_order);
19528 proto_tree_add_item(t, hf_x11_xinput_ListDeviceProperties_reply_num_atoms, tvb, *offsetp, 2, byte_order);
19529 *offsetp += 2;
19530 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
19531 *offsetp += 22;
19532 listOfCard32(tvb, offsetp, t, hf_x11_xinput_ListDeviceProperties_reply_atoms, hf_x11_xinput_ListDeviceProperties_reply_atoms_item, f_num_atoms, byte_order);
19533}
19534
19535static void xinputChangeDeviceProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19536{
19537 int f_format;
19538 int f_num_items;
19539 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceProperty_property, tvb, *offsetp, 4, byte_order);
19540 *offsetp += 4;
19541 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceProperty_type, tvb, *offsetp, 4, byte_order);
19542 *offsetp += 4;
19543 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceProperty_device_id, tvb, *offsetp, 1, byte_order);
19544 *offsetp += 1;
19545 f_format = field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_format, byte_order);
19546 field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_mode, byte_order);
19547 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19548 *offsetp += 1;
19549 f_num_items = tvb_get_uint32(tvb, *offsetp, byte_order);
19550 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceProperty_num_items, tvb, *offsetp, 4, byte_order);
19551 *offsetp += 4;
19552 if (f_format == 8) {
19553 listOfByte(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_8Bits_data8, f_num_items, byte_order);
19554 length -= f_num_items * 1;
19555 pad_to_4_bytes(tvb, offsetp, t);
19556 length = WS_ROUNDUP_4(length);
19557 }
19558 if (f_format == 16) {
19559 listOfCard16(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_16Bits_data16, hf_x11_xinput_ChangeDeviceProperty_16Bits_data16_item, f_num_items, byte_order);
19560 length -= f_num_items * 2;
19561 pad_to_4_bytes(tvb, offsetp, t);
19562 length = WS_ROUNDUP_4(length);
19563 }
19564 if (f_format == 32) {
19565 listOfCard32(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceProperty_32Bits_data32, hf_x11_xinput_ChangeDeviceProperty_32Bits_data32_item, f_num_items, byte_order);
19566 length -= f_num_items * 4;
19567 }
19568}
19569
19570static void xinputDeleteDeviceProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19571{
19572 proto_tree_add_item(t, hf_x11_xinput_DeleteDeviceProperty_property, tvb, *offsetp, 4, byte_order);
19573 *offsetp += 4;
19574 proto_tree_add_item(t, hf_x11_xinput_DeleteDeviceProperty_device_id, tvb, *offsetp, 1, byte_order);
19575 *offsetp += 1;
19576 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19577 *offsetp += 3;
19578}
19579
19580static void xinputGetDeviceProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19581{
19582 proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_property, tvb, *offsetp, 4, byte_order);
19583 *offsetp += 4;
19584 proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_type, tvb, *offsetp, 4, byte_order);
19585 *offsetp += 4;
19586 proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_offset, tvb, *offsetp, 4, byte_order);
19587 *offsetp += 4;
19588 proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_len, tvb, *offsetp, 4, byte_order);
19589 *offsetp += 4;
19590 proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_device_id, tvb, *offsetp, 1, byte_order);
19591 *offsetp += 1;
19592 proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_delete, tvb, *offsetp, 1, byte_order);
19593 *offsetp += 1;
19594 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19595 *offsetp += 2;
19596}
19597static void xinputGetDeviceProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
19598{
19599 int sequence_number;
19600 int f_num_items;
19601 int f_format;
19602
19603 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceProperty");
19604
19605 REPLY(reply);
19606 proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_xi_reply_type, tvb, *offsetp, 1, byte_order);
19607 *offsetp += 1;
19608 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19609 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19610 "%d (xinput-GetDeviceProperty)", sequence_number);
19611 *offsetp += 2;
19612 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19613 *offsetp += 4;
19614 proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_type, tvb, *offsetp, 4, byte_order);
19615 *offsetp += 4;
19616 proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_bytes_after, tvb, *offsetp, 4, byte_order);
19617 *offsetp += 4;
19618 f_num_items = tvb_get_uint32(tvb, *offsetp, byte_order);
19619 proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_num_items, tvb, *offsetp, 4, byte_order);
19620 *offsetp += 4;
19621 f_format = field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceProperty_reply_format, byte_order);
19622 proto_tree_add_item(t, hf_x11_xinput_GetDeviceProperty_reply_device_id, tvb, *offsetp, 1, byte_order);
19623 *offsetp += 1;
19624 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
19625 *offsetp += 10;
19626 if (f_format == 8) {
19627 listOfByte(tvb, offsetp, t, hf_x11_xinput_GetDeviceProperty_reply_8Bits_data8, f_num_items, byte_order);
19628 pad_to_4_bytes(tvb, offsetp, t);
19629 }
19630 if (f_format == 16) {
19631 listOfCard16(tvb, offsetp, t, hf_x11_xinput_GetDeviceProperty_reply_16Bits_data16, hf_x11_xinput_GetDeviceProperty_reply_16Bits_data16_item, f_num_items, byte_order);
19632 pad_to_4_bytes(tvb, offsetp, t);
19633 }
19634 if (f_format == 32) {
19635 listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetDeviceProperty_reply_32Bits_data32, hf_x11_xinput_GetDeviceProperty_reply_32Bits_data32_item, f_num_items, byte_order);
19636 }
19637}
19638
19639static void struct_xinput_GroupInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
19640{
19641 int i;
19642 for (i = 0; i < count; i++) {
19643 proto_item *item;
19644 proto_tree *t;
19645
19646 item = proto_tree_add_item(root, hf_x11_struct_xinput_GroupInfo, tvb, *offsetp, 4, ENC_NA);
19647 t = proto_item_add_subtree(item, ett_x11_rectangle);
19648 proto_tree_add_item(t, hf_x11_struct_xinput_GroupInfo_base, tvb, *offsetp, 1, byte_order);
19649 *offsetp += 1;
19650 proto_tree_add_item(t, hf_x11_struct_xinput_GroupInfo_latched, tvb, *offsetp, 1, byte_order);
19651 *offsetp += 1;
19652 proto_tree_add_item(t, hf_x11_struct_xinput_GroupInfo_locked, tvb, *offsetp, 1, byte_order);
19653 *offsetp += 1;
19654 proto_tree_add_item(t, hf_x11_struct_xinput_GroupInfo_effective, tvb, *offsetp, 1, byte_order);
19655 *offsetp += 1;
19656 }
19657}
19658
19659static void struct_xinput_ModifierInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
19660{
19661 int i;
19662 for (i = 0; i < count; i++) {
19663 proto_item *item;
19664 proto_tree *t;
19665
19666 item = proto_tree_add_item(root, hf_x11_struct_xinput_ModifierInfo, tvb, *offsetp, 16, ENC_NA);
19667 t = proto_item_add_subtree(item, ett_x11_rectangle);
19668 proto_tree_add_item(t, hf_x11_struct_xinput_ModifierInfo_base, tvb, *offsetp, 4, byte_order);
19669 *offsetp += 4;
19670 proto_tree_add_item(t, hf_x11_struct_xinput_ModifierInfo_latched, tvb, *offsetp, 4, byte_order);
19671 *offsetp += 4;
19672 proto_tree_add_item(t, hf_x11_struct_xinput_ModifierInfo_locked, tvb, *offsetp, 4, byte_order);
19673 *offsetp += 4;
19674 proto_tree_add_item(t, hf_x11_struct_xinput_ModifierInfo_effective, tvb, *offsetp, 4, byte_order);
19675 *offsetp += 4;
19676 }
19677}
19678
19679static void xinputXIQueryPointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19680{
19681 proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_window, tvb, *offsetp, 4, byte_order);
19682 *offsetp += 4;
19683 field16(tvb, offsetp, t, hf_x11_xinput_XIQueryPointer_deviceid, byte_order);
19684 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19685 *offsetp += 2;
19686}
19687static void xinputXIQueryPointer_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
19688{
19689 int sequence_number;
19690 int f_buttons_len;
19691
19692 col_append_fstr(pinfo->cinfo, COL_INFO, "-XIQueryPointer");
19693
19694 REPLY(reply);
19695 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19696 *offsetp += 1;
19697 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19698 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19699 "%d (xinput-XIQueryPointer)", sequence_number);
19700 *offsetp += 2;
19701 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19702 *offsetp += 4;
19703 proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_root, tvb, *offsetp, 4, byte_order);
19704 *offsetp += 4;
19705 proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_child, tvb, *offsetp, 4, byte_order);
19706 *offsetp += 4;
19707 proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_root_x, tvb, *offsetp, 4, byte_order);
19708 *offsetp += 4;
19709 proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_root_y, tvb, *offsetp, 4, byte_order);
19710 *offsetp += 4;
19711 proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_win_x, tvb, *offsetp, 4, byte_order);
19712 *offsetp += 4;
19713 proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_win_y, tvb, *offsetp, 4, byte_order);
19714 *offsetp += 4;
19715 proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_same_screen, tvb, *offsetp, 1, byte_order);
19716 *offsetp += 1;
19717 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19718 *offsetp += 1;
19719 f_buttons_len = tvb_get_uint16(tvb, *offsetp, byte_order);
19720 proto_tree_add_item(t, hf_x11_xinput_XIQueryPointer_reply_buttons_len, tvb, *offsetp, 2, byte_order);
19721 *offsetp += 2;
19722 struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
19723 struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
19724 listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIQueryPointer_reply_buttons, hf_x11_xinput_XIQueryPointer_reply_buttons_item, f_buttons_len, byte_order);
19725}
19726
19727static void xinputXIWarpPointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19728{
19729 proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_win, tvb, *offsetp, 4, byte_order);
19730 *offsetp += 4;
19731 proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_dst_win, tvb, *offsetp, 4, byte_order);
19732 *offsetp += 4;
19733 proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_x, tvb, *offsetp, 4, byte_order);
19734 *offsetp += 4;
19735 proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_y, tvb, *offsetp, 4, byte_order);
19736 *offsetp += 4;
19737 proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_width, tvb, *offsetp, 2, byte_order);
19738 *offsetp += 2;
19739 proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_src_height, tvb, *offsetp, 2, byte_order);
19740 *offsetp += 2;
19741 proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_dst_x, tvb, *offsetp, 4, byte_order);
19742 *offsetp += 4;
19743 proto_tree_add_item(t, hf_x11_xinput_XIWarpPointer_dst_y, tvb, *offsetp, 4, byte_order);
19744 *offsetp += 4;
19745 field16(tvb, offsetp, t, hf_x11_xinput_XIWarpPointer_deviceid, byte_order);
19746 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19747 *offsetp += 2;
19748}
19749
19750static void xinputXIChangeCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19751{
19752 proto_tree_add_item(t, hf_x11_xinput_XIChangeCursor_window, tvb, *offsetp, 4, byte_order);
19753 *offsetp += 4;
19754 proto_tree_add_item(t, hf_x11_xinput_XIChangeCursor_cursor, tvb, *offsetp, 4, byte_order);
19755 *offsetp += 4;
19756 field16(tvb, offsetp, t, hf_x11_xinput_XIChangeCursor_deviceid, byte_order);
19757 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19758 *offsetp += 2;
19759}
19760
19761static int struct_size_xinput_HierarchyChange(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
19762{
19763 int size = 0;
19764 return size + 4;
19765}
19766
19767static void struct_xinput_HierarchyChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
19768{
19769 int i;
19770 for (i = 0; i < count; i++) {
19771 proto_item *item;
19772 proto_tree *t;
19773 int f_type;
19774
19775 item = proto_tree_add_item(root, hf_x11_struct_xinput_HierarchyChange, tvb, *offsetp, struct_size_xinput_HierarchyChange(tvb, offsetp, byte_order), ENC_NA);
19776 t = proto_item_add_subtree(item, ett_x11_rectangle);
19777 f_type = field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_type, byte_order);
19778 proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyChange_len, tvb, *offsetp, 2, byte_order);
19779 *offsetp += 2;
19780 if (f_type == 1) {
19781 int f_name_len;
19782 f_name_len = tvb_get_uint16(tvb, *offsetp, byte_order);
19783 proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyChange_AddMaster_name_len, tvb, *offsetp, 2, byte_order);
19784 *offsetp += 2;
19785 proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyChange_AddMaster_send_core, tvb, *offsetp, 1, byte_order);
19786 *offsetp += 1;
19787 proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyChange_AddMaster_enable, tvb, *offsetp, 1, byte_order);
19788 *offsetp += 1;
19789 listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_AddMaster_name, f_name_len, byte_order);
19790 pad_to_4_bytes(tvb, offsetp, t);
19791 }
19792 if (f_type == 2) {
19793 field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_RemoveMaster_deviceid, byte_order);
19794 field8(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_RemoveMaster_return_mode, byte_order);
19795 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19796 *offsetp += 1;
19797 field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_RemoveMaster_return_pointer, byte_order);
19798 field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_RemoveMaster_return_keyboard, byte_order);
19799 }
19800 if (f_type == 3) {
19801 field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_AttachSlave_deviceid, byte_order);
19802 field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_AttachSlave_master, byte_order);
19803 }
19804 if (f_type == 4) {
19805 field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyChange_DetachSlave_deviceid, byte_order);
19806 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19807 *offsetp += 2;
19808 }
19809 }
19810}
19811
19812static void xinputXIChangeHierarchy(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19813{
19814 int f_num_changes;
19815 f_num_changes = tvb_get_uint8(tvb, *offsetp);
19816 proto_tree_add_item(t, hf_x11_xinput_XIChangeHierarchy_num_changes, tvb, *offsetp, 1, byte_order);
19817 *offsetp += 1;
19818 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19819 *offsetp += 3;
19820 struct_xinput_HierarchyChange(tvb, offsetp, t, byte_order, f_num_changes);
19821 length -= f_num_changes * 0;
19822}
19823
19824static void xinputXISetClientPointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19825{
19826 proto_tree_add_item(t, hf_x11_xinput_XISetClientPointer_window, tvb, *offsetp, 4, byte_order);
19827 *offsetp += 4;
19828 field16(tvb, offsetp, t, hf_x11_xinput_XISetClientPointer_deviceid, byte_order);
19829 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19830 *offsetp += 2;
19831}
19832
19833static void xinputXIGetClientPointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19834{
19835 proto_tree_add_item(t, hf_x11_xinput_XIGetClientPointer_window, tvb, *offsetp, 4, byte_order);
19836 *offsetp += 4;
19837}
19838static void xinputXIGetClientPointer_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
19839{
19840 int sequence_number;
19841
19842 col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGetClientPointer");
19843
19844 REPLY(reply);
19845 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19846 *offsetp += 1;
19847 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19848 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19849 "%d (xinput-XIGetClientPointer)", sequence_number);
19850 *offsetp += 2;
19851 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19852 *offsetp += 4;
19853 proto_tree_add_item(t, hf_x11_xinput_XIGetClientPointer_reply_set, tvb, *offsetp, 1, byte_order);
19854 *offsetp += 1;
19855 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19856 *offsetp += 1;
19857 field16(tvb, offsetp, t, hf_x11_xinput_XIGetClientPointer_reply_deviceid, byte_order);
19858 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
19859 *offsetp += 20;
19860}
19861
19862static int struct_size_xinput_EventMask(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
19863{
19864 int size = 0;
19865 int f_mask_len;
19866 f_mask_len = tvb_get_uint16(tvb, *offsetp + size + 2, byte_order);
19867 size += f_mask_len * 4;
19868 return size + 4;
19869}
19870
19871static void struct_xinput_EventMask(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
19872{
19873 int i;
19874 for (i = 0; i < count; i++) {
19875 proto_item *item;
19876 proto_tree *t;
19877 int f_mask_len;
19878
19879 item = proto_tree_add_item(root, hf_x11_struct_xinput_EventMask, tvb, *offsetp, struct_size_xinput_EventMask(tvb, offsetp, byte_order), ENC_NA);
19880 t = proto_item_add_subtree(item, ett_x11_rectangle);
19881 field16(tvb, offsetp, t, hf_x11_struct_xinput_EventMask_deviceid, byte_order);
19882 f_mask_len = tvb_get_uint16(tvb, *offsetp, byte_order);
19883 proto_tree_add_item(t, hf_x11_struct_xinput_EventMask_mask_len, tvb, *offsetp, 2, byte_order);
19884 *offsetp += 2;
19885 listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_EventMask_mask, hf_x11_struct_xinput_EventMask_mask_item, f_mask_len, byte_order);
19886 }
19887}
19888
19889static void xinputXISelectEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19890{
19891 int f_num_mask;
19892 proto_tree_add_item(t, hf_x11_xinput_XISelectEvents_window, tvb, *offsetp, 4, byte_order);
19893 *offsetp += 4;
19894 f_num_mask = tvb_get_uint16(tvb, *offsetp, byte_order);
19895 proto_tree_add_item(t, hf_x11_xinput_XISelectEvents_num_mask, tvb, *offsetp, 2, byte_order);
19896 *offsetp += 2;
19897 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19898 *offsetp += 2;
19899 struct_xinput_EventMask(tvb, offsetp, t, byte_order, f_num_mask);
19900 length -= f_num_mask * 0;
19901}
19902
19903static void xinputXIQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
19904{
19905 proto_tree_add_item(t, hf_x11_xinput_XIQueryVersion_major_version, tvb, *offsetp, 2, byte_order);
19906 *offsetp += 2;
19907 proto_tree_add_item(t, hf_x11_xinput_XIQueryVersion_minor_version, tvb, *offsetp, 2, byte_order);
19908 *offsetp += 2;
19909}
19910static void xinputXIQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
19911{
19912 int sequence_number;
19913
19914 col_append_fstr(pinfo->cinfo, COL_INFO, "-XIQueryVersion");
19915
19916 REPLY(reply);
19917 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
19918 *offsetp += 1;
19919 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
19920 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
19921 "%d (xinput-XIQueryVersion)", sequence_number);
19922 *offsetp += 2;
19923 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
19924 *offsetp += 4;
19925 proto_tree_add_item(t, hf_x11_xinput_XIQueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
19926 *offsetp += 2;
19927 proto_tree_add_item(t, hf_x11_xinput_XIQueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
19928 *offsetp += 2;
19929 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
19930 *offsetp += 20;
19931}
19932
19933static int struct_size_xinput_DeviceClass(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
19934{
19935 int size = 0;
19936 return size + 6;
19937}
19938
19939static void struct_xinput_DeviceClass(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
19940{
19941 int i;
19942 for (i = 0; i < count; i++) {
19943 proto_item *item;
19944 proto_tree *t;
19945 int f_type;
19946
19947 item = proto_tree_add_item(root, hf_x11_struct_xinput_DeviceClass, tvb, *offsetp, struct_size_xinput_DeviceClass(tvb, offsetp, byte_order), ENC_NA);
19948 t = proto_item_add_subtree(item, ett_x11_rectangle);
19949 f_type = field16(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_type, byte_order);
19950 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_len, tvb, *offsetp, 2, byte_order);
19951 *offsetp += 2;
19952 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_sourceid, tvb, *offsetp, 2, byte_order);
19953 *offsetp += 2;
19954 if (f_type == 0) {
19955 int f_num_keys;
19956 f_num_keys = tvb_get_uint16(tvb, *offsetp, byte_order);
19957 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Key_num_keys, tvb, *offsetp, 2, byte_order);
19958 *offsetp += 2;
19959 listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Key_keys, hf_x11_struct_xinput_DeviceClass_Key_keys_item, f_num_keys, byte_order);
19960 }
19961 if (f_type == 1) {
19962 int f_num_buttons;
19963 f_num_buttons = tvb_get_uint16(tvb, *offsetp, byte_order);
19964 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Button_num_buttons, tvb, *offsetp, 2, byte_order);
19965 *offsetp += 2;
19966 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);
19967 listOfCard32(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Button_labels, hf_x11_struct_xinput_DeviceClass_Button_labels_item, f_num_buttons, byte_order);
19968 }
19969 if (f_type == 2) {
19970 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Valuator_number, tvb, *offsetp, 2, byte_order);
19971 *offsetp += 2;
19972 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Valuator_label, tvb, *offsetp, 4, byte_order);
19973 *offsetp += 4;
19974 struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
19975 struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
19976 struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
19977 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Valuator_resolution, tvb, *offsetp, 4, byte_order);
19978 *offsetp += 4;
19979 field8(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Valuator_mode, byte_order);
19980 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
19981 *offsetp += 3;
19982 }
19983 if (f_type == 3) {
19984 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Scroll_number, tvb, *offsetp, 2, byte_order);
19985 *offsetp += 2;
19986 field16(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Scroll_scroll_type, byte_order);
19987 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
19988 *offsetp += 2;
19989 {
19990 static int* const flags_bits [] = {
19991 &hf_x11_struct_xinput_DeviceClass_Scroll_flags_mask_NoEmulation,
19992 &hf_x11_struct_xinput_DeviceClass_Scroll_flags_mask_Preferred,
19993 NULL
19994 };
19995 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xinput_DeviceClass_Scroll_flags, ett_x11_rectangle, flags_bits, byte_order);
19996 }
19997 *offsetp += 4;
19998 struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
19999 }
20000 if (f_type == 8) {
20001 field8(tvb, offsetp, t, hf_x11_struct_xinput_DeviceClass_Touch_mode, byte_order);
20002 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Touch_num_touches, tvb, *offsetp, 1, byte_order);
20003 *offsetp += 1;
20004 }
20005 if (f_type == 9) {
20006 proto_tree_add_item(t, hf_x11_struct_xinput_DeviceClass_Gesture_num_touches, tvb, *offsetp, 1, byte_order);
20007 *offsetp += 1;
20008 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20009 *offsetp += 1;
20010 }
20011 }
20012}
20013
20014static int struct_size_xinput_XIDeviceInfo(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
20015{
20016 int size = 0;
20017 int i, off;
20018 int f_name_len;
20019 int f_num_classes;
20020 f_num_classes = tvb_get_uint16(tvb, *offsetp + size + 6, byte_order);
20021 f_name_len = tvb_get_uint16(tvb, *offsetp + size + 8, byte_order);
20022 size += f_name_len * 1;
20023 size = (size + 3) & ~3;
20024 for (i = 0; i < f_num_classes; i++) {
20025 off = (*offsetp) + size + 12;
20026 size += struct_size_xinput_DeviceClass(tvb, &off, byte_order);
20027 }
20028 return size + 12;
20029}
20030
20031static void struct_xinput_XIDeviceInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
20032{
20033 int i;
20034 for (i = 0; i < count; i++) {
20035 proto_item *item;
20036 proto_tree *t;
20037 int f_num_classes;
20038 int f_name_len;
20039
20040 item = proto_tree_add_item(root, hf_x11_struct_xinput_XIDeviceInfo, tvb, *offsetp, struct_size_xinput_XIDeviceInfo(tvb, offsetp, byte_order), ENC_NA);
20041 t = proto_item_add_subtree(item, ett_x11_rectangle);
20042 field16(tvb, offsetp, t, hf_x11_struct_xinput_XIDeviceInfo_deviceid, byte_order);
20043 field16(tvb, offsetp, t, hf_x11_struct_xinput_XIDeviceInfo_type, byte_order);
20044 field16(tvb, offsetp, t, hf_x11_struct_xinput_XIDeviceInfo_attachment, byte_order);
20045 f_num_classes = tvb_get_uint16(tvb, *offsetp, byte_order);
20046 proto_tree_add_item(t, hf_x11_struct_xinput_XIDeviceInfo_num_classes, tvb, *offsetp, 2, byte_order);
20047 *offsetp += 2;
20048 f_name_len = tvb_get_uint16(tvb, *offsetp, byte_order);
20049 proto_tree_add_item(t, hf_x11_struct_xinput_XIDeviceInfo_name_len, tvb, *offsetp, 2, byte_order);
20050 *offsetp += 2;
20051 proto_tree_add_item(t, hf_x11_struct_xinput_XIDeviceInfo_enabled, tvb, *offsetp, 1, byte_order);
20052 *offsetp += 1;
20053 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20054 *offsetp += 1;
20055 listOfByte(tvb, offsetp, t, hf_x11_struct_xinput_XIDeviceInfo_name, f_name_len, byte_order);
20056 pad_to_4_bytes(tvb, offsetp, t);
20057 struct_xinput_DeviceClass(tvb, offsetp, t, byte_order, f_num_classes);
20058 }
20059}
20060
20061static void xinputXIQueryDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20062{
20063 field16(tvb, offsetp, t, hf_x11_xinput_XIQueryDevice_deviceid, byte_order);
20064 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20065 *offsetp += 2;
20066}
20067static void xinputXIQueryDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
20068{
20069 int sequence_number;
20070 int f_num_infos;
20071
20072 col_append_fstr(pinfo->cinfo, COL_INFO, "-XIQueryDevice");
20073
20074 REPLY(reply);
20075 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20076 *offsetp += 1;
20077 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
20078 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
20079 "%d (xinput-XIQueryDevice)", sequence_number);
20080 *offsetp += 2;
20081 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
20082 *offsetp += 4;
20083 f_num_infos = tvb_get_uint16(tvb, *offsetp, byte_order);
20084 proto_tree_add_item(t, hf_x11_xinput_XIQueryDevice_reply_num_infos, tvb, *offsetp, 2, byte_order);
20085 *offsetp += 2;
20086 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
20087 *offsetp += 22;
20088 struct_xinput_XIDeviceInfo(tvb, offsetp, t, byte_order, f_num_infos);
20089}
20090
20091static void xinputXISetFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20092{
20093 proto_tree_add_item(t, hf_x11_xinput_XISetFocus_window, tvb, *offsetp, 4, byte_order);
20094 *offsetp += 4;
20095 field32(tvb, offsetp, t, hf_x11_xinput_XISetFocus_time, byte_order);
20096 field16(tvb, offsetp, t, hf_x11_xinput_XISetFocus_deviceid, byte_order);
20097 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20098 *offsetp += 2;
20099}
20100
20101static void xinputXIGetFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20102{
20103 field16(tvb, offsetp, t, hf_x11_xinput_XIGetFocus_deviceid, byte_order);
20104 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20105 *offsetp += 2;
20106}
20107static void xinputXIGetFocus_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
20108{
20109 int sequence_number;
20110
20111 col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGetFocus");
20112
20113 REPLY(reply);
20114 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20115 *offsetp += 1;
20116 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
20117 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
20118 "%d (xinput-XIGetFocus)", sequence_number);
20119 *offsetp += 2;
20120 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
20121 *offsetp += 4;
20122 proto_tree_add_item(t, hf_x11_xinput_XIGetFocus_reply_focus, tvb, *offsetp, 4, byte_order);
20123 *offsetp += 4;
20124 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
20125 *offsetp += 20;
20126}
20127
20128static void xinputXIGrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20129{
20130 int f_mask_len;
20131 proto_tree_add_item(t, hf_x11_xinput_XIGrabDevice_window, tvb, *offsetp, 4, byte_order);
20132 *offsetp += 4;
20133 field32(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_time, byte_order);
20134 proto_tree_add_item(t, hf_x11_xinput_XIGrabDevice_cursor, tvb, *offsetp, 4, byte_order);
20135 *offsetp += 4;
20136 field16(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_deviceid, byte_order);
20137 field8(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_mode, byte_order);
20138 field8(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_paired_device_mode, byte_order);
20139 field8(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_owner_events, byte_order);
20140 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20141 *offsetp += 1;
20142 f_mask_len = tvb_get_uint16(tvb, *offsetp, byte_order);
20143 proto_tree_add_item(t, hf_x11_xinput_XIGrabDevice_mask_len, tvb, *offsetp, 2, byte_order);
20144 *offsetp += 2;
20145 listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_mask, hf_x11_xinput_XIGrabDevice_mask_item, f_mask_len, byte_order);
20146 length -= f_mask_len * 4;
20147}
20148static void xinputXIGrabDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
20149{
20150 int sequence_number;
20151
20152 col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGrabDevice");
20153
20154 REPLY(reply);
20155 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20156 *offsetp += 1;
20157 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
20158 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
20159 "%d (xinput-XIGrabDevice)", sequence_number);
20160 *offsetp += 2;
20161 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
20162 *offsetp += 4;
20163 field8(tvb, offsetp, t, hf_x11_xinput_XIGrabDevice_reply_status, byte_order);
20164 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
20165 *offsetp += 23;
20166}
20167
20168static void xinputXIUngrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20169{
20170 field32(tvb, offsetp, t, hf_x11_xinput_XIUngrabDevice_time, byte_order);
20171 field16(tvb, offsetp, t, hf_x11_xinput_XIUngrabDevice_deviceid, byte_order);
20172 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20173 *offsetp += 2;
20174}
20175
20176static void xinputXIAllowEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20177{
20178 field32(tvb, offsetp, t, hf_x11_xinput_XIAllowEvents_time, byte_order);
20179 field16(tvb, offsetp, t, hf_x11_xinput_XIAllowEvents_deviceid, byte_order);
20180 field8(tvb, offsetp, t, hf_x11_xinput_XIAllowEvents_event_mode, byte_order);
20181 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20182 *offsetp += 1;
20183 proto_tree_add_item(t, hf_x11_xinput_XIAllowEvents_touchid, tvb, *offsetp, 4, byte_order);
20184 *offsetp += 4;
20185 proto_tree_add_item(t, hf_x11_xinput_XIAllowEvents_grab_window, tvb, *offsetp, 4, byte_order);
20186 *offsetp += 4;
20187}
20188
20189static void struct_xinput_GrabModifierInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
20190{
20191 int i;
20192 for (i = 0; i < count; i++) {
20193 proto_item *item;
20194 proto_tree *t;
20195
20196 item = proto_tree_add_item(root, hf_x11_struct_xinput_GrabModifierInfo, tvb, *offsetp, 8, ENC_NA);
20197 t = proto_item_add_subtree(item, ett_x11_rectangle);
20198 field32(tvb, offsetp, t, hf_x11_struct_xinput_GrabModifierInfo_modifiers, byte_order);
20199 field8(tvb, offsetp, t, hf_x11_struct_xinput_GrabModifierInfo_status, byte_order);
20200 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
20201 *offsetp += 3;
20202 }
20203}
20204
20205static void xinputXIPassiveGrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20206{
20207 int f_num_modifiers;
20208 int f_mask_len;
20209 field32(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_time, byte_order);
20210 proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_grab_window, tvb, *offsetp, 4, byte_order);
20211 *offsetp += 4;
20212 proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_cursor, tvb, *offsetp, 4, byte_order);
20213 *offsetp += 4;
20214 proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_detail, tvb, *offsetp, 4, byte_order);
20215 *offsetp += 4;
20216 field16(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_deviceid, byte_order);
20217 f_num_modifiers = tvb_get_uint16(tvb, *offsetp, byte_order);
20218 proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_num_modifiers, tvb, *offsetp, 2, byte_order);
20219 *offsetp += 2;
20220 f_mask_len = tvb_get_uint16(tvb, *offsetp, byte_order);
20221 proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_mask_len, tvb, *offsetp, 2, byte_order);
20222 *offsetp += 2;
20223 field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_grab_type, byte_order);
20224 field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_grab_mode, byte_order);
20225 field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_paired_device_mode, byte_order);
20226 field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_owner_events, byte_order);
20227 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20228 *offsetp += 2;
20229 listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_mask, hf_x11_xinput_XIPassiveGrabDevice_mask_item, f_mask_len, byte_order);
20230 length -= f_mask_len * 4;
20231 listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIPassiveGrabDevice_modifiers, hf_x11_xinput_XIPassiveGrabDevice_modifiers_item, f_num_modifiers, byte_order);
20232 length -= f_num_modifiers * 4;
20233}
20234static void xinputXIPassiveGrabDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
20235{
20236 int sequence_number;
20237 int f_num_modifiers;
20238
20239 col_append_fstr(pinfo->cinfo, COL_INFO, "-XIPassiveGrabDevice");
20240
20241 REPLY(reply);
20242 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20243 *offsetp += 1;
20244 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
20245 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
20246 "%d (xinput-XIPassiveGrabDevice)", sequence_number);
20247 *offsetp += 2;
20248 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
20249 *offsetp += 4;
20250 f_num_modifiers = tvb_get_uint16(tvb, *offsetp, byte_order);
20251 proto_tree_add_item(t, hf_x11_xinput_XIPassiveGrabDevice_reply_num_modifiers, tvb, *offsetp, 2, byte_order);
20252 *offsetp += 2;
20253 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
20254 *offsetp += 22;
20255 struct_xinput_GrabModifierInfo(tvb, offsetp, t, byte_order, f_num_modifiers);
20256}
20257
20258static void xinputXIPassiveUngrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20259{
20260 int f_num_modifiers;
20261 proto_tree_add_item(t, hf_x11_xinput_XIPassiveUngrabDevice_grab_window, tvb, *offsetp, 4, byte_order);
20262 *offsetp += 4;
20263 proto_tree_add_item(t, hf_x11_xinput_XIPassiveUngrabDevice_detail, tvb, *offsetp, 4, byte_order);
20264 *offsetp += 4;
20265 field16(tvb, offsetp, t, hf_x11_xinput_XIPassiveUngrabDevice_deviceid, byte_order);
20266 f_num_modifiers = tvb_get_uint16(tvb, *offsetp, byte_order);
20267 proto_tree_add_item(t, hf_x11_xinput_XIPassiveUngrabDevice_num_modifiers, tvb, *offsetp, 2, byte_order);
20268 *offsetp += 2;
20269 field8(tvb, offsetp, t, hf_x11_xinput_XIPassiveUngrabDevice_grab_type, byte_order);
20270 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
20271 *offsetp += 3;
20272 listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIPassiveUngrabDevice_modifiers, hf_x11_xinput_XIPassiveUngrabDevice_modifiers_item, f_num_modifiers, byte_order);
20273 length -= f_num_modifiers * 4;
20274}
20275
20276static void xinputXIListProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20277{
20278 field16(tvb, offsetp, t, hf_x11_xinput_XIListProperties_deviceid, byte_order);
20279 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20280 *offsetp += 2;
20281}
20282static void xinputXIListProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
20283{
20284 int sequence_number;
20285 int f_num_properties;
20286
20287 col_append_fstr(pinfo->cinfo, COL_INFO, "-XIListProperties");
20288
20289 REPLY(reply);
20290 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20291 *offsetp += 1;
20292 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
20293 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
20294 "%d (xinput-XIListProperties)", sequence_number);
20295 *offsetp += 2;
20296 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
20297 *offsetp += 4;
20298 f_num_properties = tvb_get_uint16(tvb, *offsetp, byte_order);
20299 proto_tree_add_item(t, hf_x11_xinput_XIListProperties_reply_num_properties, tvb, *offsetp, 2, byte_order);
20300 *offsetp += 2;
20301 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
20302 *offsetp += 22;
20303 listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIListProperties_reply_properties, hf_x11_xinput_XIListProperties_reply_properties_item, f_num_properties, byte_order);
20304}
20305
20306static void xinputXIChangeProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20307{
20308 int f_format;
20309 int f_num_items;
20310 field16(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_deviceid, byte_order);
20311 field8(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_mode, byte_order);
20312 f_format = field8(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_format, byte_order);
20313 proto_tree_add_item(t, hf_x11_xinput_XIChangeProperty_property, tvb, *offsetp, 4, byte_order);
20314 *offsetp += 4;
20315 proto_tree_add_item(t, hf_x11_xinput_XIChangeProperty_type, tvb, *offsetp, 4, byte_order);
20316 *offsetp += 4;
20317 f_num_items = tvb_get_uint32(tvb, *offsetp, byte_order);
20318 proto_tree_add_item(t, hf_x11_xinput_XIChangeProperty_num_items, tvb, *offsetp, 4, byte_order);
20319 *offsetp += 4;
20320 if (f_format == 8) {
20321 listOfByte(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_8Bits_data8, f_num_items, byte_order);
20322 length -= f_num_items * 1;
20323 pad_to_4_bytes(tvb, offsetp, t);
20324 length = WS_ROUNDUP_4(length);
20325 }
20326 if (f_format == 16) {
20327 listOfCard16(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_16Bits_data16, hf_x11_xinput_XIChangeProperty_16Bits_data16_item, f_num_items, byte_order);
20328 length -= f_num_items * 2;
20329 pad_to_4_bytes(tvb, offsetp, t);
20330 length = WS_ROUNDUP_4(length);
20331 }
20332 if (f_format == 32) {
20333 listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIChangeProperty_32Bits_data32, hf_x11_xinput_XIChangeProperty_32Bits_data32_item, f_num_items, byte_order);
20334 length -= f_num_items * 4;
20335 }
20336}
20337
20338static void xinputXIDeleteProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20339{
20340 field16(tvb, offsetp, t, hf_x11_xinput_XIDeleteProperty_deviceid, byte_order);
20341 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20342 *offsetp += 2;
20343 proto_tree_add_item(t, hf_x11_xinput_XIDeleteProperty_property, tvb, *offsetp, 4, byte_order);
20344 *offsetp += 4;
20345}
20346
20347static void xinputXIGetProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20348{
20349 field16(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_deviceid, byte_order);
20350 proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_delete, tvb, *offsetp, 1, byte_order);
20351 *offsetp += 1;
20352 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20353 *offsetp += 1;
20354 proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_property, tvb, *offsetp, 4, byte_order);
20355 *offsetp += 4;
20356 proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_type, tvb, *offsetp, 4, byte_order);
20357 *offsetp += 4;
20358 proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_offset, tvb, *offsetp, 4, byte_order);
20359 *offsetp += 4;
20360 proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_len, tvb, *offsetp, 4, byte_order);
20361 *offsetp += 4;
20362}
20363static void xinputXIGetProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
20364{
20365 int sequence_number;
20366 int f_num_items;
20367 int f_format;
20368
20369 col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGetProperty");
20370
20371 REPLY(reply);
20372 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20373 *offsetp += 1;
20374 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
20375 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
20376 "%d (xinput-XIGetProperty)", sequence_number);
20377 *offsetp += 2;
20378 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
20379 *offsetp += 4;
20380 proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_reply_type, tvb, *offsetp, 4, byte_order);
20381 *offsetp += 4;
20382 proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_reply_bytes_after, tvb, *offsetp, 4, byte_order);
20383 *offsetp += 4;
20384 f_num_items = tvb_get_uint32(tvb, *offsetp, byte_order);
20385 proto_tree_add_item(t, hf_x11_xinput_XIGetProperty_reply_num_items, tvb, *offsetp, 4, byte_order);
20386 *offsetp += 4;
20387 f_format = field8(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_reply_format, byte_order);
20388 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
20389 *offsetp += 11;
20390 if (f_format == 8) {
20391 listOfByte(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_reply_8Bits_data8, f_num_items, byte_order);
20392 pad_to_4_bytes(tvb, offsetp, t);
20393 }
20394 if (f_format == 16) {
20395 listOfCard16(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_reply_16Bits_data16, hf_x11_xinput_XIGetProperty_reply_16Bits_data16_item, f_num_items, byte_order);
20396 pad_to_4_bytes(tvb, offsetp, t);
20397 }
20398 if (f_format == 32) {
20399 listOfCard32(tvb, offsetp, t, hf_x11_xinput_XIGetProperty_reply_32Bits_data32, hf_x11_xinput_XIGetProperty_reply_32Bits_data32_item, f_num_items, byte_order);
20400 }
20401}
20402
20403static void xinputXIGetSelectedEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20404{
20405 proto_tree_add_item(t, hf_x11_xinput_XIGetSelectedEvents_window, tvb, *offsetp, 4, byte_order);
20406 *offsetp += 4;
20407}
20408static void xinputXIGetSelectedEvents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
20409{
20410 int sequence_number;
20411 int f_num_masks;
20412
20413 col_append_fstr(pinfo->cinfo, COL_INFO, "-XIGetSelectedEvents");
20414
20415 REPLY(reply);
20416 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20417 *offsetp += 1;
20418 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
20419 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
20420 "%d (xinput-XIGetSelectedEvents)", sequence_number);
20421 *offsetp += 2;
20422 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
20423 *offsetp += 4;
20424 f_num_masks = tvb_get_uint16(tvb, *offsetp, byte_order);
20425 proto_tree_add_item(t, hf_x11_xinput_XIGetSelectedEvents_reply_num_masks, tvb, *offsetp, 2, byte_order);
20426 *offsetp += 2;
20427 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
20428 *offsetp += 22;
20429 struct_xinput_EventMask(tvb, offsetp, t, byte_order, f_num_masks);
20430}
20431
20432static void struct_xinput_BarrierReleasePointerInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
20433{
20434 int i;
20435 for (i = 0; i < count; i++) {
20436 proto_item *item;
20437 proto_tree *t;
20438
20439 item = proto_tree_add_item(root, hf_x11_struct_xinput_BarrierReleasePointerInfo, tvb, *offsetp, 12, ENC_NA);
20440 t = proto_item_add_subtree(item, ett_x11_rectangle);
20441 proto_tree_add_item(t, hf_x11_struct_xinput_BarrierReleasePointerInfo_deviceid, tvb, *offsetp, 2, byte_order);
20442 *offsetp += 2;
20443 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20444 *offsetp += 2;
20445 proto_tree_add_item(t, hf_x11_struct_xinput_BarrierReleasePointerInfo_barrier, tvb, *offsetp, 4, byte_order);
20446 *offsetp += 4;
20447 proto_tree_add_item(t, hf_x11_struct_xinput_BarrierReleasePointerInfo_eventid, tvb, *offsetp, 4, byte_order);
20448 *offsetp += 4;
20449 }
20450}
20451
20452static void xinputXIBarrierReleasePointer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
20453{
20454 int f_num_barriers;
20455 f_num_barriers = tvb_get_uint32(tvb, *offsetp, byte_order);
20456 proto_tree_add_item(t, hf_x11_xinput_XIBarrierReleasePointer_num_barriers, tvb, *offsetp, 4, byte_order);
20457 *offsetp += 4;
20458 struct_xinput_BarrierReleasePointerInfo(tvb, offsetp, t, byte_order, f_num_barriers);
20459 length -= f_num_barriers * 12;
20460}
20461
20462static void xinputDeviceKeyPress(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
20463{
20464 proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_detail, tvb, *offsetp, 1, ENC_NA);
20465 *offsetp += 1;
20466 CARD16(event_sequencenumber);
20467 proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_time, tvb, *offsetp, 4, byte_order);
20468 *offsetp += 4;
20469 proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_root, tvb, *offsetp, 4, byte_order);
20470 *offsetp += 4;
20471 proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_event, tvb, *offsetp, 4, byte_order);
20472 *offsetp += 4;
20473 field32(tvb, offsetp, t, hf_x11_xinput_DeviceKeyPress_child, byte_order);
20474 proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_root_x, tvb, *offsetp, 2, byte_order);
20475 *offsetp += 2;
20476 proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_root_y, tvb, *offsetp, 2, byte_order);
20477 *offsetp += 2;
20478 proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_event_x, tvb, *offsetp, 2, byte_order);
20479 *offsetp += 2;
20480 proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_event_y, tvb, *offsetp, 2, byte_order);
20481 *offsetp += 2;
20482 {
20483 static int* const state_bits [] = {
20484 &hf_x11_xinput_DeviceKeyPress_state_mask_Shift,
20485 &hf_x11_xinput_DeviceKeyPress_state_mask_Lock,
20486 &hf_x11_xinput_DeviceKeyPress_state_mask_Control,
20487 &hf_x11_xinput_DeviceKeyPress_state_mask_Mod1,
20488 &hf_x11_xinput_DeviceKeyPress_state_mask_Mod2,
20489 &hf_x11_xinput_DeviceKeyPress_state_mask_Mod3,
20490 &hf_x11_xinput_DeviceKeyPress_state_mask_Mod4,
20491 &hf_x11_xinput_DeviceKeyPress_state_mask_Mod5,
20492 &hf_x11_xinput_DeviceKeyPress_state_mask_Button1,
20493 &hf_x11_xinput_DeviceKeyPress_state_mask_Button2,
20494 &hf_x11_xinput_DeviceKeyPress_state_mask_Button3,
20495 &hf_x11_xinput_DeviceKeyPress_state_mask_Button4,
20496 &hf_x11_xinput_DeviceKeyPress_state_mask_Button5,
20497 NULL
20498 };
20499 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_DeviceKeyPress_state, ett_x11_rectangle, state_bits, byte_order);
20500 }
20501 *offsetp += 2;
20502 proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_same_screen, tvb, *offsetp, 1, byte_order);
20503 *offsetp += 1;
20504 proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_device_id, tvb, *offsetp, 1, byte_order);
20505 *offsetp += 1;
20506}
20507
20508
20509static void xinputDeviceFocusIn(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
20510{
20511 field8(tvb, offsetp, t, hf_x11_xinput_DeviceFocusIn_detail, byte_order);
20512 CARD16(event_sequencenumber);
20513 proto_tree_add_item(t, hf_x11_xinput_DeviceFocusIn_time, tvb, *offsetp, 4, byte_order);
20514 *offsetp += 4;
20515 proto_tree_add_item(t, hf_x11_xinput_DeviceFocusIn_window, tvb, *offsetp, 4, byte_order);
20516 *offsetp += 4;
20517 field8(tvb, offsetp, t, hf_x11_xinput_DeviceFocusIn_mode, byte_order);
20518 proto_tree_add_item(t, hf_x11_xinput_DeviceFocusIn_device_id, tvb, *offsetp, 1, byte_order);
20519 *offsetp += 1;
20520 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 18, ENC_NA);
20521 *offsetp += 18;
20522}
20523
20524
20525static void xinputDeviceStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
20526{
20527 proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20528 *offsetp += 1;
20529 CARD16(event_sequencenumber);
20530 proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_time, tvb, *offsetp, 4, byte_order);
20531 *offsetp += 4;
20532 proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_num_keys, tvb, *offsetp, 1, byte_order);
20533 *offsetp += 1;
20534 proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_num_buttons, tvb, *offsetp, 1, byte_order);
20535 *offsetp += 1;
20536 proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_num_valuators, tvb, *offsetp, 1, byte_order);
20537 *offsetp += 1;
20538 {
20539 static int* const classes_reported_bits [] = {
20540 &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_ReportingKeys,
20541 &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_ReportingButtons,
20542 &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_ReportingValuators,
20543 &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_DeviceModeAbsolute,
20544 &hf_x11_xinput_DeviceStateNotify_classes_reported_mask_OutOfProximity,
20545 NULL
20546 };
20547 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_DeviceStateNotify_classes_reported, ett_x11_rectangle, classes_reported_bits, byte_order);
20548 }
20549 *offsetp += 1;
20550 listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceStateNotify_buttons, 4, byte_order);
20551 listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceStateNotify_keys, 4, byte_order);
20552 listOfCard32(tvb, offsetp, t, hf_x11_xinput_DeviceStateNotify_valuators, hf_x11_xinput_DeviceStateNotify_valuators_item, 3, byte_order);
20553}
20554
20555
20556static void xinputDeviceMappingNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
20557{
20558 proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20559 *offsetp += 1;
20560 CARD16(event_sequencenumber);
20561 field8(tvb, offsetp, t, hf_x11_xinput_DeviceMappingNotify_request, byte_order);
20562 proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_first_keycode, tvb, *offsetp, 1, byte_order);
20563 *offsetp += 1;
20564 proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_count, tvb, *offsetp, 1, byte_order);
20565 *offsetp += 1;
20566 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20567 *offsetp += 1;
20568 proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_time, tvb, *offsetp, 4, byte_order);
20569 *offsetp += 4;
20570 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
20571 *offsetp += 20;
20572}
20573
20574
20575static void xinputChangeDeviceNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
20576{
20577 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20578 *offsetp += 1;
20579 CARD16(event_sequencenumber);
20580 proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceNotify_time, tvb, *offsetp, 4, byte_order);
20581 *offsetp += 4;
20582 field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceNotify_request, byte_order);
20583 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 23, ENC_NA);
20584 *offsetp += 23;
20585}
20586
20587
20588static void xinputDeviceKeyStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
20589{
20590 proto_tree_add_item(t, hf_x11_xinput_DeviceKeyStateNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20591 *offsetp += 1;
20592 CARD16(event_sequencenumber);
20593 listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceKeyStateNotify_keys, 28, byte_order);
20594}
20595
20596
20597static void xinputDeviceButtonStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
20598{
20599 proto_tree_add_item(t, hf_x11_xinput_DeviceButtonStateNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20600 *offsetp += 1;
20601 CARD16(event_sequencenumber);
20602 listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceButtonStateNotify_buttons, 28, byte_order);
20603}
20604
20605
20606static void xinputDevicePresenceNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
20607{
20608 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
20609 *offsetp += 1;
20610 CARD16(event_sequencenumber);
20611 proto_tree_add_item(t, hf_x11_xinput_DevicePresenceNotify_time, tvb, *offsetp, 4, byte_order);
20612 *offsetp += 4;
20613 field8(tvb, offsetp, t, hf_x11_xinput_DevicePresenceNotify_devchange, byte_order);
20614 proto_tree_add_item(t, hf_x11_xinput_DevicePresenceNotify_device_id, tvb, *offsetp, 1, ENC_NA);
20615 *offsetp += 1;
20616 proto_tree_add_item(t, hf_x11_xinput_DevicePresenceNotify_control, tvb, *offsetp, 2, byte_order);
20617 *offsetp += 2;
20618 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
20619 *offsetp += 20;
20620}
20621
20622
20623static void xinputDevicePropertyNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
20624{
20625 field8(tvb, offsetp, t, hf_x11_xinput_DevicePropertyNotify_state, byte_order);
20626 CARD16(event_sequencenumber);
20627 proto_tree_add_item(t, hf_x11_xinput_DevicePropertyNotify_time, tvb, *offsetp, 4, byte_order);
20628 *offsetp += 4;
20629 proto_tree_add_item(t, hf_x11_xinput_DevicePropertyNotify_property, tvb, *offsetp, 4, byte_order);
20630 *offsetp += 4;
20631 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 19, ENC_NA);
20632 *offsetp += 19;
20633 proto_tree_add_item(t, hf_x11_xinput_DevicePropertyNotify_device_id, tvb, *offsetp, 1, byte_order);
20634 *offsetp += 1;
20635}
20636
20637
20638static void xinputDeviceChanged(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
20639{
20640 int f_num_classes;
20641 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 1,
20642 "DeviceChanged (1)");
20643 field16(tvb, offsetp, t, hf_x11_xinput_DeviceChanged_deviceid, byte_order);
20644 field32(tvb, offsetp, t, hf_x11_xinput_DeviceChanged_time, byte_order);
20645 f_num_classes = tvb_get_uint16(tvb, *offsetp, byte_order);
20646 proto_tree_add_item(t, hf_x11_xinput_DeviceChanged_num_classes, tvb, *offsetp, 2, byte_order);
20647 *offsetp += 2;
20648 field16(tvb, offsetp, t, hf_x11_xinput_DeviceChanged_sourceid, byte_order);
20649 field8(tvb, offsetp, t, hf_x11_xinput_DeviceChanged_reason, byte_order);
20650 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
20651 *offsetp += 11;
20652 struct_xinput_DeviceClass(tvb, offsetp, t, byte_order, f_num_classes);
20653}
20654
20655
20656static void xinputKeyPress(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
20657{
20658 int f_buttons_len;
20659 int f_valuators_len;
20660 int sumof_valuator_mask = 0;
20661 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 2,
20662 "KeyPress (2)");
20663 field16(tvb, offsetp, t, hf_x11_xinput_KeyPress_deviceid, byte_order);
20664 field32(tvb, offsetp, t, hf_x11_xinput_KeyPress_time, byte_order);
20665 proto_tree_add_item(t, hf_x11_xinput_KeyPress_detail, tvb, *offsetp, 4, byte_order);
20666 *offsetp += 4;
20667 proto_tree_add_item(t, hf_x11_xinput_KeyPress_root, tvb, *offsetp, 4, byte_order);
20668 *offsetp += 4;
20669 proto_tree_add_item(t, hf_x11_xinput_KeyPress_event, tvb, *offsetp, 4, byte_order);
20670 *offsetp += 4;
20671 proto_tree_add_item(t, hf_x11_xinput_KeyPress_child, tvb, *offsetp, 4, byte_order);
20672 *offsetp += 4;
20673 proto_tree_add_item(t, hf_x11_xinput_KeyPress_root_x, tvb, *offsetp, 4, byte_order);
20674 *offsetp += 4;
20675 proto_tree_add_item(t, hf_x11_xinput_KeyPress_root_y, tvb, *offsetp, 4, byte_order);
20676 *offsetp += 4;
20677 proto_tree_add_item(t, hf_x11_xinput_KeyPress_event_x, tvb, *offsetp, 4, byte_order);
20678 *offsetp += 4;
20679 proto_tree_add_item(t, hf_x11_xinput_KeyPress_event_y, tvb, *offsetp, 4, byte_order);
20680 *offsetp += 4;
20681 f_buttons_len = tvb_get_uint16(tvb, *offsetp, byte_order);
20682 proto_tree_add_item(t, hf_x11_xinput_KeyPress_buttons_len, tvb, *offsetp, 2, byte_order);
20683 *offsetp += 2;
20684 f_valuators_len = tvb_get_uint16(tvb, *offsetp, byte_order);
20685 proto_tree_add_item(t, hf_x11_xinput_KeyPress_valuators_len, tvb, *offsetp, 2, byte_order);
20686 *offsetp += 2;
20687 field16(tvb, offsetp, t, hf_x11_xinput_KeyPress_sourceid, byte_order);
20688 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20689 *offsetp += 2;
20690 {
20691 static int* const flags_bits [] = {
20692 &hf_x11_xinput_KeyPress_flags_mask_KeyRepeat,
20693 NULL
20694 };
20695 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_KeyPress_flags, ett_x11_rectangle, flags_bits, byte_order);
20696 }
20697 *offsetp += 4;
20698 struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
20699 struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
20700 listOfCard32(tvb, offsetp, t, hf_x11_xinput_KeyPress_button_mask, hf_x11_xinput_KeyPress_button_mask_item, f_buttons_len, byte_order);
20701 {
20702 int i;
20703 for (i = 0; i < f_valuators_len; i++) {
20704 sumof_valuator_mask += tvb_get_uint32(tvb, *offsetp + i * 4, byte_order);
20705 }
20706 }
20707 listOfCard32(tvb, offsetp, t, hf_x11_xinput_KeyPress_valuator_mask, hf_x11_xinput_KeyPress_valuator_mask_item, f_valuators_len, byte_order);
20708 struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20709}
20710
20711
20712static void xinputButtonPress(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
20713{
20714 int f_buttons_len;
20715 int f_valuators_len;
20716 int sumof_valuator_mask = 0;
20717 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 4,
20718 "ButtonPress (4)");
20719 field16(tvb, offsetp, t, hf_x11_xinput_ButtonPress_deviceid, byte_order);
20720 field32(tvb, offsetp, t, hf_x11_xinput_ButtonPress_time, byte_order);
20721 proto_tree_add_item(t, hf_x11_xinput_ButtonPress_detail, tvb, *offsetp, 4, byte_order);
20722 *offsetp += 4;
20723 proto_tree_add_item(t, hf_x11_xinput_ButtonPress_root, tvb, *offsetp, 4, byte_order);
20724 *offsetp += 4;
20725 proto_tree_add_item(t, hf_x11_xinput_ButtonPress_event, tvb, *offsetp, 4, byte_order);
20726 *offsetp += 4;
20727 proto_tree_add_item(t, hf_x11_xinput_ButtonPress_child, tvb, *offsetp, 4, byte_order);
20728 *offsetp += 4;
20729 proto_tree_add_item(t, hf_x11_xinput_ButtonPress_root_x, tvb, *offsetp, 4, byte_order);
20730 *offsetp += 4;
20731 proto_tree_add_item(t, hf_x11_xinput_ButtonPress_root_y, tvb, *offsetp, 4, byte_order);
20732 *offsetp += 4;
20733 proto_tree_add_item(t, hf_x11_xinput_ButtonPress_event_x, tvb, *offsetp, 4, byte_order);
20734 *offsetp += 4;
20735 proto_tree_add_item(t, hf_x11_xinput_ButtonPress_event_y, tvb, *offsetp, 4, byte_order);
20736 *offsetp += 4;
20737 f_buttons_len = tvb_get_uint16(tvb, *offsetp, byte_order);
20738 proto_tree_add_item(t, hf_x11_xinput_ButtonPress_buttons_len, tvb, *offsetp, 2, byte_order);
20739 *offsetp += 2;
20740 f_valuators_len = tvb_get_uint16(tvb, *offsetp, byte_order);
20741 proto_tree_add_item(t, hf_x11_xinput_ButtonPress_valuators_len, tvb, *offsetp, 2, byte_order);
20742 *offsetp += 2;
20743 field16(tvb, offsetp, t, hf_x11_xinput_ButtonPress_sourceid, byte_order);
20744 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20745 *offsetp += 2;
20746 {
20747 static int* const flags_bits [] = {
20748 &hf_x11_xinput_ButtonPress_flags_mask_PointerEmulated,
20749 NULL
20750 };
20751 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_ButtonPress_flags, ett_x11_rectangle, flags_bits, byte_order);
20752 }
20753 *offsetp += 4;
20754 struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
20755 struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
20756 listOfCard32(tvb, offsetp, t, hf_x11_xinput_ButtonPress_button_mask, hf_x11_xinput_ButtonPress_button_mask_item, f_buttons_len, byte_order);
20757 {
20758 int i;
20759 for (i = 0; i < f_valuators_len; i++) {
20760 sumof_valuator_mask += tvb_get_uint32(tvb, *offsetp + i * 4, byte_order);
20761 }
20762 }
20763 listOfCard32(tvb, offsetp, t, hf_x11_xinput_ButtonPress_valuator_mask, hf_x11_xinput_ButtonPress_valuator_mask_item, f_valuators_len, byte_order);
20764 struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20765}
20766
20767
20768static void xinputEnter(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
20769{
20770 int f_buttons_len;
20771 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 7,
20772 "Enter (7)");
20773 field16(tvb, offsetp, t, hf_x11_xinput_Enter_deviceid, byte_order);
20774 field32(tvb, offsetp, t, hf_x11_xinput_Enter_time, byte_order);
20775 field16(tvb, offsetp, t, hf_x11_xinput_Enter_sourceid, byte_order);
20776 field8(tvb, offsetp, t, hf_x11_xinput_Enter_mode, byte_order);
20777 field8(tvb, offsetp, t, hf_x11_xinput_Enter_detail, byte_order);
20778 proto_tree_add_item(t, hf_x11_xinput_Enter_root, tvb, *offsetp, 4, byte_order);
20779 *offsetp += 4;
20780 proto_tree_add_item(t, hf_x11_xinput_Enter_event, tvb, *offsetp, 4, byte_order);
20781 *offsetp += 4;
20782 proto_tree_add_item(t, hf_x11_xinput_Enter_child, tvb, *offsetp, 4, byte_order);
20783 *offsetp += 4;
20784 proto_tree_add_item(t, hf_x11_xinput_Enter_root_x, tvb, *offsetp, 4, byte_order);
20785 *offsetp += 4;
20786 proto_tree_add_item(t, hf_x11_xinput_Enter_root_y, tvb, *offsetp, 4, byte_order);
20787 *offsetp += 4;
20788 proto_tree_add_item(t, hf_x11_xinput_Enter_event_x, tvb, *offsetp, 4, byte_order);
20789 *offsetp += 4;
20790 proto_tree_add_item(t, hf_x11_xinput_Enter_event_y, tvb, *offsetp, 4, byte_order);
20791 *offsetp += 4;
20792 proto_tree_add_item(t, hf_x11_xinput_Enter_same_screen, tvb, *offsetp, 1, byte_order);
20793 *offsetp += 1;
20794 proto_tree_add_item(t, hf_x11_xinput_Enter_focus, tvb, *offsetp, 1, byte_order);
20795 *offsetp += 1;
20796 f_buttons_len = tvb_get_uint16(tvb, *offsetp, byte_order);
20797 proto_tree_add_item(t, hf_x11_xinput_Enter_buttons_len, tvb, *offsetp, 2, byte_order);
20798 *offsetp += 2;
20799 struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
20800 struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
20801 listOfCard32(tvb, offsetp, t, hf_x11_xinput_Enter_buttons, hf_x11_xinput_Enter_buttons_item, f_buttons_len, byte_order);
20802}
20803
20804
20805static void struct_xinput_HierarchyInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
20806{
20807 int i;
20808 for (i = 0; i < count; i++) {
20809 proto_item *item;
20810 proto_tree *t;
20811
20812 item = proto_tree_add_item(root, hf_x11_struct_xinput_HierarchyInfo, tvb, *offsetp, 12, ENC_NA);
20813 t = proto_item_add_subtree(item, ett_x11_rectangle);
20814 field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyInfo_deviceid, byte_order);
20815 field16(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyInfo_attachment, byte_order);
20816 field8(tvb, offsetp, t, hf_x11_struct_xinput_HierarchyInfo_type, byte_order);
20817 proto_tree_add_item(t, hf_x11_struct_xinput_HierarchyInfo_enabled, tvb, *offsetp, 1, byte_order);
20818 *offsetp += 1;
20819 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20820 *offsetp += 2;
20821 {
20822 static int* const flags_bits [] = {
20823 &hf_x11_struct_xinput_HierarchyInfo_flags_mask_MasterAdded,
20824 &hf_x11_struct_xinput_HierarchyInfo_flags_mask_MasterRemoved,
20825 &hf_x11_struct_xinput_HierarchyInfo_flags_mask_SlaveAdded,
20826 &hf_x11_struct_xinput_HierarchyInfo_flags_mask_SlaveRemoved,
20827 &hf_x11_struct_xinput_HierarchyInfo_flags_mask_SlaveAttached,
20828 &hf_x11_struct_xinput_HierarchyInfo_flags_mask_SlaveDetached,
20829 &hf_x11_struct_xinput_HierarchyInfo_flags_mask_DeviceEnabled,
20830 &hf_x11_struct_xinput_HierarchyInfo_flags_mask_DeviceDisabled,
20831 NULL
20832 };
20833 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xinput_HierarchyInfo_flags, ett_x11_rectangle, flags_bits, byte_order);
20834 }
20835 *offsetp += 4;
20836 }
20837}
20838
20839static void xinputHierarchy(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
20840{
20841 int f_num_infos;
20842 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 11,
20843 "Hierarchy (11)");
20844 field16(tvb, offsetp, t, hf_x11_xinput_Hierarchy_deviceid, byte_order);
20845 field32(tvb, offsetp, t, hf_x11_xinput_Hierarchy_time, byte_order);
20846 {
20847 static int* const flags_bits [] = {
20848 &hf_x11_xinput_Hierarchy_flags_mask_MasterAdded,
20849 &hf_x11_xinput_Hierarchy_flags_mask_MasterRemoved,
20850 &hf_x11_xinput_Hierarchy_flags_mask_SlaveAdded,
20851 &hf_x11_xinput_Hierarchy_flags_mask_SlaveRemoved,
20852 &hf_x11_xinput_Hierarchy_flags_mask_SlaveAttached,
20853 &hf_x11_xinput_Hierarchy_flags_mask_SlaveDetached,
20854 &hf_x11_xinput_Hierarchy_flags_mask_DeviceEnabled,
20855 &hf_x11_xinput_Hierarchy_flags_mask_DeviceDisabled,
20856 NULL
20857 };
20858 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_Hierarchy_flags, ett_x11_rectangle, flags_bits, byte_order);
20859 }
20860 *offsetp += 4;
20861 f_num_infos = tvb_get_uint16(tvb, *offsetp, byte_order);
20862 proto_tree_add_item(t, hf_x11_xinput_Hierarchy_num_infos, tvb, *offsetp, 2, byte_order);
20863 *offsetp += 2;
20864 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
20865 *offsetp += 10;
20866 struct_xinput_HierarchyInfo(tvb, offsetp, t, byte_order, f_num_infos);
20867}
20868
20869
20870static void xinputProperty(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
20871{
20872 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 12,
20873 "Property (12)");
20874 field16(tvb, offsetp, t, hf_x11_xinput_Property_deviceid, byte_order);
20875 field32(tvb, offsetp, t, hf_x11_xinput_Property_time, byte_order);
20876 proto_tree_add_item(t, hf_x11_xinput_Property_property, tvb, *offsetp, 4, byte_order);
20877 *offsetp += 4;
20878 field8(tvb, offsetp, t, hf_x11_xinput_Property_what, byte_order);
20879 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
20880 *offsetp += 11;
20881}
20882
20883
20884static void xinputRawKeyPress(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
20885{
20886 int f_valuators_len;
20887 int sumof_valuator_mask = 0;
20888 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 13,
20889 "RawKeyPress (13)");
20890 field16(tvb, offsetp, t, hf_x11_xinput_RawKeyPress_deviceid, byte_order);
20891 field32(tvb, offsetp, t, hf_x11_xinput_RawKeyPress_time, byte_order);
20892 proto_tree_add_item(t, hf_x11_xinput_RawKeyPress_detail, tvb, *offsetp, 4, byte_order);
20893 *offsetp += 4;
20894 proto_tree_add_item(t, hf_x11_xinput_RawKeyPress_sourceid, tvb, *offsetp, 2, byte_order);
20895 *offsetp += 2;
20896 f_valuators_len = tvb_get_uint16(tvb, *offsetp, byte_order);
20897 proto_tree_add_item(t, hf_x11_xinput_RawKeyPress_valuators_len, tvb, *offsetp, 2, byte_order);
20898 *offsetp += 2;
20899 {
20900 static int* const flags_bits [] = {
20901 &hf_x11_xinput_RawKeyPress_flags_mask_KeyRepeat,
20902 NULL
20903 };
20904 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_RawKeyPress_flags, ett_x11_rectangle, flags_bits, byte_order);
20905 }
20906 *offsetp += 4;
20907 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
20908 *offsetp += 4;
20909 {
20910 int i;
20911 for (i = 0; i < f_valuators_len; i++) {
20912 sumof_valuator_mask += tvb_get_uint32(tvb, *offsetp + i * 4, byte_order);
20913 }
20914 }
20915 listOfCard32(tvb, offsetp, t, hf_x11_xinput_RawKeyPress_valuator_mask, hf_x11_xinput_RawKeyPress_valuator_mask_item, f_valuators_len, byte_order);
20916 struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20917 struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20918}
20919
20920
20921static void xinputRawButtonPress(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
20922{
20923 int f_valuators_len;
20924 int sumof_valuator_mask = 0;
20925 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 15,
20926 "RawButtonPress (15)");
20927 field16(tvb, offsetp, t, hf_x11_xinput_RawButtonPress_deviceid, byte_order);
20928 field32(tvb, offsetp, t, hf_x11_xinput_RawButtonPress_time, byte_order);
20929 proto_tree_add_item(t, hf_x11_xinput_RawButtonPress_detail, tvb, *offsetp, 4, byte_order);
20930 *offsetp += 4;
20931 proto_tree_add_item(t, hf_x11_xinput_RawButtonPress_sourceid, tvb, *offsetp, 2, byte_order);
20932 *offsetp += 2;
20933 f_valuators_len = tvb_get_uint16(tvb, *offsetp, byte_order);
20934 proto_tree_add_item(t, hf_x11_xinput_RawButtonPress_valuators_len, tvb, *offsetp, 2, byte_order);
20935 *offsetp += 2;
20936 {
20937 static int* const flags_bits [] = {
20938 &hf_x11_xinput_RawButtonPress_flags_mask_PointerEmulated,
20939 NULL
20940 };
20941 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_RawButtonPress_flags, ett_x11_rectangle, flags_bits, byte_order);
20942 }
20943 *offsetp += 4;
20944 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
20945 *offsetp += 4;
20946 {
20947 int i;
20948 for (i = 0; i < f_valuators_len; i++) {
20949 sumof_valuator_mask += tvb_get_uint32(tvb, *offsetp + i * 4, byte_order);
20950 }
20951 }
20952 listOfCard32(tvb, offsetp, t, hf_x11_xinput_RawButtonPress_valuator_mask, hf_x11_xinput_RawButtonPress_valuator_mask_item, f_valuators_len, byte_order);
20953 struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20954 struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
20955}
20956
20957
20958static void xinputTouchBegin(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
20959{
20960 int f_buttons_len;
20961 int f_valuators_len;
20962 int sumof_valuator_mask = 0;
20963 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 18,
20964 "TouchBegin (18)");
20965 field16(tvb, offsetp, t, hf_x11_xinput_TouchBegin_deviceid, byte_order);
20966 field32(tvb, offsetp, t, hf_x11_xinput_TouchBegin_time, byte_order);
20967 proto_tree_add_item(t, hf_x11_xinput_TouchBegin_detail, tvb, *offsetp, 4, byte_order);
20968 *offsetp += 4;
20969 proto_tree_add_item(t, hf_x11_xinput_TouchBegin_root, tvb, *offsetp, 4, byte_order);
20970 *offsetp += 4;
20971 proto_tree_add_item(t, hf_x11_xinput_TouchBegin_event, tvb, *offsetp, 4, byte_order);
20972 *offsetp += 4;
20973 proto_tree_add_item(t, hf_x11_xinput_TouchBegin_child, tvb, *offsetp, 4, byte_order);
20974 *offsetp += 4;
20975 proto_tree_add_item(t, hf_x11_xinput_TouchBegin_root_x, tvb, *offsetp, 4, byte_order);
20976 *offsetp += 4;
20977 proto_tree_add_item(t, hf_x11_xinput_TouchBegin_root_y, tvb, *offsetp, 4, byte_order);
20978 *offsetp += 4;
20979 proto_tree_add_item(t, hf_x11_xinput_TouchBegin_event_x, tvb, *offsetp, 4, byte_order);
20980 *offsetp += 4;
20981 proto_tree_add_item(t, hf_x11_xinput_TouchBegin_event_y, tvb, *offsetp, 4, byte_order);
20982 *offsetp += 4;
20983 f_buttons_len = tvb_get_uint16(tvb, *offsetp, byte_order);
20984 proto_tree_add_item(t, hf_x11_xinput_TouchBegin_buttons_len, tvb, *offsetp, 2, byte_order);
20985 *offsetp += 2;
20986 f_valuators_len = tvb_get_uint16(tvb, *offsetp, byte_order);
20987 proto_tree_add_item(t, hf_x11_xinput_TouchBegin_valuators_len, tvb, *offsetp, 2, byte_order);
20988 *offsetp += 2;
20989 field16(tvb, offsetp, t, hf_x11_xinput_TouchBegin_sourceid, byte_order);
20990 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
20991 *offsetp += 2;
20992 {
20993 static int* const flags_bits [] = {
20994 &hf_x11_xinput_TouchBegin_flags_mask_TouchPendingEnd,
20995 &hf_x11_xinput_TouchBegin_flags_mask_TouchEmulatingPointer,
20996 NULL
20997 };
20998 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_TouchBegin_flags, ett_x11_rectangle, flags_bits, byte_order);
20999 }
21000 *offsetp += 4;
21001 struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
21002 struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
21003 listOfCard32(tvb, offsetp, t, hf_x11_xinput_TouchBegin_button_mask, hf_x11_xinput_TouchBegin_button_mask_item, f_buttons_len, byte_order);
21004 {
21005 int i;
21006 for (i = 0; i < f_valuators_len; i++) {
21007 sumof_valuator_mask += tvb_get_uint32(tvb, *offsetp + i * 4, byte_order);
21008 }
21009 }
21010 listOfCard32(tvb, offsetp, t, hf_x11_xinput_TouchBegin_valuator_mask, hf_x11_xinput_TouchBegin_valuator_mask_item, f_valuators_len, byte_order);
21011 struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
21012}
21013
21014
21015static void xinputTouchOwnership(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
21016{
21017 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 21,
21018 "TouchOwnership (21)");
21019 field16(tvb, offsetp, t, hf_x11_xinput_TouchOwnership_deviceid, byte_order);
21020 field32(tvb, offsetp, t, hf_x11_xinput_TouchOwnership_time, byte_order);
21021 proto_tree_add_item(t, hf_x11_xinput_TouchOwnership_touchid, tvb, *offsetp, 4, byte_order);
21022 *offsetp += 4;
21023 proto_tree_add_item(t, hf_x11_xinput_TouchOwnership_root, tvb, *offsetp, 4, byte_order);
21024 *offsetp += 4;
21025 proto_tree_add_item(t, hf_x11_xinput_TouchOwnership_event, tvb, *offsetp, 4, byte_order);
21026 *offsetp += 4;
21027 proto_tree_add_item(t, hf_x11_xinput_TouchOwnership_child, tvb, *offsetp, 4, byte_order);
21028 *offsetp += 4;
21029 field16(tvb, offsetp, t, hf_x11_xinput_TouchOwnership_sourceid, byte_order);
21030 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
21031 *offsetp += 2;
21032 field32(tvb, offsetp, t, hf_x11_xinput_TouchOwnership_flags, byte_order);
21033 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
21034 *offsetp += 8;
21035}
21036
21037
21038static void xinputRawTouchBegin(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
21039{
21040 int f_valuators_len;
21041 int sumof_valuator_mask = 0;
21042 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 22,
21043 "RawTouchBegin (22)");
21044 field16(tvb, offsetp, t, hf_x11_xinput_RawTouchBegin_deviceid, byte_order);
21045 field32(tvb, offsetp, t, hf_x11_xinput_RawTouchBegin_time, byte_order);
21046 proto_tree_add_item(t, hf_x11_xinput_RawTouchBegin_detail, tvb, *offsetp, 4, byte_order);
21047 *offsetp += 4;
21048 proto_tree_add_item(t, hf_x11_xinput_RawTouchBegin_sourceid, tvb, *offsetp, 2, byte_order);
21049 *offsetp += 2;
21050 f_valuators_len = tvb_get_uint16(tvb, *offsetp, byte_order);
21051 proto_tree_add_item(t, hf_x11_xinput_RawTouchBegin_valuators_len, tvb, *offsetp, 2, byte_order);
21052 *offsetp += 2;
21053 {
21054 static int* const flags_bits [] = {
21055 &hf_x11_xinput_RawTouchBegin_flags_mask_TouchPendingEnd,
21056 &hf_x11_xinput_RawTouchBegin_flags_mask_TouchEmulatingPointer,
21057 NULL
21058 };
21059 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_RawTouchBegin_flags, ett_x11_rectangle, flags_bits, byte_order);
21060 }
21061 *offsetp += 4;
21062 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
21063 *offsetp += 4;
21064 {
21065 int i;
21066 for (i = 0; i < f_valuators_len; i++) {
21067 sumof_valuator_mask += tvb_get_uint32(tvb, *offsetp + i * 4, byte_order);
21068 }
21069 }
21070 listOfCard32(tvb, offsetp, t, hf_x11_xinput_RawTouchBegin_valuator_mask, hf_x11_xinput_RawTouchBegin_valuator_mask_item, f_valuators_len, byte_order);
21071 struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
21072 struct_xinput_FP3232(tvb, offsetp, t, byte_order, sumof_valuator_mask);
21073}
21074
21075
21076static void xinputBarrierHit(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
21077{
21078 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 25,
21079 "BarrierHit (25)");
21080 field16(tvb, offsetp, t, hf_x11_xinput_BarrierHit_deviceid, byte_order);
21081 field32(tvb, offsetp, t, hf_x11_xinput_BarrierHit_time, byte_order);
21082 proto_tree_add_item(t, hf_x11_xinput_BarrierHit_eventid, tvb, *offsetp, 4, byte_order);
21083 *offsetp += 4;
21084 proto_tree_add_item(t, hf_x11_xinput_BarrierHit_root, tvb, *offsetp, 4, byte_order);
21085 *offsetp += 4;
21086 proto_tree_add_item(t, hf_x11_xinput_BarrierHit_event, tvb, *offsetp, 4, byte_order);
21087 *offsetp += 4;
21088 proto_tree_add_item(t, hf_x11_xinput_BarrierHit_barrier, tvb, *offsetp, 4, byte_order);
21089 *offsetp += 4;
21090 proto_tree_add_item(t, hf_x11_xinput_BarrierHit_dtime, tvb, *offsetp, 4, byte_order);
21091 *offsetp += 4;
21092 {
21093 static int* const flags_bits [] = {
21094 &hf_x11_xinput_BarrierHit_flags_mask_PointerReleased,
21095 &hf_x11_xinput_BarrierHit_flags_mask_DeviceIsGrabbed,
21096 NULL
21097 };
21098 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_BarrierHit_flags, ett_x11_rectangle, flags_bits, byte_order);
21099 }
21100 *offsetp += 4;
21101 field16(tvb, offsetp, t, hf_x11_xinput_BarrierHit_sourceid, byte_order);
21102 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
21103 *offsetp += 2;
21104 proto_tree_add_item(t, hf_x11_xinput_BarrierHit_root_x, tvb, *offsetp, 4, byte_order);
21105 *offsetp += 4;
21106 proto_tree_add_item(t, hf_x11_xinput_BarrierHit_root_y, tvb, *offsetp, 4, byte_order);
21107 *offsetp += 4;
21108 struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
21109 struct_xinput_FP3232(tvb, offsetp, t, byte_order, 1);
21110}
21111
21112
21113static void xinputGesturePinchBegin(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
21114{
21115 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 27,
21116 "GesturePinchBegin (27)");
21117 field16(tvb, offsetp, t, hf_x11_xinput_GesturePinchBegin_deviceid, byte_order);
21118 field32(tvb, offsetp, t, hf_x11_xinput_GesturePinchBegin_time, byte_order);
21119 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_detail, tvb, *offsetp, 4, byte_order);
21120 *offsetp += 4;
21121 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_root, tvb, *offsetp, 4, byte_order);
21122 *offsetp += 4;
21123 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_event, tvb, *offsetp, 4, byte_order);
21124 *offsetp += 4;
21125 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_child, tvb, *offsetp, 4, byte_order);
21126 *offsetp += 4;
21127 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_root_x, tvb, *offsetp, 4, byte_order);
21128 *offsetp += 4;
21129 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_root_y, tvb, *offsetp, 4, byte_order);
21130 *offsetp += 4;
21131 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_event_x, tvb, *offsetp, 4, byte_order);
21132 *offsetp += 4;
21133 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_event_y, tvb, *offsetp, 4, byte_order);
21134 *offsetp += 4;
21135 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_delta_x, tvb, *offsetp, 4, byte_order);
21136 *offsetp += 4;
21137 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_delta_y, tvb, *offsetp, 4, byte_order);
21138 *offsetp += 4;
21139 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_delta_unaccel_x, tvb, *offsetp, 4, byte_order);
21140 *offsetp += 4;
21141 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_delta_unaccel_y, tvb, *offsetp, 4, byte_order);
21142 *offsetp += 4;
21143 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_scale, tvb, *offsetp, 4, byte_order);
21144 *offsetp += 4;
21145 proto_tree_add_item(t, hf_x11_xinput_GesturePinchBegin_delta_angle, tvb, *offsetp, 4, byte_order);
21146 *offsetp += 4;
21147 field16(tvb, offsetp, t, hf_x11_xinput_GesturePinchBegin_sourceid, byte_order);
21148 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
21149 *offsetp += 2;
21150 struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
21151 struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
21152 {
21153 static int* const flags_bits [] = {
21154 &hf_x11_xinput_GesturePinchBegin_flags_mask_GesturePinchCancelled,
21155 NULL
21156 };
21157 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_GesturePinchBegin_flags, ett_x11_rectangle, flags_bits, byte_order);
21158 }
21159 *offsetp += 4;
21160}
21161
21162
21163static void xinputGestureSwipeBegin(tvbuff_t *tvb, int length _U_, int *offsetp, proto_tree *t, unsigned byte_order)
21164{
21165 proto_tree_add_uint_format_value(t, hf_x11_minor_opcode, tvb, *offsetp, 2, 30,
21166 "GestureSwipeBegin (30)");
21167 field16(tvb, offsetp, t, hf_x11_xinput_GestureSwipeBegin_deviceid, byte_order);
21168 field32(tvb, offsetp, t, hf_x11_xinput_GestureSwipeBegin_time, byte_order);
21169 proto_tree_add_item(t, hf_x11_xinput_GestureSwipeBegin_detail, tvb, *offsetp, 4, byte_order);
21170 *offsetp += 4;
21171 proto_tree_add_item(t, hf_x11_xinput_GestureSwipeBegin_root, tvb, *offsetp, 4, byte_order);
21172 *offsetp += 4;
21173 proto_tree_add_item(t, hf_x11_xinput_GestureSwipeBegin_event, tvb, *offsetp, 4, byte_order);
21174 *offsetp += 4;
21175 proto_tree_add_item(t, hf_x11_xinput_GestureSwipeBegin_child, tvb, *offsetp, 4, byte_order);
21176 *offsetp += 4;
21177 proto_tree_add_item(t, hf_x11_xinput_GestureSwipeBegin_root_x, tvb, *offsetp, 4, byte_order);
21178 *offsetp += 4;
21179 proto_tree_add_item(t, hf_x11_xinput_GestureSwipeBegin_root_y, tvb, *offsetp, 4, byte_order);
21180 *offsetp += 4;
21181 proto_tree_add_item(t, hf_x11_xinput_GestureSwipeBegin_event_x, tvb, *offsetp, 4, byte_order);
21182 *offsetp += 4;
21183 proto_tree_add_item(t, hf_x11_xinput_GestureSwipeBegin_event_y, tvb, *offsetp, 4, byte_order);
21184 *offsetp += 4;
21185 proto_tree_add_item(t, hf_x11_xinput_GestureSwipeBegin_delta_x, tvb, *offsetp, 4, byte_order);
21186 *offsetp += 4;
21187 proto_tree_add_item(t, hf_x11_xinput_GestureSwipeBegin_delta_y, tvb, *offsetp, 4, byte_order);
21188 *offsetp += 4;
21189 proto_tree_add_item(t, hf_x11_xinput_GestureSwipeBegin_delta_unaccel_x, tvb, *offsetp, 4, byte_order);
21190 *offsetp += 4;
21191 proto_tree_add_item(t, hf_x11_xinput_GestureSwipeBegin_delta_unaccel_y, tvb, *offsetp, 4, byte_order);
21192 *offsetp += 4;
21193 field16(tvb, offsetp, t, hf_x11_xinput_GestureSwipeBegin_sourceid, byte_order);
21194 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
21195 *offsetp += 2;
21196 struct_xinput_ModifierInfo(tvb, offsetp, t, byte_order, 1);
21197 struct_xinput_GroupInfo(tvb, offsetp, t, byte_order, 1);
21198 {
21199 static int* const flags_bits [] = {
21200 &hf_x11_xinput_GestureSwipeBegin_flags_mask_GestureSwipeCancelled,
21201 NULL
21202 };
21203 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xinput_GestureSwipeBegin_flags, ett_x11_rectangle, flags_bits, byte_order);
21204 }
21205 *offsetp += 4;
21206}
21207
21208
21209static void xinputSendExtensionEvent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
21210{
21211 int f_num_classes;
21212 int f_num_events;
21213 proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_destination, tvb, *offsetp, 4, byte_order);
21214 *offsetp += 4;
21215 proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_device_id, tvb, *offsetp, 1, byte_order);
21216 *offsetp += 1;
21217 proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_propagate, tvb, *offsetp, 1, byte_order);
21218 *offsetp += 1;
21219 f_num_classes = tvb_get_uint16(tvb, *offsetp, byte_order);
21220 proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_num_classes, tvb, *offsetp, 2, byte_order);
21221 *offsetp += 2;
21222 f_num_events = tvb_get_uint8(tvb, *offsetp);
21223 proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_num_events, tvb, *offsetp, 1, byte_order);
21224 *offsetp += 1;
21225 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
21226 *offsetp += 3;
21227 length -= f_num_events * 1;
21228 listOfCard32(tvb, offsetp, t, hf_x11_xinput_SendExtensionEvent_classes, hf_x11_xinput_SendExtensionEvent_classes_item, f_num_classes, byte_order);
21229 length -= f_num_classes * 4;
21230}
21231static const value_string xinput_extension_minor[] = {
21232 { 1, "GetExtensionVersion" },
21233 { 2, "ListInputDevices" },
21234 { 3, "OpenDevice" },
21235 { 4, "CloseDevice" },
21236 { 5, "SetDeviceMode" },
21237 { 6, "SelectExtensionEvent" },
21238 { 7, "GetSelectedExtensionEvents" },
21239 { 8, "ChangeDeviceDontPropagateList" },
21240 { 9, "GetDeviceDontPropagateList" },
21241 { 10, "GetDeviceMotionEvents" },
21242 { 11, "ChangeKeyboardDevice" },
21243 { 12, "ChangePointerDevice" },
21244 { 13, "GrabDevice" },
21245 { 14, "UngrabDevice" },
21246 { 15, "GrabDeviceKey" },
21247 { 16, "UngrabDeviceKey" },
21248 { 17, "GrabDeviceButton" },
21249 { 18, "UngrabDeviceButton" },
21250 { 19, "AllowDeviceEvents" },
21251 { 20, "GetDeviceFocus" },
21252 { 21, "SetDeviceFocus" },
21253 { 22, "GetFeedbackControl" },
21254 { 23, "ChangeFeedbackControl" },
21255 { 24, "GetDeviceKeyMapping" },
21256 { 25, "ChangeDeviceKeyMapping" },
21257 { 26, "GetDeviceModifierMapping" },
21258 { 27, "SetDeviceModifierMapping" },
21259 { 28, "GetDeviceButtonMapping" },
21260 { 29, "SetDeviceButtonMapping" },
21261 { 30, "QueryDeviceState" },
21262 { 31, "SendExtensionEvent" },
21263 { 32, "DeviceBell" },
21264 { 33, "SetDeviceValuators" },
21265 { 34, "GetDeviceControl" },
21266 { 35, "ChangeDeviceControl" },
21267 { 36, "ListDeviceProperties" },
21268 { 37, "ChangeDeviceProperty" },
21269 { 38, "DeleteDeviceProperty" },
21270 { 39, "GetDeviceProperty" },
21271 { 40, "XIQueryPointer" },
21272 { 41, "XIWarpPointer" },
21273 { 42, "XIChangeCursor" },
21274 { 43, "XIChangeHierarchy" },
21275 { 44, "XISetClientPointer" },
21276 { 45, "XIGetClientPointer" },
21277 { 46, "XISelectEvents" },
21278 { 47, "XIQueryVersion" },
21279 { 48, "XIQueryDevice" },
21280 { 49, "XISetFocus" },
21281 { 50, "XIGetFocus" },
21282 { 51, "XIGrabDevice" },
21283 { 52, "XIUngrabDevice" },
21284 { 53, "XIAllowEvents" },
21285 { 54, "XIPassiveGrabDevice" },
21286 { 55, "XIPassiveUngrabDevice" },
21287 { 56, "XIListProperties" },
21288 { 57, "XIChangeProperty" },
21289 { 58, "XIDeleteProperty" },
21290 { 59, "XIGetProperty" },
21291 { 60, "XIGetSelectedEvents" },
21292 { 61, "XIBarrierReleasePointer" },
21293 { 0, NULL }
21294};
21295static const x11_event_info xinput_events[] = {
21296 { "xinput-DeviceKeyPress", xinputDeviceKeyPress },
21297 { "xinput-DeviceFocusIn", xinputDeviceFocusIn },
21298 { "xinput-DeviceStateNotify", xinputDeviceStateNotify },
21299 { "xinput-DeviceMappingNotify", xinputDeviceMappingNotify },
21300 { "xinput-ChangeDeviceNotify", xinputChangeDeviceNotify },
21301 { "xinput-DeviceKeyStateNotify", xinputDeviceKeyStateNotify },
21302 { "xinput-DeviceButtonStateNotify", xinputDeviceButtonStateNotify },
21303 { "xinput-DevicePresenceNotify", xinputDevicePresenceNotify },
21304 { "xinput-DevicePropertyNotify", xinputDevicePropertyNotify },
21305 { NULL, NULL }
21306};
21307static const x11_generic_event_info xinput_generic_events[] = {
21308 { 1, xinputDeviceChanged },
21309 { 2, xinputKeyPress },
21310 { 4, xinputButtonPress },
21311 { 7, xinputEnter },
21312 { 11, xinputHierarchy },
21313 { 12, xinputProperty },
21314 { 13, xinputRawKeyPress },
21315 { 15, xinputRawButtonPress },
21316 { 18, xinputTouchBegin },
21317 { 21, xinputTouchOwnership },
21318 { 22, xinputRawTouchBegin },
21319 { 25, xinputBarrierHit },
21320 { 27, xinputGesturePinchBegin },
21321 { 30, xinputGestureSwipeBegin },
21322 { 0, NULL },
21323};
21324
21325static const x11_reply_info xinput_replies[] = {
21326 { 1, xinputGetExtensionVersion_Reply },
21327 { 2, xinputListInputDevices_Reply },
21328 { 3, xinputOpenDevice_Reply },
21329 { 5, xinputSetDeviceMode_Reply },
21330 { 7, xinputGetSelectedExtensionEvents_Reply },
21331 { 9, xinputGetDeviceDontPropagateList_Reply },
21332 { 10, xinputGetDeviceMotionEvents_Reply },
21333 { 11, xinputChangeKeyboardDevice_Reply },
21334 { 12, xinputChangePointerDevice_Reply },
21335 { 13, xinputGrabDevice_Reply },
21336 { 20, xinputGetDeviceFocus_Reply },
21337 { 22, xinputGetFeedbackControl_Reply },
21338 { 24, xinputGetDeviceKeyMapping_Reply },
21339 { 26, xinputGetDeviceModifierMapping_Reply },
21340 { 27, xinputSetDeviceModifierMapping_Reply },
21341 { 28, xinputGetDeviceButtonMapping_Reply },
21342 { 29, xinputSetDeviceButtonMapping_Reply },
21343 { 30, xinputQueryDeviceState_Reply },
21344 { 33, xinputSetDeviceValuators_Reply },
21345 { 34, xinputGetDeviceControl_Reply },
21346 { 35, xinputChangeDeviceControl_Reply },
21347 { 36, xinputListDeviceProperties_Reply },
21348 { 39, xinputGetDeviceProperty_Reply },
21349 { 40, xinputXIQueryPointer_Reply },
21350 { 45, xinputXIGetClientPointer_Reply },
21351 { 47, xinputXIQueryVersion_Reply },
21352 { 48, xinputXIQueryDevice_Reply },
21353 { 50, xinputXIGetFocus_Reply },
21354 { 51, xinputXIGrabDevice_Reply },
21355 { 54, xinputXIPassiveGrabDevice_Reply },
21356 { 56, xinputXIListProperties_Reply },
21357 { 59, xinputXIGetProperty_Reply },
21358 { 60, xinputXIGetSelectedEvents_Reply },
21359 { 0, NULL }
21360};
21361
21362static void dispatch_xinput(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
21363{
21364 int minor, length;
21365 minor = CARD8(xinput_extension_minor);
21366 length = REQUEST_LENGTH();
21367
21368 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
21369 val_to_str(minor, xinput_extension_minor,
21370 "<Unknown opcode %d>"));
21371 switch (minor) {
21372 case 1:
21373 xinputGetExtensionVersion(tvb, pinfo, offsetp, t, byte_order, length);
21374 break;
21375 case 2:
21376 xinputListInputDevices(tvb, pinfo, offsetp, t, byte_order, length);
21377 break;
21378 case 3:
21379 xinputOpenDevice(tvb, pinfo, offsetp, t, byte_order, length);
21380 break;
21381 case 4:
21382 xinputCloseDevice(tvb, pinfo, offsetp, t, byte_order, length);
21383 break;
21384 case 5:
21385 xinputSetDeviceMode(tvb, pinfo, offsetp, t, byte_order, length);
21386 break;
21387 case 6:
21388 xinputSelectExtensionEvent(tvb, pinfo, offsetp, t, byte_order, length);
21389 break;
21390 case 7:
21391 xinputGetSelectedExtensionEvents(tvb, pinfo, offsetp, t, byte_order, length);
21392 break;
21393 case 8:
21394 xinputChangeDeviceDontPropagateList(tvb, pinfo, offsetp, t, byte_order, length);
21395 break;
21396 case 9:
21397 xinputGetDeviceDontPropagateList(tvb, pinfo, offsetp, t, byte_order, length);
21398 break;
21399 case 10:
21400 xinputGetDeviceMotionEvents(tvb, pinfo, offsetp, t, byte_order, length);
21401 break;
21402 case 11:
21403 xinputChangeKeyboardDevice(tvb, pinfo, offsetp, t, byte_order, length);
21404 break;
21405 case 12:
21406 xinputChangePointerDevice(tvb, pinfo, offsetp, t, byte_order, length);
21407 break;
21408 case 13:
21409 xinputGrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
21410 break;
21411 case 14:
21412 xinputUngrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
21413 break;
21414 case 15:
21415 xinputGrabDeviceKey(tvb, pinfo, offsetp, t, byte_order, length);
21416 break;
21417 case 16:
21418 xinputUngrabDeviceKey(tvb, pinfo, offsetp, t, byte_order, length);
21419 break;
21420 case 17:
21421 xinputGrabDeviceButton(tvb, pinfo, offsetp, t, byte_order, length);
21422 break;
21423 case 18:
21424 xinputUngrabDeviceButton(tvb, pinfo, offsetp, t, byte_order, length);
21425 break;
21426 case 19:
21427 xinputAllowDeviceEvents(tvb, pinfo, offsetp, t, byte_order, length);
21428 break;
21429 case 20:
21430 xinputGetDeviceFocus(tvb, pinfo, offsetp, t, byte_order, length);
21431 break;
21432 case 21:
21433 xinputSetDeviceFocus(tvb, pinfo, offsetp, t, byte_order, length);
21434 break;
21435 case 22:
21436 xinputGetFeedbackControl(tvb, pinfo, offsetp, t, byte_order, length);
21437 break;
21438 case 23:
21439 xinputChangeFeedbackControl(tvb, pinfo, offsetp, t, byte_order, length);
21440 break;
21441 case 24:
21442 xinputGetDeviceKeyMapping(tvb, pinfo, offsetp, t, byte_order, length);
21443 break;
21444 case 25:
21445 xinputChangeDeviceKeyMapping(tvb, pinfo, offsetp, t, byte_order, length);
21446 break;
21447 case 26:
21448 xinputGetDeviceModifierMapping(tvb, pinfo, offsetp, t, byte_order, length);
21449 break;
21450 case 27:
21451 xinputSetDeviceModifierMapping(tvb, pinfo, offsetp, t, byte_order, length);
21452 break;
21453 case 28:
21454 xinputGetDeviceButtonMapping(tvb, pinfo, offsetp, t, byte_order, length);
21455 break;
21456 case 29:
21457 xinputSetDeviceButtonMapping(tvb, pinfo, offsetp, t, byte_order, length);
21458 break;
21459 case 30:
21460 xinputQueryDeviceState(tvb, pinfo, offsetp, t, byte_order, length);
21461 break;
21462 case 31:
21463 xinputSendExtensionEvent(tvb, pinfo, offsetp, t, byte_order, length);
21464 break;
21465 case 32:
21466 xinputDeviceBell(tvb, pinfo, offsetp, t, byte_order, length);
21467 break;
21468 case 33:
21469 xinputSetDeviceValuators(tvb, pinfo, offsetp, t, byte_order, length);
21470 break;
21471 case 34:
21472 xinputGetDeviceControl(tvb, pinfo, offsetp, t, byte_order, length);
21473 break;
21474 case 35:
21475 xinputChangeDeviceControl(tvb, pinfo, offsetp, t, byte_order, length);
21476 break;
21477 case 36:
21478 xinputListDeviceProperties(tvb, pinfo, offsetp, t, byte_order, length);
21479 break;
21480 case 37:
21481 xinputChangeDeviceProperty(tvb, pinfo, offsetp, t, byte_order, length);
21482 break;
21483 case 38:
21484 xinputDeleteDeviceProperty(tvb, pinfo, offsetp, t, byte_order, length);
21485 break;
21486 case 39:
21487 xinputGetDeviceProperty(tvb, pinfo, offsetp, t, byte_order, length);
21488 break;
21489 case 40:
21490 xinputXIQueryPointer(tvb, pinfo, offsetp, t, byte_order, length);
21491 break;
21492 case 41:
21493 xinputXIWarpPointer(tvb, pinfo, offsetp, t, byte_order, length);
21494 break;
21495 case 42:
21496 xinputXIChangeCursor(tvb, pinfo, offsetp, t, byte_order, length);
21497 break;
21498 case 43:
21499 xinputXIChangeHierarchy(tvb, pinfo, offsetp, t, byte_order, length);
21500 break;
21501 case 44:
21502 xinputXISetClientPointer(tvb, pinfo, offsetp, t, byte_order, length);
21503 break;
21504 case 45:
21505 xinputXIGetClientPointer(tvb, pinfo, offsetp, t, byte_order, length);
21506 break;
21507 case 46:
21508 xinputXISelectEvents(tvb, pinfo, offsetp, t, byte_order, length);
21509 break;
21510 case 47:
21511 xinputXIQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
21512 break;
21513 case 48:
21514 xinputXIQueryDevice(tvb, pinfo, offsetp, t, byte_order, length);
21515 break;
21516 case 49:
21517 xinputXISetFocus(tvb, pinfo, offsetp, t, byte_order, length);
21518 break;
21519 case 50:
21520 xinputXIGetFocus(tvb, pinfo, offsetp, t, byte_order, length);
21521 break;
21522 case 51:
21523 xinputXIGrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
21524 break;
21525 case 52:
21526 xinputXIUngrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
21527 break;
21528 case 53:
21529 xinputXIAllowEvents(tvb, pinfo, offsetp, t, byte_order, length);
21530 break;
21531 case 54:
21532 xinputXIPassiveGrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
21533 break;
21534 case 55:
21535 xinputXIPassiveUngrabDevice(tvb, pinfo, offsetp, t, byte_order, length);
21536 break;
21537 case 56:
21538 xinputXIListProperties(tvb, pinfo, offsetp, t, byte_order, length);
21539 break;
21540 case 57:
21541 xinputXIChangeProperty(tvb, pinfo, offsetp, t, byte_order, length);
21542 break;
21543 case 58:
21544 xinputXIDeleteProperty(tvb, pinfo, offsetp, t, byte_order, length);
21545 break;
21546 case 59:
21547 xinputXIGetProperty(tvb, pinfo, offsetp, t, byte_order, length);
21548 break;
21549 case 60:
21550 xinputXIGetSelectedEvents(tvb, pinfo, offsetp, t, byte_order, length);
21551 break;
21552 case 61:
21553 xinputXIBarrierReleasePointer(tvb, pinfo, offsetp, t, byte_order, length);
21554 break;
21555 /* No need for a default case here, since Unknown is printed above,
21556 and UNDECODED() is taken care of by dissect_x11_request */
21557 }
21558}
21559
21560static void register_xinput(void)
21561{
21562 set_handler("XInputExtension", dispatch_xinput, xinput_errors, xinput_events, xinput_generic_events, xinput_replies);
21563}
21564
21565static void struct_xkb_IndicatorMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
21566{
21567 int i;
21568 for (i = 0; i < count; i++) {
21569 proto_item *item;
21570 proto_tree *t;
21571
21572 item = proto_tree_add_item(root, hf_x11_struct_xkb_IndicatorMap, tvb, *offsetp, 12, ENC_NA);
21573 t = proto_item_add_subtree(item, ett_x11_rectangle);
21574 field8(tvb, offsetp, t, hf_x11_struct_xkb_IndicatorMap_flags, byte_order);
21575 field8(tvb, offsetp, t, hf_x11_struct_xkb_IndicatorMap_whichGroups, byte_order);
21576 field8(tvb, offsetp, t, hf_x11_struct_xkb_IndicatorMap_groups, byte_order);
21577 field8(tvb, offsetp, t, hf_x11_struct_xkb_IndicatorMap_whichMods, byte_order);
21578 {
21579 static int* const mods_bits [] = {
21580 &hf_x11_struct_xkb_IndicatorMap_mods_mask_Shift,
21581 &hf_x11_struct_xkb_IndicatorMap_mods_mask_Lock,
21582 &hf_x11_struct_xkb_IndicatorMap_mods_mask_Control,
21583 &hf_x11_struct_xkb_IndicatorMap_mods_mask_1,
21584 &hf_x11_struct_xkb_IndicatorMap_mods_mask_2,
21585 &hf_x11_struct_xkb_IndicatorMap_mods_mask_3,
21586 &hf_x11_struct_xkb_IndicatorMap_mods_mask_4,
21587 &hf_x11_struct_xkb_IndicatorMap_mods_mask_5,
21588 &hf_x11_struct_xkb_IndicatorMap_mods_mask_Any,
21589 NULL
21590 };
21591 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_IndicatorMap_mods, ett_x11_rectangle, mods_bits, byte_order);
21592 }
21593 *offsetp += 1;
21594 {
21595 static int* const realMods_bits [] = {
21596 &hf_x11_struct_xkb_IndicatorMap_realMods_mask_Shift,
21597 &hf_x11_struct_xkb_IndicatorMap_realMods_mask_Lock,
21598 &hf_x11_struct_xkb_IndicatorMap_realMods_mask_Control,
21599 &hf_x11_struct_xkb_IndicatorMap_realMods_mask_1,
21600 &hf_x11_struct_xkb_IndicatorMap_realMods_mask_2,
21601 &hf_x11_struct_xkb_IndicatorMap_realMods_mask_3,
21602 &hf_x11_struct_xkb_IndicatorMap_realMods_mask_4,
21603 &hf_x11_struct_xkb_IndicatorMap_realMods_mask_5,
21604 &hf_x11_struct_xkb_IndicatorMap_realMods_mask_Any,
21605 NULL
21606 };
21607 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_IndicatorMap_realMods, ett_x11_rectangle, realMods_bits, byte_order);
21608 }
21609 *offsetp += 1;
21610 {
21611 static int* const vmods_bits [] = {
21612 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_0,
21613 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_1,
21614 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_2,
21615 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_3,
21616 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_4,
21617 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_5,
21618 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_6,
21619 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_7,
21620 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_8,
21621 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_9,
21622 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_10,
21623 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_11,
21624 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_12,
21625 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_13,
21626 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_14,
21627 &hf_x11_struct_xkb_IndicatorMap_vmods_mask_15,
21628 NULL
21629 };
21630 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_IndicatorMap_vmods, ett_x11_rectangle, vmods_bits, byte_order);
21631 }
21632 *offsetp += 2;
21633 {
21634 static int* const ctrls_bits [] = {
21635 &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_RepeatKeys,
21636 &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_SlowKeys,
21637 &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_BounceKeys,
21638 &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_StickyKeys,
21639 &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_MouseKeys,
21640 &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_MouseKeysAccel,
21641 &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_AccessXKeys,
21642 &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_AccessXTimeoutMask,
21643 &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_AccessXFeedbackMask,
21644 &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_AudibleBellMask,
21645 &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_Overlay1Mask,
21646 &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_Overlay2Mask,
21647 &hf_x11_struct_xkb_IndicatorMap_ctrls_mask_IgnoreGroupLockMask,
21648 NULL
21649 };
21650 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_IndicatorMap_ctrls, ett_x11_rectangle, ctrls_bits, byte_order);
21651 }
21652 *offsetp += 4;
21653 }
21654}
21655
21656static void struct_xkb_ModDef(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
21657{
21658 int i;
21659 for (i = 0; i < count; i++) {
21660 proto_item *item;
21661 proto_tree *t;
21662
21663 item = proto_tree_add_item(root, hf_x11_struct_xkb_ModDef, tvb, *offsetp, 4, ENC_NA);
21664 t = proto_item_add_subtree(item, ett_x11_rectangle);
21665 {
21666 static int* const mask_bits [] = {
21667 &hf_x11_struct_xkb_ModDef_mask_mask_Shift,
21668 &hf_x11_struct_xkb_ModDef_mask_mask_Lock,
21669 &hf_x11_struct_xkb_ModDef_mask_mask_Control,
21670 &hf_x11_struct_xkb_ModDef_mask_mask_1,
21671 &hf_x11_struct_xkb_ModDef_mask_mask_2,
21672 &hf_x11_struct_xkb_ModDef_mask_mask_3,
21673 &hf_x11_struct_xkb_ModDef_mask_mask_4,
21674 &hf_x11_struct_xkb_ModDef_mask_mask_5,
21675 &hf_x11_struct_xkb_ModDef_mask_mask_Any,
21676 NULL
21677 };
21678 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_ModDef_mask, ett_x11_rectangle, mask_bits, byte_order);
21679 }
21680 *offsetp += 1;
21681 {
21682 static int* const realMods_bits [] = {
21683 &hf_x11_struct_xkb_ModDef_realMods_mask_Shift,
21684 &hf_x11_struct_xkb_ModDef_realMods_mask_Lock,
21685 &hf_x11_struct_xkb_ModDef_realMods_mask_Control,
21686 &hf_x11_struct_xkb_ModDef_realMods_mask_1,
21687 &hf_x11_struct_xkb_ModDef_realMods_mask_2,
21688 &hf_x11_struct_xkb_ModDef_realMods_mask_3,
21689 &hf_x11_struct_xkb_ModDef_realMods_mask_4,
21690 &hf_x11_struct_xkb_ModDef_realMods_mask_5,
21691 &hf_x11_struct_xkb_ModDef_realMods_mask_Any,
21692 NULL
21693 };
21694 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_ModDef_realMods, ett_x11_rectangle, realMods_bits, byte_order);
21695 }
21696 *offsetp += 1;
21697 {
21698 static int* const vmods_bits [] = {
21699 &hf_x11_struct_xkb_ModDef_vmods_mask_0,
21700 &hf_x11_struct_xkb_ModDef_vmods_mask_1,
21701 &hf_x11_struct_xkb_ModDef_vmods_mask_2,
21702 &hf_x11_struct_xkb_ModDef_vmods_mask_3,
21703 &hf_x11_struct_xkb_ModDef_vmods_mask_4,
21704 &hf_x11_struct_xkb_ModDef_vmods_mask_5,
21705 &hf_x11_struct_xkb_ModDef_vmods_mask_6,
21706 &hf_x11_struct_xkb_ModDef_vmods_mask_7,
21707 &hf_x11_struct_xkb_ModDef_vmods_mask_8,
21708 &hf_x11_struct_xkb_ModDef_vmods_mask_9,
21709 &hf_x11_struct_xkb_ModDef_vmods_mask_10,
21710 &hf_x11_struct_xkb_ModDef_vmods_mask_11,
21711 &hf_x11_struct_xkb_ModDef_vmods_mask_12,
21712 &hf_x11_struct_xkb_ModDef_vmods_mask_13,
21713 &hf_x11_struct_xkb_ModDef_vmods_mask_14,
21714 &hf_x11_struct_xkb_ModDef_vmods_mask_15,
21715 NULL
21716 };
21717 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_ModDef_vmods, ett_x11_rectangle, vmods_bits, byte_order);
21718 }
21719 *offsetp += 2;
21720 }
21721}
21722
21723static void struct_xkb_KeyName(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
21724{
21725 int i;
21726 for (i = 0; i < count; i++) {
21727 proto_item *item;
21728 proto_tree *t;
21729
21730 item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyName, tvb, *offsetp, 4, ENC_NA);
21731 t = proto_item_add_subtree(item, ett_x11_rectangle);
21732 listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_KeyName_name, 4, byte_order);
21733 }
21734}
21735
21736static void struct_xkb_KeyAlias(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
21737{
21738 int i;
21739 for (i = 0; i < count; i++) {
21740 proto_item *item;
21741 proto_tree *t;
21742
21743 item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyAlias, tvb, *offsetp, 8, ENC_NA);
21744 t = proto_item_add_subtree(item, ett_x11_rectangle);
21745 listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_KeyAlias_real, 4, byte_order);
21746 listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_KeyAlias_alias, 4, byte_order);
21747 }
21748}
21749
21750static int struct_size_xkb_CountedString16(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
21751{
21752 int size = 0;
21753 int f_length;
21754 f_length = tvb_get_uint16(tvb, *offsetp + size + 0, byte_order);
21755 size += f_length * 1;
21756 size += (((f_length + 5) & (~3)) - (f_length + 2)) * 1;
21757 return size + 2;
21758}
21759
21760static void struct_xkb_CountedString16(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
21761{
21762 int i;
21763 for (i = 0; i < count; i++) {
21764 proto_item *item;
21765 proto_tree *t;
21766 int f_length;
21767
21768 item = proto_tree_add_item(root, hf_x11_struct_xkb_CountedString16, tvb, *offsetp, struct_size_xkb_CountedString16(tvb, offsetp, byte_order), ENC_NA);
21769 t = proto_item_add_subtree(item, ett_x11_rectangle);
21770 f_length = tvb_get_uint16(tvb, *offsetp, byte_order);
21771 proto_tree_add_item(t, hf_x11_struct_xkb_CountedString16_length, tvb, *offsetp, 2, byte_order);
21772 *offsetp += 2;
21773 listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_CountedString16_string, f_length, byte_order);
21774 listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_CountedString16_alignment_pad, (((f_length + 5) & (~3)) - (f_length + 2)), byte_order);
21775 }
21776}
21777
21778static void struct_xkb_KTMapEntry(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
21779{
21780 int i;
21781 for (i = 0; i < count; i++) {
21782 proto_item *item;
21783 proto_tree *t;
21784
21785 item = proto_tree_add_item(root, hf_x11_struct_xkb_KTMapEntry, tvb, *offsetp, 8, ENC_NA);
21786 t = proto_item_add_subtree(item, ett_x11_rectangle);
21787 proto_tree_add_item(t, hf_x11_struct_xkb_KTMapEntry_active, tvb, *offsetp, 1, byte_order);
21788 *offsetp += 1;
21789 {
21790 static int* const mods_mask_bits [] = {
21791 &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_Shift,
21792 &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_Lock,
21793 &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_Control,
21794 &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_1,
21795 &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_2,
21796 &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_3,
21797 &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_4,
21798 &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_5,
21799 &hf_x11_struct_xkb_KTMapEntry_mods_mask_mask_Any,
21800 NULL
21801 };
21802 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTMapEntry_mods_mask, ett_x11_rectangle, mods_mask_bits, byte_order);
21803 }
21804 *offsetp += 1;
21805 proto_tree_add_item(t, hf_x11_struct_xkb_KTMapEntry_level, tvb, *offsetp, 1, byte_order);
21806 *offsetp += 1;
21807 {
21808 static int* const mods_mods_bits [] = {
21809 &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_Shift,
21810 &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_Lock,
21811 &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_Control,
21812 &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_1,
21813 &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_2,
21814 &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_3,
21815 &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_4,
21816 &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_5,
21817 &hf_x11_struct_xkb_KTMapEntry_mods_mods_mask_Any,
21818 NULL
21819 };
21820 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTMapEntry_mods_mods, ett_x11_rectangle, mods_mods_bits, byte_order);
21821 }
21822 *offsetp += 1;
21823 {
21824 static int* const mods_vmods_bits [] = {
21825 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_0,
21826 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_1,
21827 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_2,
21828 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_3,
21829 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_4,
21830 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_5,
21831 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_6,
21832 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_7,
21833 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_8,
21834 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_9,
21835 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_10,
21836 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_11,
21837 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_12,
21838 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_13,
21839 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_14,
21840 &hf_x11_struct_xkb_KTMapEntry_mods_vmods_mask_15,
21841 NULL
21842 };
21843 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTMapEntry_mods_vmods, ett_x11_rectangle, mods_vmods_bits, byte_order);
21844 }
21845 *offsetp += 2;
21846 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
21847 *offsetp += 2;
21848 }
21849}
21850
21851static int struct_size_xkb_KeyType(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
21852{
21853 int size = 0;
21854 int f_hasPreserve;
21855 int f_nMapEntries;
21856 f_nMapEntries = tvb_get_uint8(tvb, *offsetp + size + 5);
21857 f_hasPreserve = tvb_get_uint8(tvb, *offsetp + size + 6);
21858 size += f_nMapEntries * 8;
21859 size += (f_hasPreserve * f_nMapEntries) * 4;
21860 return size + 8;
21861}
21862
21863static void struct_xkb_KeyType(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
21864{
21865 int i;
21866 for (i = 0; i < count; i++) {
21867 proto_item *item;
21868 proto_tree *t;
21869 int f_nMapEntries;
21870 int f_hasPreserve;
21871
21872 item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyType, tvb, *offsetp, struct_size_xkb_KeyType(tvb, offsetp, byte_order), ENC_NA);
21873 t = proto_item_add_subtree(item, ett_x11_rectangle);
21874 {
21875 static int* const mods_mask_bits [] = {
21876 &hf_x11_struct_xkb_KeyType_mods_mask_mask_Shift,
21877 &hf_x11_struct_xkb_KeyType_mods_mask_mask_Lock,
21878 &hf_x11_struct_xkb_KeyType_mods_mask_mask_Control,
21879 &hf_x11_struct_xkb_KeyType_mods_mask_mask_1,
21880 &hf_x11_struct_xkb_KeyType_mods_mask_mask_2,
21881 &hf_x11_struct_xkb_KeyType_mods_mask_mask_3,
21882 &hf_x11_struct_xkb_KeyType_mods_mask_mask_4,
21883 &hf_x11_struct_xkb_KeyType_mods_mask_mask_5,
21884 &hf_x11_struct_xkb_KeyType_mods_mask_mask_Any,
21885 NULL
21886 };
21887 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyType_mods_mask, ett_x11_rectangle, mods_mask_bits, byte_order);
21888 }
21889 *offsetp += 1;
21890 {
21891 static int* const mods_mods_bits [] = {
21892 &hf_x11_struct_xkb_KeyType_mods_mods_mask_Shift,
21893 &hf_x11_struct_xkb_KeyType_mods_mods_mask_Lock,
21894 &hf_x11_struct_xkb_KeyType_mods_mods_mask_Control,
21895 &hf_x11_struct_xkb_KeyType_mods_mods_mask_1,
21896 &hf_x11_struct_xkb_KeyType_mods_mods_mask_2,
21897 &hf_x11_struct_xkb_KeyType_mods_mods_mask_3,
21898 &hf_x11_struct_xkb_KeyType_mods_mods_mask_4,
21899 &hf_x11_struct_xkb_KeyType_mods_mods_mask_5,
21900 &hf_x11_struct_xkb_KeyType_mods_mods_mask_Any,
21901 NULL
21902 };
21903 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyType_mods_mods, ett_x11_rectangle, mods_mods_bits, byte_order);
21904 }
21905 *offsetp += 1;
21906 {
21907 static int* const mods_vmods_bits [] = {
21908 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_0,
21909 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_1,
21910 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_2,
21911 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_3,
21912 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_4,
21913 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_5,
21914 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_6,
21915 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_7,
21916 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_8,
21917 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_9,
21918 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_10,
21919 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_11,
21920 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_12,
21921 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_13,
21922 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_14,
21923 &hf_x11_struct_xkb_KeyType_mods_vmods_mask_15,
21924 NULL
21925 };
21926 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyType_mods_vmods, ett_x11_rectangle, mods_vmods_bits, byte_order);
21927 }
21928 *offsetp += 2;
21929 proto_tree_add_item(t, hf_x11_struct_xkb_KeyType_numLevels, tvb, *offsetp, 1, byte_order);
21930 *offsetp += 1;
21931 f_nMapEntries = tvb_get_uint8(tvb, *offsetp);
21932 proto_tree_add_item(t, hf_x11_struct_xkb_KeyType_nMapEntries, tvb, *offsetp, 1, byte_order);
21933 *offsetp += 1;
21934 f_hasPreserve = tvb_get_uint8(tvb, *offsetp);
21935 proto_tree_add_item(t, hf_x11_struct_xkb_KeyType_hasPreserve, tvb, *offsetp, 1, byte_order);
21936 *offsetp += 1;
21937 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
21938 *offsetp += 1;
21939 struct_xkb_KTMapEntry(tvb, offsetp, t, byte_order, f_nMapEntries);
21940 struct_xkb_ModDef(tvb, offsetp, t, byte_order, (f_hasPreserve * f_nMapEntries));
21941 }
21942}
21943
21944static int struct_size_xkb_KeySymMap(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
21945{
21946 int size = 0;
21947 int f_nSyms;
21948 f_nSyms = tvb_get_uint16(tvb, *offsetp + size + 6, byte_order);
21949 size += f_nSyms * 4;
21950 return size + 8;
21951}
21952
21953static void struct_xkb_KeySymMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
21954{
21955 int i;
21956 for (i = 0; i < count; i++) {
21957 proto_item *item;
21958 proto_tree *t;
21959 int f_nSyms;
21960
21961 item = proto_tree_add_item(root, hf_x11_struct_xkb_KeySymMap, tvb, *offsetp, struct_size_xkb_KeySymMap(tvb, offsetp, byte_order), ENC_NA);
21962 t = proto_item_add_subtree(item, ett_x11_rectangle);
21963 listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_KeySymMap_kt_index, 4, byte_order);
21964 proto_tree_add_item(t, hf_x11_struct_xkb_KeySymMap_groupInfo, tvb, *offsetp, 1, byte_order);
21965 *offsetp += 1;
21966 proto_tree_add_item(t, hf_x11_struct_xkb_KeySymMap_width, tvb, *offsetp, 1, byte_order);
21967 *offsetp += 1;
21968 f_nSyms = tvb_get_uint16(tvb, *offsetp, byte_order);
21969 proto_tree_add_item(t, hf_x11_struct_xkb_KeySymMap_nSyms, tvb, *offsetp, 2, byte_order);
21970 *offsetp += 2;
21971 listOfCard32(tvb, offsetp, t, hf_x11_struct_xkb_KeySymMap_syms, hf_x11_struct_xkb_KeySymMap_syms_item, f_nSyms, byte_order);
21972 }
21973}
21974
21975static void struct_xkb_CommonBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
21976{
21977 int i;
21978 for (i = 0; i < count; i++) {
21979 proto_item *item;
21980 proto_tree *t;
21981
21982 item = proto_tree_add_item(root, hf_x11_struct_xkb_CommonBehavior, tvb, *offsetp, 2, ENC_NA);
21983 t = proto_item_add_subtree(item, ett_x11_rectangle);
21984 proto_tree_add_item(t, hf_x11_struct_xkb_CommonBehavior_type, tvb, *offsetp, 1, byte_order);
21985 *offsetp += 1;
21986 proto_tree_add_item(t, hf_x11_struct_xkb_CommonBehavior_data, tvb, *offsetp, 1, byte_order);
21987 *offsetp += 1;
21988 }
21989}
21990
21991static void struct_xkb_DefaultBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
21992{
21993 int i;
21994 for (i = 0; i < count; i++) {
21995 proto_item *item;
21996 proto_tree *t;
21997
21998 item = proto_tree_add_item(root, hf_x11_struct_xkb_DefaultBehavior, tvb, *offsetp, 2, ENC_NA);
21999 t = proto_item_add_subtree(item, ett_x11_rectangle);
22000 proto_tree_add_item(t, hf_x11_struct_xkb_DefaultBehavior_type, tvb, *offsetp, 1, byte_order);
22001 *offsetp += 1;
22002 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
22003 *offsetp += 1;
22004 }
22005}
22006
22007static void struct_xkb_RadioGroupBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22008{
22009 int i;
22010 for (i = 0; i < count; i++) {
22011 proto_item *item;
22012 proto_tree *t;
22013
22014 item = proto_tree_add_item(root, hf_x11_struct_xkb_RadioGroupBehavior, tvb, *offsetp, 2, ENC_NA);
22015 t = proto_item_add_subtree(item, ett_x11_rectangle);
22016 proto_tree_add_item(t, hf_x11_struct_xkb_RadioGroupBehavior_type, tvb, *offsetp, 1, byte_order);
22017 *offsetp += 1;
22018 proto_tree_add_item(t, hf_x11_struct_xkb_RadioGroupBehavior_group, tvb, *offsetp, 1, byte_order);
22019 *offsetp += 1;
22020 }
22021}
22022
22023static void struct_xkb_OverlayBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22024{
22025 int i;
22026 for (i = 0; i < count; i++) {
22027 proto_item *item;
22028 proto_tree *t;
22029
22030 item = proto_tree_add_item(root, hf_x11_struct_xkb_OverlayBehavior, tvb, *offsetp, 2, ENC_NA);
22031 t = proto_item_add_subtree(item, ett_x11_rectangle);
22032 proto_tree_add_item(t, hf_x11_struct_xkb_OverlayBehavior_type, tvb, *offsetp, 1, byte_order);
22033 *offsetp += 1;
22034 proto_tree_add_item(t, hf_x11_struct_xkb_OverlayBehavior_key, tvb, *offsetp, 1, byte_order);
22035 *offsetp += 1;
22036 }
22037}
22038
22039static void struct_xkb_Behavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order, int count)
22040{
22041 int i;
22042 int base = *offsetp;
22043 for (i = 0; i < count; i++) {
22044 proto_item *item;
22045 proto_tree *t;
22046 item = proto_tree_add_item(root, hf_x11_union_xkb_Behavior, tvb, base, 2, ENC_NA);
22047 t = proto_item_add_subtree(item, ett_x11_rectangle);
22048
22049 *offsetp = base;
22050 struct_xkb_CommonBehavior(tvb, offsetp, t, byte_order, 1);
22051 *offsetp = base;
22052 struct_xkb_DefaultBehavior(tvb, offsetp, t, byte_order, 1);
22053 *offsetp = base;
22054 struct_xkb_DefaultBehavior(tvb, offsetp, t, byte_order, 1);
22055 *offsetp = base;
22056 struct_xkb_RadioGroupBehavior(tvb, offsetp, t, byte_order, 1);
22057 *offsetp = base;
22058 struct_xkb_OverlayBehavior(tvb, offsetp, t, byte_order, 1);
22059 *offsetp = base;
22060 struct_xkb_OverlayBehavior(tvb, offsetp, t, byte_order, 1);
22061 *offsetp = base;
22062 struct_xkb_DefaultBehavior(tvb, offsetp, t, byte_order, 1);
22063 *offsetp = base;
22064 struct_xkb_RadioGroupBehavior(tvb, offsetp, t, byte_order, 1);
22065 *offsetp = base;
22066 struct_xkb_OverlayBehavior(tvb, offsetp, t, byte_order, 1);
22067 *offsetp = base;
22068 struct_xkb_OverlayBehavior(tvb, offsetp, t, byte_order, 1);
22069 *offsetp = base;
22070 proto_tree_add_item(t, hf_x11_union_xkb_Behavior_type, tvb, *offsetp, 1, byte_order);
22071 *offsetp += 1;
22072 base += 2;
22073 }
22074 *offsetp = base;
22075}
22076
22077static void struct_xkb_SetBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned 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_SetBehavior, tvb, *offsetp, 4, ENC_NA);
22085 t = proto_item_add_subtree(item, ett_x11_rectangle);
22086 proto_tree_add_item(t, hf_x11_struct_xkb_SetBehavior_keycode, tvb, *offsetp, 1, byte_order);
22087 *offsetp += 1;
22088 struct_xkb_Behavior(tvb, offsetp, t, byte_order, 1);
22089 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
22090 *offsetp += 1;
22091 }
22092}
22093
22094static void struct_xkb_SetExplicit(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22095{
22096 int i;
22097 for (i = 0; i < count; i++) {
22098 proto_item *item;
22099 proto_tree *t;
22100
22101 item = proto_tree_add_item(root, hf_x11_struct_xkb_SetExplicit, tvb, *offsetp, 2, ENC_NA);
22102 t = proto_item_add_subtree(item, ett_x11_rectangle);
22103 proto_tree_add_item(t, hf_x11_struct_xkb_SetExplicit_keycode, tvb, *offsetp, 1, byte_order);
22104 *offsetp += 1;
22105 {
22106 static int* const explicit_bits [] = {
22107 &hf_x11_struct_xkb_SetExplicit_explicit_mask_KeyType1,
22108 &hf_x11_struct_xkb_SetExplicit_explicit_mask_KeyType2,
22109 &hf_x11_struct_xkb_SetExplicit_explicit_mask_KeyType3,
22110 &hf_x11_struct_xkb_SetExplicit_explicit_mask_KeyType4,
22111 &hf_x11_struct_xkb_SetExplicit_explicit_mask_Interpret,
22112 &hf_x11_struct_xkb_SetExplicit_explicit_mask_AutoRepeat,
22113 &hf_x11_struct_xkb_SetExplicit_explicit_mask_Behavior,
22114 &hf_x11_struct_xkb_SetExplicit_explicit_mask_VModMap,
22115 NULL
22116 };
22117 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SetExplicit_explicit, ett_x11_rectangle, explicit_bits, byte_order);
22118 }
22119 *offsetp += 1;
22120 }
22121}
22122
22123static void struct_xkb_KeyModMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22124{
22125 int i;
22126 for (i = 0; i < count; i++) {
22127 proto_item *item;
22128 proto_tree *t;
22129
22130 item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyModMap, tvb, *offsetp, 2, ENC_NA);
22131 t = proto_item_add_subtree(item, ett_x11_rectangle);
22132 proto_tree_add_item(t, hf_x11_struct_xkb_KeyModMap_keycode, tvb, *offsetp, 1, byte_order);
22133 *offsetp += 1;
22134 {
22135 static int* const mods_bits [] = {
22136 &hf_x11_struct_xkb_KeyModMap_mods_mask_Shift,
22137 &hf_x11_struct_xkb_KeyModMap_mods_mask_Lock,
22138 &hf_x11_struct_xkb_KeyModMap_mods_mask_Control,
22139 &hf_x11_struct_xkb_KeyModMap_mods_mask_1,
22140 &hf_x11_struct_xkb_KeyModMap_mods_mask_2,
22141 &hf_x11_struct_xkb_KeyModMap_mods_mask_3,
22142 &hf_x11_struct_xkb_KeyModMap_mods_mask_4,
22143 &hf_x11_struct_xkb_KeyModMap_mods_mask_5,
22144 &hf_x11_struct_xkb_KeyModMap_mods_mask_Any,
22145 NULL
22146 };
22147 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyModMap_mods, ett_x11_rectangle, mods_bits, byte_order);
22148 }
22149 *offsetp += 1;
22150 }
22151}
22152
22153static void struct_xkb_KeyVModMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22154{
22155 int i;
22156 for (i = 0; i < count; i++) {
22157 proto_item *item;
22158 proto_tree *t;
22159
22160 item = proto_tree_add_item(root, hf_x11_struct_xkb_KeyVModMap, tvb, *offsetp, 4, ENC_NA);
22161 t = proto_item_add_subtree(item, ett_x11_rectangle);
22162 proto_tree_add_item(t, hf_x11_struct_xkb_KeyVModMap_keycode, tvb, *offsetp, 1, byte_order);
22163 *offsetp += 1;
22164 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
22165 *offsetp += 1;
22166 {
22167 static int* const vmods_bits [] = {
22168 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_0,
22169 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_1,
22170 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_2,
22171 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_3,
22172 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_4,
22173 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_5,
22174 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_6,
22175 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_7,
22176 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_8,
22177 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_9,
22178 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_10,
22179 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_11,
22180 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_12,
22181 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_13,
22182 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_14,
22183 &hf_x11_struct_xkb_KeyVModMap_vmods_mask_15,
22184 NULL
22185 };
22186 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KeyVModMap_vmods, ett_x11_rectangle, vmods_bits, byte_order);
22187 }
22188 *offsetp += 2;
22189 }
22190}
22191
22192static void struct_xkb_KTSetMapEntry(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22193{
22194 int i;
22195 for (i = 0; i < count; i++) {
22196 proto_item *item;
22197 proto_tree *t;
22198
22199 item = proto_tree_add_item(root, hf_x11_struct_xkb_KTSetMapEntry, tvb, *offsetp, 4, ENC_NA);
22200 t = proto_item_add_subtree(item, ett_x11_rectangle);
22201 proto_tree_add_item(t, hf_x11_struct_xkb_KTSetMapEntry_level, tvb, *offsetp, 1, byte_order);
22202 *offsetp += 1;
22203 {
22204 static int* const realMods_bits [] = {
22205 &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_Shift,
22206 &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_Lock,
22207 &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_Control,
22208 &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_1,
22209 &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_2,
22210 &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_3,
22211 &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_4,
22212 &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_5,
22213 &hf_x11_struct_xkb_KTSetMapEntry_realMods_mask_Any,
22214 NULL
22215 };
22216 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTSetMapEntry_realMods, ett_x11_rectangle, realMods_bits, byte_order);
22217 }
22218 *offsetp += 1;
22219 {
22220 static int* const virtualMods_bits [] = {
22221 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_0,
22222 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_1,
22223 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_2,
22224 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_3,
22225 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_4,
22226 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_5,
22227 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_6,
22228 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_7,
22229 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_8,
22230 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_9,
22231 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_10,
22232 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_11,
22233 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_12,
22234 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_13,
22235 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_14,
22236 &hf_x11_struct_xkb_KTSetMapEntry_virtualMods_mask_15,
22237 NULL
22238 };
22239 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_KTSetMapEntry_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
22240 }
22241 *offsetp += 2;
22242 }
22243}
22244
22245static int struct_size_xkb_SetKeyType(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
22246{
22247 int size = 0;
22248 int f_nMapEntries;
22249 int f_preserve;
22250 f_nMapEntries = tvb_get_uint8(tvb, *offsetp + size + 5);
22251 f_preserve = tvb_get_uint8(tvb, *offsetp + size + 6);
22252 size += f_nMapEntries * 4;
22253 size += (f_preserve * f_nMapEntries) * 4;
22254 return size + 8;
22255}
22256
22257static void struct_xkb_SetKeyType(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22258{
22259 int i;
22260 for (i = 0; i < count; i++) {
22261 proto_item *item;
22262 proto_tree *t;
22263 int f_nMapEntries;
22264 int f_preserve;
22265
22266 item = proto_tree_add_item(root, hf_x11_struct_xkb_SetKeyType, tvb, *offsetp, struct_size_xkb_SetKeyType(tvb, offsetp, byte_order), ENC_NA);
22267 t = proto_item_add_subtree(item, ett_x11_rectangle);
22268 {
22269 static int* const mask_bits [] = {
22270 &hf_x11_struct_xkb_SetKeyType_mask_mask_Shift,
22271 &hf_x11_struct_xkb_SetKeyType_mask_mask_Lock,
22272 &hf_x11_struct_xkb_SetKeyType_mask_mask_Control,
22273 &hf_x11_struct_xkb_SetKeyType_mask_mask_1,
22274 &hf_x11_struct_xkb_SetKeyType_mask_mask_2,
22275 &hf_x11_struct_xkb_SetKeyType_mask_mask_3,
22276 &hf_x11_struct_xkb_SetKeyType_mask_mask_4,
22277 &hf_x11_struct_xkb_SetKeyType_mask_mask_5,
22278 &hf_x11_struct_xkb_SetKeyType_mask_mask_Any,
22279 NULL
22280 };
22281 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SetKeyType_mask, ett_x11_rectangle, mask_bits, byte_order);
22282 }
22283 *offsetp += 1;
22284 {
22285 static int* const realMods_bits [] = {
22286 &hf_x11_struct_xkb_SetKeyType_realMods_mask_Shift,
22287 &hf_x11_struct_xkb_SetKeyType_realMods_mask_Lock,
22288 &hf_x11_struct_xkb_SetKeyType_realMods_mask_Control,
22289 &hf_x11_struct_xkb_SetKeyType_realMods_mask_1,
22290 &hf_x11_struct_xkb_SetKeyType_realMods_mask_2,
22291 &hf_x11_struct_xkb_SetKeyType_realMods_mask_3,
22292 &hf_x11_struct_xkb_SetKeyType_realMods_mask_4,
22293 &hf_x11_struct_xkb_SetKeyType_realMods_mask_5,
22294 &hf_x11_struct_xkb_SetKeyType_realMods_mask_Any,
22295 NULL
22296 };
22297 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SetKeyType_realMods, ett_x11_rectangle, realMods_bits, byte_order);
22298 }
22299 *offsetp += 1;
22300 {
22301 static int* const virtualMods_bits [] = {
22302 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_0,
22303 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_1,
22304 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_2,
22305 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_3,
22306 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_4,
22307 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_5,
22308 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_6,
22309 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_7,
22310 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_8,
22311 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_9,
22312 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_10,
22313 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_11,
22314 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_12,
22315 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_13,
22316 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_14,
22317 &hf_x11_struct_xkb_SetKeyType_virtualMods_mask_15,
22318 NULL
22319 };
22320 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SetKeyType_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
22321 }
22322 *offsetp += 2;
22323 proto_tree_add_item(t, hf_x11_struct_xkb_SetKeyType_numLevels, tvb, *offsetp, 1, byte_order);
22324 *offsetp += 1;
22325 f_nMapEntries = tvb_get_uint8(tvb, *offsetp);
22326 proto_tree_add_item(t, hf_x11_struct_xkb_SetKeyType_nMapEntries, tvb, *offsetp, 1, byte_order);
22327 *offsetp += 1;
22328 f_preserve = tvb_get_uint8(tvb, *offsetp);
22329 proto_tree_add_item(t, hf_x11_struct_xkb_SetKeyType_preserve, tvb, *offsetp, 1, byte_order);
22330 *offsetp += 1;
22331 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
22332 *offsetp += 1;
22333 struct_xkb_KTSetMapEntry(tvb, offsetp, t, byte_order, f_nMapEntries);
22334 struct_xkb_KTSetMapEntry(tvb, offsetp, t, byte_order, (f_preserve * f_nMapEntries));
22335 }
22336}
22337
22338static int struct_size_xkb_Listing(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
22339{
22340 int size = 0;
22341 int f_length;
22342 f_length = tvb_get_uint16(tvb, *offsetp + size + 2, byte_order);
22343 size += f_length * 1;
22344 size = (size + 1) & ~1;
22345 return size + 4;
22346}
22347
22348static void struct_xkb_Listing(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22349{
22350 int i;
22351 for (i = 0; i < count; i++) {
22352 proto_item *item;
22353 proto_tree *t;
22354 int f_length;
22355
22356 item = proto_tree_add_item(root, hf_x11_struct_xkb_Listing, tvb, *offsetp, struct_size_xkb_Listing(tvb, offsetp, byte_order), ENC_NA);
22357 t = proto_item_add_subtree(item, ett_x11_rectangle);
22358 proto_tree_add_item(t, hf_x11_struct_xkb_Listing_flags, tvb, *offsetp, 2, byte_order);
22359 *offsetp += 2;
22360 f_length = tvb_get_uint16(tvb, *offsetp, byte_order);
22361 proto_tree_add_item(t, hf_x11_struct_xkb_Listing_length, tvb, *offsetp, 2, byte_order);
22362 *offsetp += 2;
22363 listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_Listing_string, f_length, byte_order);
22364 pad_to_2_bytes(tvb, offsetp, t);
22365 }
22366}
22367
22368static int struct_size_xkb_DeviceLedInfo(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
22369{
22370 int size = 0;
22371 int f_mapsPresent;
22372 int f_namesPresent;
22373 f_namesPresent = tvb_get_uint32(tvb, *offsetp + size + 4, byte_order);
22374 f_mapsPresent = tvb_get_uint32(tvb, *offsetp + size + 8, byte_order);
22375 size += ws_count_ones(f_namesPresent) * 4;
22376 size += ws_count_ones(f_mapsPresent) * 12;
22377 return size + 20;
22378}
22379
22380static void struct_xkb_DeviceLedInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22381{
22382 int i;
22383 for (i = 0; i < count; i++) {
22384 proto_item *item;
22385 proto_tree *t;
22386 int f_namesPresent;
22387 int f_mapsPresent;
22388
22389 item = proto_tree_add_item(root, hf_x11_struct_xkb_DeviceLedInfo, tvb, *offsetp, struct_size_xkb_DeviceLedInfo(tvb, offsetp, byte_order), ENC_NA);
22390 t = proto_item_add_subtree(item, ett_x11_rectangle);
22391 field16(tvb, offsetp, t, hf_x11_struct_xkb_DeviceLedInfo_ledClass, byte_order);
22392 field16(tvb, offsetp, t, hf_x11_struct_xkb_DeviceLedInfo_ledID, byte_order);
22393 f_namesPresent = tvb_get_uint32(tvb, *offsetp, byte_order);
22394 proto_tree_add_item(t, hf_x11_struct_xkb_DeviceLedInfo_namesPresent, tvb, *offsetp, 4, byte_order);
22395 *offsetp += 4;
22396 f_mapsPresent = tvb_get_uint32(tvb, *offsetp, byte_order);
22397 proto_tree_add_item(t, hf_x11_struct_xkb_DeviceLedInfo_mapsPresent, tvb, *offsetp, 4, byte_order);
22398 *offsetp += 4;
22399 proto_tree_add_item(t, hf_x11_struct_xkb_DeviceLedInfo_physIndicators, tvb, *offsetp, 4, byte_order);
22400 *offsetp += 4;
22401 proto_tree_add_item(t, hf_x11_struct_xkb_DeviceLedInfo_state, tvb, *offsetp, 4, byte_order);
22402 *offsetp += 4;
22403 listOfCard32(tvb, offsetp, t, hf_x11_struct_xkb_DeviceLedInfo_names, hf_x11_struct_xkb_DeviceLedInfo_names_item, ws_count_ones(f_namesPresent), byte_order);
22404 struct_xkb_IndicatorMap(tvb, offsetp, t, byte_order, ws_count_ones(f_mapsPresent));
22405 }
22406}
22407
22408static void struct_xkb_SANoAction(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22409{
22410 int i;
22411 for (i = 0; i < count; i++) {
22412 proto_item *item;
22413 proto_tree *t;
22414
22415 item = proto_tree_add_item(root, hf_x11_struct_xkb_SANoAction, tvb, *offsetp, 8, ENC_NA);
22416 t = proto_item_add_subtree(item, ett_x11_rectangle);
22417 field8(tvb, offsetp, t, hf_x11_struct_xkb_SANoAction_type, byte_order);
22418 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
22419 *offsetp += 7;
22420 }
22421}
22422
22423static void struct_xkb_SASetMods(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22424{
22425 int i;
22426 for (i = 0; i < count; i++) {
22427 proto_item *item;
22428 proto_tree *t;
22429
22430 item = proto_tree_add_item(root, hf_x11_struct_xkb_SASetMods, tvb, *offsetp, 8, ENC_NA);
22431 t = proto_item_add_subtree(item, ett_x11_rectangle);
22432 field8(tvb, offsetp, t, hf_x11_struct_xkb_SASetMods_type, byte_order);
22433 {
22434 static int* const flags_bits [] = {
22435 &hf_x11_struct_xkb_SASetMods_flags_mask_ClearLocks,
22436 &hf_x11_struct_xkb_SASetMods_flags_mask_LatchToLock,
22437 &hf_x11_struct_xkb_SASetMods_flags_mask_GroupAbsolute,
22438 NULL
22439 };
22440 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_flags, ett_x11_rectangle, flags_bits, byte_order);
22441 }
22442 *offsetp += 1;
22443 {
22444 static int* const mask_bits [] = {
22445 &hf_x11_struct_xkb_SASetMods_mask_mask_Shift,
22446 &hf_x11_struct_xkb_SASetMods_mask_mask_Lock,
22447 &hf_x11_struct_xkb_SASetMods_mask_mask_Control,
22448 &hf_x11_struct_xkb_SASetMods_mask_mask_1,
22449 &hf_x11_struct_xkb_SASetMods_mask_mask_2,
22450 &hf_x11_struct_xkb_SASetMods_mask_mask_3,
22451 &hf_x11_struct_xkb_SASetMods_mask_mask_4,
22452 &hf_x11_struct_xkb_SASetMods_mask_mask_5,
22453 &hf_x11_struct_xkb_SASetMods_mask_mask_Any,
22454 NULL
22455 };
22456 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_mask, ett_x11_rectangle, mask_bits, byte_order);
22457 }
22458 *offsetp += 1;
22459 {
22460 static int* const realMods_bits [] = {
22461 &hf_x11_struct_xkb_SASetMods_realMods_mask_Shift,
22462 &hf_x11_struct_xkb_SASetMods_realMods_mask_Lock,
22463 &hf_x11_struct_xkb_SASetMods_realMods_mask_Control,
22464 &hf_x11_struct_xkb_SASetMods_realMods_mask_1,
22465 &hf_x11_struct_xkb_SASetMods_realMods_mask_2,
22466 &hf_x11_struct_xkb_SASetMods_realMods_mask_3,
22467 &hf_x11_struct_xkb_SASetMods_realMods_mask_4,
22468 &hf_x11_struct_xkb_SASetMods_realMods_mask_5,
22469 &hf_x11_struct_xkb_SASetMods_realMods_mask_Any,
22470 NULL
22471 };
22472 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_realMods, ett_x11_rectangle, realMods_bits, byte_order);
22473 }
22474 *offsetp += 1;
22475 {
22476 static int* const vmodsHigh_bits [] = {
22477 &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_8,
22478 &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_9,
22479 &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_10,
22480 &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_11,
22481 &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_12,
22482 &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_13,
22483 &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_14,
22484 &hf_x11_struct_xkb_SASetMods_vmodsHigh_mask_15,
22485 NULL
22486 };
22487 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_vmodsHigh, ett_x11_rectangle, vmodsHigh_bits, byte_order);
22488 }
22489 *offsetp += 1;
22490 {
22491 static int* const vmodsLow_bits [] = {
22492 &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_0,
22493 &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_1,
22494 &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_2,
22495 &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_3,
22496 &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_4,
22497 &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_5,
22498 &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_6,
22499 &hf_x11_struct_xkb_SASetMods_vmodsLow_mask_7,
22500 NULL
22501 };
22502 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetMods_vmodsLow, ett_x11_rectangle, vmodsLow_bits, byte_order);
22503 }
22504 *offsetp += 1;
22505 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
22506 *offsetp += 2;
22507 }
22508}
22509
22510static void struct_xkb_SASetGroup(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22511{
22512 int i;
22513 for (i = 0; i < count; i++) {
22514 proto_item *item;
22515 proto_tree *t;
22516
22517 item = proto_tree_add_item(root, hf_x11_struct_xkb_SASetGroup, tvb, *offsetp, 8, ENC_NA);
22518 t = proto_item_add_subtree(item, ett_x11_rectangle);
22519 field8(tvb, offsetp, t, hf_x11_struct_xkb_SASetGroup_type, byte_order);
22520 {
22521 static int* const flags_bits [] = {
22522 &hf_x11_struct_xkb_SASetGroup_flags_mask_ClearLocks,
22523 &hf_x11_struct_xkb_SASetGroup_flags_mask_LatchToLock,
22524 &hf_x11_struct_xkb_SASetGroup_flags_mask_GroupAbsolute,
22525 NULL
22526 };
22527 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetGroup_flags, ett_x11_rectangle, flags_bits, byte_order);
22528 }
22529 *offsetp += 1;
22530 proto_tree_add_item(t, hf_x11_struct_xkb_SASetGroup_group, tvb, *offsetp, 1, byte_order);
22531 *offsetp += 1;
22532 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 5, ENC_NA);
22533 *offsetp += 5;
22534 }
22535}
22536
22537static void struct_xkb_SAMovePtr(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22538{
22539 int i;
22540 for (i = 0; i < count; i++) {
22541 proto_item *item;
22542 proto_tree *t;
22543
22544 item = proto_tree_add_item(root, hf_x11_struct_xkb_SAMovePtr, tvb, *offsetp, 8, ENC_NA);
22545 t = proto_item_add_subtree(item, ett_x11_rectangle);
22546 field8(tvb, offsetp, t, hf_x11_struct_xkb_SAMovePtr_type, byte_order);
22547 {
22548 static int* const flags_bits [] = {
22549 &hf_x11_struct_xkb_SAMovePtr_flags_mask_NoAcceleration,
22550 &hf_x11_struct_xkb_SAMovePtr_flags_mask_MoveAbsoluteX,
22551 &hf_x11_struct_xkb_SAMovePtr_flags_mask_MoveAbsoluteY,
22552 NULL
22553 };
22554 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAMovePtr_flags, ett_x11_rectangle, flags_bits, byte_order);
22555 }
22556 *offsetp += 1;
22557 proto_tree_add_item(t, hf_x11_struct_xkb_SAMovePtr_xHigh, tvb, *offsetp, 1, byte_order);
22558 *offsetp += 1;
22559 proto_tree_add_item(t, hf_x11_struct_xkb_SAMovePtr_xLow, tvb, *offsetp, 1, byte_order);
22560 *offsetp += 1;
22561 proto_tree_add_item(t, hf_x11_struct_xkb_SAMovePtr_yHigh, tvb, *offsetp, 1, byte_order);
22562 *offsetp += 1;
22563 proto_tree_add_item(t, hf_x11_struct_xkb_SAMovePtr_yLow, tvb, *offsetp, 1, byte_order);
22564 *offsetp += 1;
22565 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
22566 *offsetp += 2;
22567 }
22568}
22569
22570static void struct_xkb_SAPtrBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22571{
22572 int i;
22573 for (i = 0; i < count; i++) {
22574 proto_item *item;
22575 proto_tree *t;
22576
22577 item = proto_tree_add_item(root, hf_x11_struct_xkb_SAPtrBtn, tvb, *offsetp, 8, ENC_NA);
22578 t = proto_item_add_subtree(item, ett_x11_rectangle);
22579 field8(tvb, offsetp, t, hf_x11_struct_xkb_SAPtrBtn_type, byte_order);
22580 proto_tree_add_item(t, hf_x11_struct_xkb_SAPtrBtn_flags, tvb, *offsetp, 1, byte_order);
22581 *offsetp += 1;
22582 proto_tree_add_item(t, hf_x11_struct_xkb_SAPtrBtn_count, tvb, *offsetp, 1, byte_order);
22583 *offsetp += 1;
22584 proto_tree_add_item(t, hf_x11_struct_xkb_SAPtrBtn_button, tvb, *offsetp, 1, byte_order);
22585 *offsetp += 1;
22586 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
22587 *offsetp += 4;
22588 }
22589}
22590
22591static void struct_xkb_SALockPtrBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22592{
22593 int i;
22594 for (i = 0; i < count; i++) {
22595 proto_item *item;
22596 proto_tree *t;
22597
22598 item = proto_tree_add_item(root, hf_x11_struct_xkb_SALockPtrBtn, tvb, *offsetp, 8, ENC_NA);
22599 t = proto_item_add_subtree(item, ett_x11_rectangle);
22600 field8(tvb, offsetp, t, hf_x11_struct_xkb_SALockPtrBtn_type, byte_order);
22601 proto_tree_add_item(t, hf_x11_struct_xkb_SALockPtrBtn_flags, tvb, *offsetp, 1, byte_order);
22602 *offsetp += 1;
22603 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
22604 *offsetp += 1;
22605 proto_tree_add_item(t, hf_x11_struct_xkb_SALockPtrBtn_button, tvb, *offsetp, 1, byte_order);
22606 *offsetp += 1;
22607 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
22608 *offsetp += 4;
22609 }
22610}
22611
22612static void struct_xkb_SASetPtrDflt(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22613{
22614 int i;
22615 for (i = 0; i < count; i++) {
22616 proto_item *item;
22617 proto_tree *t;
22618
22619 item = proto_tree_add_item(root, hf_x11_struct_xkb_SASetPtrDflt, tvb, *offsetp, 8, ENC_NA);
22620 t = proto_item_add_subtree(item, ett_x11_rectangle);
22621 field8(tvb, offsetp, t, hf_x11_struct_xkb_SASetPtrDflt_type, byte_order);
22622 {
22623 static int* const flags_bits [] = {
22624 &hf_x11_struct_xkb_SASetPtrDflt_flags_mask_AffectDfltButton,
22625 &hf_x11_struct_xkb_SASetPtrDflt_flags_mask_DfltBtnAbsolute,
22626 NULL
22627 };
22628 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetPtrDflt_flags, ett_x11_rectangle, flags_bits, byte_order);
22629 }
22630 *offsetp += 1;
22631 {
22632 static int* const affect_bits [] = {
22633 &hf_x11_struct_xkb_SASetPtrDflt_affect_mask_AffectDfltButton,
22634 &hf_x11_struct_xkb_SASetPtrDflt_affect_mask_DfltBtnAbsolute,
22635 NULL
22636 };
22637 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetPtrDflt_affect, ett_x11_rectangle, affect_bits, byte_order);
22638 }
22639 *offsetp += 1;
22640 proto_tree_add_item(t, hf_x11_struct_xkb_SASetPtrDflt_value, tvb, *offsetp, 1, byte_order);
22641 *offsetp += 1;
22642 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
22643 *offsetp += 4;
22644 }
22645}
22646
22647static void struct_xkb_SAIsoLock(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22648{
22649 int i;
22650 for (i = 0; i < count; i++) {
22651 proto_item *item;
22652 proto_tree *t;
22653
22654 item = proto_tree_add_item(root, hf_x11_struct_xkb_SAIsoLock, tvb, *offsetp, 8, ENC_NA);
22655 t = proto_item_add_subtree(item, ett_x11_rectangle);
22656 field8(tvb, offsetp, t, hf_x11_struct_xkb_SAIsoLock_type, byte_order);
22657 {
22658 static int* const flags_bits [] = {
22659 &hf_x11_struct_xkb_SAIsoLock_flags_mask_NoLock,
22660 &hf_x11_struct_xkb_SAIsoLock_flags_mask_NoUnlock,
22661 &hf_x11_struct_xkb_SAIsoLock_flags_mask_GroupAbsolute,
22662 &hf_x11_struct_xkb_SAIsoLock_flags_mask_ISODfltIsGroup,
22663 NULL
22664 };
22665 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_flags, ett_x11_rectangle, flags_bits, byte_order);
22666 }
22667 *offsetp += 1;
22668 {
22669 static int* const mask_bits [] = {
22670 &hf_x11_struct_xkb_SAIsoLock_mask_mask_Shift,
22671 &hf_x11_struct_xkb_SAIsoLock_mask_mask_Lock,
22672 &hf_x11_struct_xkb_SAIsoLock_mask_mask_Control,
22673 &hf_x11_struct_xkb_SAIsoLock_mask_mask_1,
22674 &hf_x11_struct_xkb_SAIsoLock_mask_mask_2,
22675 &hf_x11_struct_xkb_SAIsoLock_mask_mask_3,
22676 &hf_x11_struct_xkb_SAIsoLock_mask_mask_4,
22677 &hf_x11_struct_xkb_SAIsoLock_mask_mask_5,
22678 &hf_x11_struct_xkb_SAIsoLock_mask_mask_Any,
22679 NULL
22680 };
22681 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_mask, ett_x11_rectangle, mask_bits, byte_order);
22682 }
22683 *offsetp += 1;
22684 {
22685 static int* const realMods_bits [] = {
22686 &hf_x11_struct_xkb_SAIsoLock_realMods_mask_Shift,
22687 &hf_x11_struct_xkb_SAIsoLock_realMods_mask_Lock,
22688 &hf_x11_struct_xkb_SAIsoLock_realMods_mask_Control,
22689 &hf_x11_struct_xkb_SAIsoLock_realMods_mask_1,
22690 &hf_x11_struct_xkb_SAIsoLock_realMods_mask_2,
22691 &hf_x11_struct_xkb_SAIsoLock_realMods_mask_3,
22692 &hf_x11_struct_xkb_SAIsoLock_realMods_mask_4,
22693 &hf_x11_struct_xkb_SAIsoLock_realMods_mask_5,
22694 &hf_x11_struct_xkb_SAIsoLock_realMods_mask_Any,
22695 NULL
22696 };
22697 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_realMods, ett_x11_rectangle, realMods_bits, byte_order);
22698 }
22699 *offsetp += 1;
22700 proto_tree_add_item(t, hf_x11_struct_xkb_SAIsoLock_group, tvb, *offsetp, 1, byte_order);
22701 *offsetp += 1;
22702 {
22703 static int* const affect_bits [] = {
22704 &hf_x11_struct_xkb_SAIsoLock_affect_mask_Ctrls,
22705 &hf_x11_struct_xkb_SAIsoLock_affect_mask_Ptr,
22706 &hf_x11_struct_xkb_SAIsoLock_affect_mask_Group,
22707 &hf_x11_struct_xkb_SAIsoLock_affect_mask_Mods,
22708 NULL
22709 };
22710 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_affect, ett_x11_rectangle, affect_bits, byte_order);
22711 }
22712 *offsetp += 1;
22713 {
22714 static int* const vmodsHigh_bits [] = {
22715 &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_8,
22716 &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_9,
22717 &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_10,
22718 &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_11,
22719 &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_12,
22720 &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_13,
22721 &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_14,
22722 &hf_x11_struct_xkb_SAIsoLock_vmodsHigh_mask_15,
22723 NULL
22724 };
22725 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_vmodsHigh, ett_x11_rectangle, vmodsHigh_bits, byte_order);
22726 }
22727 *offsetp += 1;
22728 {
22729 static int* const vmodsLow_bits [] = {
22730 &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_0,
22731 &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_1,
22732 &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_2,
22733 &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_3,
22734 &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_4,
22735 &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_5,
22736 &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_6,
22737 &hf_x11_struct_xkb_SAIsoLock_vmodsLow_mask_7,
22738 NULL
22739 };
22740 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAIsoLock_vmodsLow, ett_x11_rectangle, vmodsLow_bits, byte_order);
22741 }
22742 *offsetp += 1;
22743 }
22744}
22745
22746static void struct_xkb_SATerminate(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22747{
22748 int i;
22749 for (i = 0; i < count; i++) {
22750 proto_item *item;
22751 proto_tree *t;
22752
22753 item = proto_tree_add_item(root, hf_x11_struct_xkb_SATerminate, tvb, *offsetp, 8, ENC_NA);
22754 t = proto_item_add_subtree(item, ett_x11_rectangle);
22755 field8(tvb, offsetp, t, hf_x11_struct_xkb_SATerminate_type, byte_order);
22756 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
22757 *offsetp += 7;
22758 }
22759}
22760
22761static void struct_xkb_SASwitchScreen(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22762{
22763 int i;
22764 for (i = 0; i < count; i++) {
22765 proto_item *item;
22766 proto_tree *t;
22767
22768 item = proto_tree_add_item(root, hf_x11_struct_xkb_SASwitchScreen, tvb, *offsetp, 8, ENC_NA);
22769 t = proto_item_add_subtree(item, ett_x11_rectangle);
22770 field8(tvb, offsetp, t, hf_x11_struct_xkb_SASwitchScreen_type, byte_order);
22771 proto_tree_add_item(t, hf_x11_struct_xkb_SASwitchScreen_flags, tvb, *offsetp, 1, byte_order);
22772 *offsetp += 1;
22773 proto_tree_add_item(t, hf_x11_struct_xkb_SASwitchScreen_newScreen, tvb, *offsetp, 1, byte_order);
22774 *offsetp += 1;
22775 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 5, ENC_NA);
22776 *offsetp += 5;
22777 }
22778}
22779
22780static void struct_xkb_SASetControls(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22781{
22782 int i;
22783 for (i = 0; i < count; i++) {
22784 proto_item *item;
22785 proto_tree *t;
22786
22787 item = proto_tree_add_item(root, hf_x11_struct_xkb_SASetControls, tvb, *offsetp, 8, ENC_NA);
22788 t = proto_item_add_subtree(item, ett_x11_rectangle);
22789 field8(tvb, offsetp, t, hf_x11_struct_xkb_SASetControls_type, byte_order);
22790 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
22791 *offsetp += 3;
22792 {
22793 static int* const boolCtrlsHigh_bits [] = {
22794 &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_AccessXFeedback,
22795 &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_AudibleBell,
22796 &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_Overlay1,
22797 &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_Overlay2,
22798 &hf_x11_struct_xkb_SASetControls_boolCtrlsHigh_mask_IgnoreGroupLock,
22799 NULL
22800 };
22801 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetControls_boolCtrlsHigh, ett_x11_rectangle, boolCtrlsHigh_bits, byte_order);
22802 }
22803 *offsetp += 1;
22804 {
22805 static int* const boolCtrlsLow_bits [] = {
22806 &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_RepeatKeys,
22807 &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_SlowKeys,
22808 &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_BounceKeys,
22809 &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_StickyKeys,
22810 &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_MouseKeys,
22811 &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_MouseKeysAccel,
22812 &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_AccessXKeys,
22813 &hf_x11_struct_xkb_SASetControls_boolCtrlsLow_mask_AccessXTimeout,
22814 NULL
22815 };
22816 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SASetControls_boolCtrlsLow, ett_x11_rectangle, boolCtrlsLow_bits, byte_order);
22817 }
22818 *offsetp += 1;
22819 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
22820 *offsetp += 2;
22821 }
22822}
22823
22824static void struct_xkb_SAActionMessage(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22825{
22826 int i;
22827 for (i = 0; i < count; i++) {
22828 proto_item *item;
22829 proto_tree *t;
22830
22831 item = proto_tree_add_item(root, hf_x11_struct_xkb_SAActionMessage, tvb, *offsetp, 8, ENC_NA);
22832 t = proto_item_add_subtree(item, ett_x11_rectangle);
22833 field8(tvb, offsetp, t, hf_x11_struct_xkb_SAActionMessage_type, byte_order);
22834 {
22835 static int* const flags_bits [] = {
22836 &hf_x11_struct_xkb_SAActionMessage_flags_mask_OnPress,
22837 &hf_x11_struct_xkb_SAActionMessage_flags_mask_OnRelease,
22838 &hf_x11_struct_xkb_SAActionMessage_flags_mask_GenKeyEvent,
22839 NULL
22840 };
22841 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SAActionMessage_flags, ett_x11_rectangle, flags_bits, byte_order);
22842 }
22843 *offsetp += 1;
22844 listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_SAActionMessage_message, 6, byte_order);
22845 }
22846}
22847
22848static void struct_xkb_SARedirectKey(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22849{
22850 int i;
22851 for (i = 0; i < count; i++) {
22852 proto_item *item;
22853 proto_tree *t;
22854
22855 item = proto_tree_add_item(root, hf_x11_struct_xkb_SARedirectKey, tvb, *offsetp, 8, ENC_NA);
22856 t = proto_item_add_subtree(item, ett_x11_rectangle);
22857 field8(tvb, offsetp, t, hf_x11_struct_xkb_SARedirectKey_type, byte_order);
22858 proto_tree_add_item(t, hf_x11_struct_xkb_SARedirectKey_newkey, tvb, *offsetp, 1, byte_order);
22859 *offsetp += 1;
22860 {
22861 static int* const mask_bits [] = {
22862 &hf_x11_struct_xkb_SARedirectKey_mask_mask_Shift,
22863 &hf_x11_struct_xkb_SARedirectKey_mask_mask_Lock,
22864 &hf_x11_struct_xkb_SARedirectKey_mask_mask_Control,
22865 &hf_x11_struct_xkb_SARedirectKey_mask_mask_1,
22866 &hf_x11_struct_xkb_SARedirectKey_mask_mask_2,
22867 &hf_x11_struct_xkb_SARedirectKey_mask_mask_3,
22868 &hf_x11_struct_xkb_SARedirectKey_mask_mask_4,
22869 &hf_x11_struct_xkb_SARedirectKey_mask_mask_5,
22870 &hf_x11_struct_xkb_SARedirectKey_mask_mask_Any,
22871 NULL
22872 };
22873 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_mask, ett_x11_rectangle, mask_bits, byte_order);
22874 }
22875 *offsetp += 1;
22876 {
22877 static int* const realModifiers_bits [] = {
22878 &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_Shift,
22879 &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_Lock,
22880 &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_Control,
22881 &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_1,
22882 &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_2,
22883 &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_3,
22884 &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_4,
22885 &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_5,
22886 &hf_x11_struct_xkb_SARedirectKey_realModifiers_mask_Any,
22887 NULL
22888 };
22889 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_realModifiers, ett_x11_rectangle, realModifiers_bits, byte_order);
22890 }
22891 *offsetp += 1;
22892 {
22893 static int* const vmodsMaskHigh_bits [] = {
22894 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_8,
22895 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_9,
22896 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_10,
22897 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_11,
22898 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_12,
22899 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_13,
22900 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_14,
22901 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh_mask_15,
22902 NULL
22903 };
22904 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_vmodsMaskHigh, ett_x11_rectangle, vmodsMaskHigh_bits, byte_order);
22905 }
22906 *offsetp += 1;
22907 {
22908 static int* const vmodsMaskLow_bits [] = {
22909 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_0,
22910 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_1,
22911 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_2,
22912 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_3,
22913 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_4,
22914 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_5,
22915 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_6,
22916 &hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow_mask_7,
22917 NULL
22918 };
22919 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_vmodsMaskLow, ett_x11_rectangle, vmodsMaskLow_bits, byte_order);
22920 }
22921 *offsetp += 1;
22922 {
22923 static int* const vmodsHigh_bits [] = {
22924 &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_8,
22925 &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_9,
22926 &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_10,
22927 &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_11,
22928 &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_12,
22929 &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_13,
22930 &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_14,
22931 &hf_x11_struct_xkb_SARedirectKey_vmodsHigh_mask_15,
22932 NULL
22933 };
22934 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_vmodsHigh, ett_x11_rectangle, vmodsHigh_bits, byte_order);
22935 }
22936 *offsetp += 1;
22937 {
22938 static int* const vmodsLow_bits [] = {
22939 &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_0,
22940 &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_1,
22941 &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_2,
22942 &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_3,
22943 &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_4,
22944 &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_5,
22945 &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_6,
22946 &hf_x11_struct_xkb_SARedirectKey_vmodsLow_mask_7,
22947 NULL
22948 };
22949 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SARedirectKey_vmodsLow, ett_x11_rectangle, vmodsLow_bits, byte_order);
22950 }
22951 *offsetp += 1;
22952 }
22953}
22954
22955static void struct_xkb_SADeviceBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22956{
22957 int i;
22958 for (i = 0; i < count; i++) {
22959 proto_item *item;
22960 proto_tree *t;
22961
22962 item = proto_tree_add_item(root, hf_x11_struct_xkb_SADeviceBtn, tvb, *offsetp, 8, ENC_NA);
22963 t = proto_item_add_subtree(item, ett_x11_rectangle);
22964 field8(tvb, offsetp, t, hf_x11_struct_xkb_SADeviceBtn_type, byte_order);
22965 proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceBtn_flags, tvb, *offsetp, 1, byte_order);
22966 *offsetp += 1;
22967 proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceBtn_count, tvb, *offsetp, 1, byte_order);
22968 *offsetp += 1;
22969 proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceBtn_button, tvb, *offsetp, 1, byte_order);
22970 *offsetp += 1;
22971 proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceBtn_device, tvb, *offsetp, 1, byte_order);
22972 *offsetp += 1;
22973 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
22974 *offsetp += 3;
22975 }
22976}
22977
22978static void struct_xkb_SALockDeviceBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
22979{
22980 int i;
22981 for (i = 0; i < count; i++) {
22982 proto_item *item;
22983 proto_tree *t;
22984
22985 item = proto_tree_add_item(root, hf_x11_struct_xkb_SALockDeviceBtn, tvb, *offsetp, 8, ENC_NA);
22986 t = proto_item_add_subtree(item, ett_x11_rectangle);
22987 field8(tvb, offsetp, t, hf_x11_struct_xkb_SALockDeviceBtn_type, byte_order);
22988 {
22989 static int* const flags_bits [] = {
22990 &hf_x11_struct_xkb_SALockDeviceBtn_flags_mask_NoLock,
22991 &hf_x11_struct_xkb_SALockDeviceBtn_flags_mask_NoUnlock,
22992 NULL
22993 };
22994 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SALockDeviceBtn_flags, ett_x11_rectangle, flags_bits, byte_order);
22995 }
22996 *offsetp += 1;
22997 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
22998 *offsetp += 1;
22999 proto_tree_add_item(t, hf_x11_struct_xkb_SALockDeviceBtn_button, tvb, *offsetp, 1, byte_order);
23000 *offsetp += 1;
23001 proto_tree_add_item(t, hf_x11_struct_xkb_SALockDeviceBtn_device, tvb, *offsetp, 1, byte_order);
23002 *offsetp += 1;
23003 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
23004 *offsetp += 3;
23005 }
23006}
23007
23008static void struct_xkb_SADeviceValuator(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
23009{
23010 int i;
23011 for (i = 0; i < count; i++) {
23012 proto_item *item;
23013 proto_tree *t;
23014
23015 item = proto_tree_add_item(root, hf_x11_struct_xkb_SADeviceValuator, tvb, *offsetp, 8, ENC_NA);
23016 t = proto_item_add_subtree(item, ett_x11_rectangle);
23017 field8(tvb, offsetp, t, hf_x11_struct_xkb_SADeviceValuator_type, byte_order);
23018 proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_device, tvb, *offsetp, 1, byte_order);
23019 *offsetp += 1;
23020 field8(tvb, offsetp, t, hf_x11_struct_xkb_SADeviceValuator_val1what, byte_order);
23021 proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_val1index, tvb, *offsetp, 1, byte_order);
23022 *offsetp += 1;
23023 proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_val1value, tvb, *offsetp, 1, byte_order);
23024 *offsetp += 1;
23025 field8(tvb, offsetp, t, hf_x11_struct_xkb_SADeviceValuator_val2what, byte_order);
23026 proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_val2index, tvb, *offsetp, 1, byte_order);
23027 *offsetp += 1;
23028 proto_tree_add_item(t, hf_x11_struct_xkb_SADeviceValuator_val2value, tvb, *offsetp, 1, byte_order);
23029 *offsetp += 1;
23030 }
23031}
23032
23033static void struct_xkb_SIAction(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
23034{
23035 int i;
23036 for (i = 0; i < count; i++) {
23037 proto_item *item;
23038 proto_tree *t;
23039
23040 item = proto_tree_add_item(root, hf_x11_struct_xkb_SIAction, tvb, *offsetp, 8, ENC_NA);
23041 t = proto_item_add_subtree(item, ett_x11_rectangle);
23042 field8(tvb, offsetp, t, hf_x11_struct_xkb_SIAction_type, byte_order);
23043 listOfByte(tvb, offsetp, t, hf_x11_struct_xkb_SIAction_data, 7, byte_order);
23044 }
23045}
23046
23047static void struct_xkb_SymInterpret(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
23048{
23049 int i;
23050 for (i = 0; i < count; i++) {
23051 proto_item *item;
23052 proto_tree *t;
23053
23054 item = proto_tree_add_item(root, hf_x11_struct_xkb_SymInterpret, tvb, *offsetp, 16, ENC_NA);
23055 t = proto_item_add_subtree(item, ett_x11_rectangle);
23056 proto_tree_add_item(t, hf_x11_struct_xkb_SymInterpret_sym, tvb, *offsetp, 4, byte_order);
23057 *offsetp += 4;
23058 {
23059 static int* const mods_bits [] = {
23060 &hf_x11_struct_xkb_SymInterpret_mods_mask_Shift,
23061 &hf_x11_struct_xkb_SymInterpret_mods_mask_Lock,
23062 &hf_x11_struct_xkb_SymInterpret_mods_mask_Control,
23063 &hf_x11_struct_xkb_SymInterpret_mods_mask_1,
23064 &hf_x11_struct_xkb_SymInterpret_mods_mask_2,
23065 &hf_x11_struct_xkb_SymInterpret_mods_mask_3,
23066 &hf_x11_struct_xkb_SymInterpret_mods_mask_4,
23067 &hf_x11_struct_xkb_SymInterpret_mods_mask_5,
23068 &hf_x11_struct_xkb_SymInterpret_mods_mask_Any,
23069 NULL
23070 };
23071 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SymInterpret_mods, ett_x11_rectangle, mods_bits, byte_order);
23072 }
23073 *offsetp += 1;
23074 field8(tvb, offsetp, t, hf_x11_struct_xkb_SymInterpret_match, byte_order);
23075 {
23076 static int* const virtualMod_bits [] = {
23077 &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_0,
23078 &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_1,
23079 &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_2,
23080 &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_3,
23081 &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_4,
23082 &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_5,
23083 &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_6,
23084 &hf_x11_struct_xkb_SymInterpret_virtualMod_mask_7,
23085 NULL
23086 };
23087 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xkb_SymInterpret_virtualMod, ett_x11_rectangle, virtualMod_bits, byte_order);
23088 }
23089 *offsetp += 1;
23090 proto_tree_add_item(t, hf_x11_struct_xkb_SymInterpret_flags, tvb, *offsetp, 1, byte_order);
23091 *offsetp += 1;
23092 struct_xkb_SIAction(tvb, offsetp, t, byte_order, 1);
23093 }
23094}
23095
23096static void struct_xkb_Action(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order, int count)
23097{
23098 int i;
23099 int base = *offsetp;
23100 for (i = 0; i < count; i++) {
23101 proto_item *item;
23102 proto_tree *t;
23103 item = proto_tree_add_item(root, hf_x11_union_xkb_Action, tvb, base, 8, ENC_NA);
23104 t = proto_item_add_subtree(item, ett_x11_rectangle);
23105
23106 *offsetp = base;
23107 struct_xkb_SANoAction(tvb, offsetp, t, byte_order, 1);
23108 *offsetp = base;
23109 struct_xkb_SASetMods(tvb, offsetp, t, byte_order, 1);
23110 *offsetp = base;
23111 struct_xkb_SASetMods(tvb, offsetp, t, byte_order, 1);
23112 *offsetp = base;
23113 struct_xkb_SASetMods(tvb, offsetp, t, byte_order, 1);
23114 *offsetp = base;
23115 struct_xkb_SASetGroup(tvb, offsetp, t, byte_order, 1);
23116 *offsetp = base;
23117 struct_xkb_SASetGroup(tvb, offsetp, t, byte_order, 1);
23118 *offsetp = base;
23119 struct_xkb_SASetGroup(tvb, offsetp, t, byte_order, 1);
23120 *offsetp = base;
23121 struct_xkb_SAMovePtr(tvb, offsetp, t, byte_order, 1);
23122 *offsetp = base;
23123 struct_xkb_SAPtrBtn(tvb, offsetp, t, byte_order, 1);
23124 *offsetp = base;
23125 struct_xkb_SALockPtrBtn(tvb, offsetp, t, byte_order, 1);
23126 *offsetp = base;
23127 struct_xkb_SASetPtrDflt(tvb, offsetp, t, byte_order, 1);
23128 *offsetp = base;
23129 struct_xkb_SAIsoLock(tvb, offsetp, t, byte_order, 1);
23130 *offsetp = base;
23131 struct_xkb_SATerminate(tvb, offsetp, t, byte_order, 1);
23132 *offsetp = base;
23133 struct_xkb_SASwitchScreen(tvb, offsetp, t, byte_order, 1);
23134 *offsetp = base;
23135 struct_xkb_SASetControls(tvb, offsetp, t, byte_order, 1);
23136 *offsetp = base;
23137 struct_xkb_SASetControls(tvb, offsetp, t, byte_order, 1);
23138 *offsetp = base;
23139 struct_xkb_SAActionMessage(tvb, offsetp, t, byte_order, 1);
23140 *offsetp = base;
23141 struct_xkb_SARedirectKey(tvb, offsetp, t, byte_order, 1);
23142 *offsetp = base;
23143 struct_xkb_SADeviceBtn(tvb, offsetp, t, byte_order, 1);
23144 *offsetp = base;
23145 struct_xkb_SALockDeviceBtn(tvb, offsetp, t, byte_order, 1);
23146 *offsetp = base;
23147 struct_xkb_SADeviceValuator(tvb, offsetp, t, byte_order, 1);
23148 *offsetp = base;
23149 field8(tvb, offsetp, t, hf_x11_union_xkb_Action_type, byte_order);
23150 base += 8;
23151 }
23152 *offsetp = base;
23153}
23154
23155static void xkbUseExtension(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
23156{
23157 proto_tree_add_item(t, hf_x11_xkb_UseExtension_wantedMajor, tvb, *offsetp, 2, byte_order);
23158 *offsetp += 2;
23159 proto_tree_add_item(t, hf_x11_xkb_UseExtension_wantedMinor, tvb, *offsetp, 2, byte_order);
23160 *offsetp += 2;
23161}
23162static void xkbUseExtension_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
23163{
23164 int sequence_number;
23165
23166 col_append_fstr(pinfo->cinfo, COL_INFO, "-UseExtension");
23167
23168 REPLY(reply);
23169 proto_tree_add_item(t, hf_x11_xkb_UseExtension_reply_supported, tvb, *offsetp, 1, byte_order);
23170 *offsetp += 1;
23171 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
23172 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
23173 "%d (xkb-UseExtension)", sequence_number);
23174 *offsetp += 2;
23175 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
23176 *offsetp += 4;
23177 proto_tree_add_item(t, hf_x11_xkb_UseExtension_reply_serverMajor, tvb, *offsetp, 2, byte_order);
23178 *offsetp += 2;
23179 proto_tree_add_item(t, hf_x11_xkb_UseExtension_reply_serverMinor, tvb, *offsetp, 2, byte_order);
23180 *offsetp += 2;
23181 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
23182 *offsetp += 20;
23183}
23184
23185static void xkbSelectEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
23186{
23187 int f_affectWhich;
23188 int f_clear;
23189 int f_selectAll;
23190 proto_tree_add_item(t, hf_x11_xkb_SelectEvents_deviceSpec, tvb, *offsetp, 2, byte_order);
23191 *offsetp += 2;
23192 f_affectWhich = tvb_get_uint16(tvb, *offsetp, byte_order);
23193 {
23194 static int* const affectWhich_bits [] = {
23195 &hf_x11_xkb_SelectEvents_affectWhich_mask_NewKeyboardNotify,
23196 &hf_x11_xkb_SelectEvents_affectWhich_mask_MapNotify,
23197 &hf_x11_xkb_SelectEvents_affectWhich_mask_StateNotify,
23198 &hf_x11_xkb_SelectEvents_affectWhich_mask_ControlsNotify,
23199 &hf_x11_xkb_SelectEvents_affectWhich_mask_IndicatorStateNotify,
23200 &hf_x11_xkb_SelectEvents_affectWhich_mask_IndicatorMapNotify,
23201 &hf_x11_xkb_SelectEvents_affectWhich_mask_NamesNotify,
23202 &hf_x11_xkb_SelectEvents_affectWhich_mask_CompatMapNotify,
23203 &hf_x11_xkb_SelectEvents_affectWhich_mask_BellNotify,
23204 &hf_x11_xkb_SelectEvents_affectWhich_mask_ActionMessage,
23205 &hf_x11_xkb_SelectEvents_affectWhich_mask_AccessXNotify,
23206 &hf_x11_xkb_SelectEvents_affectWhich_mask_ExtensionDeviceNotify,
23207 NULL
23208 };
23209 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_affectWhich, ett_x11_rectangle, affectWhich_bits, byte_order);
23210 }
23211 *offsetp += 2;
23212 f_clear = tvb_get_uint16(tvb, *offsetp, byte_order);
23213 {
23214 static int* const clear_bits [] = {
23215 &hf_x11_xkb_SelectEvents_clear_mask_NewKeyboardNotify,
23216 &hf_x11_xkb_SelectEvents_clear_mask_MapNotify,
23217 &hf_x11_xkb_SelectEvents_clear_mask_StateNotify,
23218 &hf_x11_xkb_SelectEvents_clear_mask_ControlsNotify,
23219 &hf_x11_xkb_SelectEvents_clear_mask_IndicatorStateNotify,
23220 &hf_x11_xkb_SelectEvents_clear_mask_IndicatorMapNotify,
23221 &hf_x11_xkb_SelectEvents_clear_mask_NamesNotify,
23222 &hf_x11_xkb_SelectEvents_clear_mask_CompatMapNotify,
23223 &hf_x11_xkb_SelectEvents_clear_mask_BellNotify,
23224 &hf_x11_xkb_SelectEvents_clear_mask_ActionMessage,
23225 &hf_x11_xkb_SelectEvents_clear_mask_AccessXNotify,
23226 &hf_x11_xkb_SelectEvents_clear_mask_ExtensionDeviceNotify,
23227 NULL
23228 };
23229 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_clear, ett_x11_rectangle, clear_bits, byte_order);
23230 }
23231 *offsetp += 2;
23232 f_selectAll = tvb_get_uint16(tvb, *offsetp, byte_order);
23233 {
23234 static int* const selectAll_bits [] = {
23235 &hf_x11_xkb_SelectEvents_selectAll_mask_NewKeyboardNotify,
23236 &hf_x11_xkb_SelectEvents_selectAll_mask_MapNotify,
23237 &hf_x11_xkb_SelectEvents_selectAll_mask_StateNotify,
23238 &hf_x11_xkb_SelectEvents_selectAll_mask_ControlsNotify,
23239 &hf_x11_xkb_SelectEvents_selectAll_mask_IndicatorStateNotify,
23240 &hf_x11_xkb_SelectEvents_selectAll_mask_IndicatorMapNotify,
23241 &hf_x11_xkb_SelectEvents_selectAll_mask_NamesNotify,
23242 &hf_x11_xkb_SelectEvents_selectAll_mask_CompatMapNotify,
23243 &hf_x11_xkb_SelectEvents_selectAll_mask_BellNotify,
23244 &hf_x11_xkb_SelectEvents_selectAll_mask_ActionMessage,
23245 &hf_x11_xkb_SelectEvents_selectAll_mask_AccessXNotify,
23246 &hf_x11_xkb_SelectEvents_selectAll_mask_ExtensionDeviceNotify,
23247 NULL
23248 };
23249 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_selectAll, ett_x11_rectangle, selectAll_bits, byte_order);
23250 }
23251 *offsetp += 2;
23252 {
23253 static int* const affectMap_bits [] = {
23254 &hf_x11_xkb_SelectEvents_affectMap_mask_KeyTypes,
23255 &hf_x11_xkb_SelectEvents_affectMap_mask_KeySyms,
23256 &hf_x11_xkb_SelectEvents_affectMap_mask_ModifierMap,
23257 &hf_x11_xkb_SelectEvents_affectMap_mask_ExplicitComponents,
23258 &hf_x11_xkb_SelectEvents_affectMap_mask_KeyActions,
23259 &hf_x11_xkb_SelectEvents_affectMap_mask_KeyBehaviors,
23260 &hf_x11_xkb_SelectEvents_affectMap_mask_VirtualMods,
23261 &hf_x11_xkb_SelectEvents_affectMap_mask_VirtualModMap,
23262 NULL
23263 };
23264 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_affectMap, ett_x11_rectangle, affectMap_bits, byte_order);
23265 }
23266 *offsetp += 2;
23267 {
23268 static int* const map_bits [] = {
23269 &hf_x11_xkb_SelectEvents_map_mask_KeyTypes,
23270 &hf_x11_xkb_SelectEvents_map_mask_KeySyms,
23271 &hf_x11_xkb_SelectEvents_map_mask_ModifierMap,
23272 &hf_x11_xkb_SelectEvents_map_mask_ExplicitComponents,
23273 &hf_x11_xkb_SelectEvents_map_mask_KeyActions,
23274 &hf_x11_xkb_SelectEvents_map_mask_KeyBehaviors,
23275 &hf_x11_xkb_SelectEvents_map_mask_VirtualMods,
23276 &hf_x11_xkb_SelectEvents_map_mask_VirtualModMap,
23277 NULL
23278 };
23279 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_map, ett_x11_rectangle, map_bits, byte_order);
23280 }
23281 *offsetp += 2;
23282 if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 0)) {
23283 {
23284 static int* const affectNewKeyboard_bits [] = {
23285 &hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard_mask_Keycodes,
23286 &hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard_mask_Geometry,
23287 &hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard_mask_DeviceID,
23288 NULL
23289 };
23290 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard, ett_x11_rectangle, affectNewKeyboard_bits, byte_order);
23291 }
23292 *offsetp += 2;
23293 {
23294 static int* const newKeyboardDetails_bits [] = {
23295 &hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails_mask_Keycodes,
23296 &hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails_mask_Geometry,
23297 &hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails_mask_DeviceID,
23298 NULL
23299 };
23300 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails, ett_x11_rectangle, newKeyboardDetails_bits, byte_order);
23301 }
23302 *offsetp += 2;
23303 }
23304 if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 2)) {
23305 {
23306 static int* const affectState_bits [] = {
23307 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierState,
23308 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierBase,
23309 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierLatch,
23310 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierLock,
23311 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupState,
23312 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupBase,
23313 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupLatch,
23314 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupLock,
23315 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_CompatState,
23316 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GrabMods,
23317 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_CompatGrabMods,
23318 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_LookupMods,
23319 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_CompatLookupMods,
23320 &hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_PointerButtons,
23321 NULL
23322 };
23323 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_StateNotify_affectState, ett_x11_rectangle, affectState_bits, byte_order);
23324 }
23325 *offsetp += 2;
23326 {
23327 static int* const stateDetails_bits [] = {
23328 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierState,
23329 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierBase,
23330 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierLatch,
23331 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierLock,
23332 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupState,
23333 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupBase,
23334 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupLatch,
23335 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupLock,
23336 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_CompatState,
23337 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GrabMods,
23338 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_CompatGrabMods,
23339 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_LookupMods,
23340 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_CompatLookupMods,
23341 &hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_PointerButtons,
23342 NULL
23343 };
23344 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_StateNotify_stateDetails, ett_x11_rectangle, stateDetails_bits, byte_order);
23345 }
23346 *offsetp += 2;
23347 }
23348 if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 3)) {
23349 {
23350 static int* const affectCtrls_bits [] = {
23351 &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_GroupsWrap,
23352 &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_InternalMods,
23353 &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_IgnoreLockMods,
23354 &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_PerKeyRepeat,
23355 &hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_ControlsEnabled,
23356 NULL
23357 };
23358 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls, ett_x11_rectangle, affectCtrls_bits, byte_order);
23359 }
23360 *offsetp += 4;
23361 {
23362 static int* const ctrlDetails_bits [] = {
23363 &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_GroupsWrap,
23364 &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_InternalMods,
23365 &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_IgnoreLockMods,
23366 &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_PerKeyRepeat,
23367 &hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_ControlsEnabled,
23368 NULL
23369 };
23370 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails, ett_x11_rectangle, ctrlDetails_bits, byte_order);
23371 }
23372 *offsetp += 4;
23373 }
23374 if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 4)) {
23375 proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorStateNotify_affectIndicatorState, tvb, *offsetp, 4, byte_order);
23376 *offsetp += 4;
23377 proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorStateNotify_indicatorStateDetails, tvb, *offsetp, 4, byte_order);
23378 *offsetp += 4;
23379 }
23380 if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 5)) {
23381 proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorMapNotify_affectIndicatorMap, tvb, *offsetp, 4, byte_order);
23382 *offsetp += 4;
23383 proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorMapNotify_indicatorMapDetails, tvb, *offsetp, 4, byte_order);
23384 *offsetp += 4;
23385 }
23386 if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 6)) {
23387 {
23388 static int* const affectNames_bits [] = {
23389 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Keycodes,
23390 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Geometry,
23391 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Symbols,
23392 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_PhysSymbols,
23393 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Types,
23394 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Compat,
23395 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KeyTypeNames,
23396 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KTLevelNames,
23397 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_IndicatorNames,
23398 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KeyNames,
23399 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KeyAliases,
23400 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_VirtualModNames,
23401 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_GroupNames,
23402 &hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_RGNames,
23403 NULL
23404 };
23405 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_NamesNotify_affectNames, ett_x11_rectangle, affectNames_bits, byte_order);
23406 }
23407 *offsetp += 2;
23408 {
23409 static int* const namesDetails_bits [] = {
23410 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Keycodes,
23411 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Geometry,
23412 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Symbols,
23413 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_PhysSymbols,
23414 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Types,
23415 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Compat,
23416 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KeyTypeNames,
23417 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KTLevelNames,
23418 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_IndicatorNames,
23419 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KeyNames,
23420 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KeyAliases,
23421 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_VirtualModNames,
23422 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_GroupNames,
23423 &hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_RGNames,
23424 NULL
23425 };
23426 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails, ett_x11_rectangle, namesDetails_bits, byte_order);
23427 }
23428 *offsetp += 2;
23429 }
23430 if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 7)) {
23431 {
23432 static int* const affectCompat_bits [] = {
23433 &hf_x11_xkb_SelectEvents_CompatMapNotify_affectCompat_mask_SymInterp,
23434 &hf_x11_xkb_SelectEvents_CompatMapNotify_affectCompat_mask_GroupCompat,
23435 NULL
23436 };
23437 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_CompatMapNotify_affectCompat, ett_x11_rectangle, affectCompat_bits, byte_order);
23438 }
23439 *offsetp += 1;
23440 {
23441 static int* const compatDetails_bits [] = {
23442 &hf_x11_xkb_SelectEvents_CompatMapNotify_compatDetails_mask_SymInterp,
23443 &hf_x11_xkb_SelectEvents_CompatMapNotify_compatDetails_mask_GroupCompat,
23444 NULL
23445 };
23446 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_CompatMapNotify_compatDetails, ett_x11_rectangle, compatDetails_bits, byte_order);
23447 }
23448 *offsetp += 1;
23449 }
23450 if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 8)) {
23451 proto_tree_add_item(t, hf_x11_xkb_SelectEvents_BellNotify_affectBell, tvb, *offsetp, 1, byte_order);
23452 *offsetp += 1;
23453 proto_tree_add_item(t, hf_x11_xkb_SelectEvents_BellNotify_bellDetails, tvb, *offsetp, 1, byte_order);
23454 *offsetp += 1;
23455 }
23456 if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 9)) {
23457 proto_tree_add_item(t, hf_x11_xkb_SelectEvents_ActionMessage_affectMsgDetails, tvb, *offsetp, 1, byte_order);
23458 *offsetp += 1;
23459 proto_tree_add_item(t, hf_x11_xkb_SelectEvents_ActionMessage_msgDetails, tvb, *offsetp, 1, byte_order);
23460 *offsetp += 1;
23461 }
23462 if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 10)) {
23463 {
23464 static int* const affectAccessX_bits [] = {
23465 &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKPress,
23466 &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKAccept,
23467 &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKReject,
23468 &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKRelease,
23469 &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_BKAccept,
23470 &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_BKReject,
23471 &hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_AXKWarning,
23472 NULL
23473 };
23474 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX, ett_x11_rectangle, affectAccessX_bits, byte_order);
23475 }
23476 *offsetp += 2;
23477 {
23478 static int* const accessXDetails_bits [] = {
23479 &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKPress,
23480 &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKAccept,
23481 &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKReject,
23482 &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKRelease,
23483 &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_BKAccept,
23484 &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_BKReject,
23485 &hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_AXKWarning,
23486 NULL
23487 };
23488 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails, ett_x11_rectangle, accessXDetails_bits, byte_order);
23489 }
23490 *offsetp += 2;
23491 }
23492 if ((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1U << 11)) {
23493 {
23494 static int* const affectExtDev_bits [] = {
23495 &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_Keyboards,
23496 &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_ButtonActions,
23497 &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_IndicatorNames,
23498 &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_IndicatorMaps,
23499 &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_IndicatorState,
23500 NULL
23501 };
23502 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev, ett_x11_rectangle, affectExtDev_bits, byte_order);
23503 }
23504 *offsetp += 2;
23505 {
23506 static int* const extdevDetails_bits [] = {
23507 &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_Keyboards,
23508 &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_ButtonActions,
23509 &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_IndicatorNames,
23510 &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_IndicatorMaps,
23511 &hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_IndicatorState,
23512 NULL
23513 };
23514 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails, ett_x11_rectangle, extdevDetails_bits, byte_order);
23515 }
23516 *offsetp += 2;
23517 }
23518}
23519
23520static void xkbBell(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
23521{
23522 proto_tree_add_item(t, hf_x11_xkb_Bell_deviceSpec, tvb, *offsetp, 2, byte_order);
23523 *offsetp += 2;
23524 proto_tree_add_item(t, hf_x11_xkb_Bell_bellClass, tvb, *offsetp, 2, byte_order);
23525 *offsetp += 2;
23526 proto_tree_add_item(t, hf_x11_xkb_Bell_bellID, tvb, *offsetp, 2, byte_order);
23527 *offsetp += 2;
23528 proto_tree_add_item(t, hf_x11_xkb_Bell_percent, tvb, *offsetp, 1, byte_order);
23529 *offsetp += 1;
23530 proto_tree_add_item(t, hf_x11_xkb_Bell_forceSound, tvb, *offsetp, 1, byte_order);
23531 *offsetp += 1;
23532 proto_tree_add_item(t, hf_x11_xkb_Bell_eventOnly, tvb, *offsetp, 1, byte_order);
23533 *offsetp += 1;
23534 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23535 *offsetp += 1;
23536 proto_tree_add_item(t, hf_x11_xkb_Bell_pitch, tvb, *offsetp, 2, byte_order);
23537 *offsetp += 2;
23538 proto_tree_add_item(t, hf_x11_xkb_Bell_duration, tvb, *offsetp, 2, byte_order);
23539 *offsetp += 2;
23540 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
23541 *offsetp += 2;
23542 proto_tree_add_item(t, hf_x11_xkb_Bell_name, tvb, *offsetp, 4, byte_order);
23543 *offsetp += 4;
23544 proto_tree_add_item(t, hf_x11_xkb_Bell_window, tvb, *offsetp, 4, byte_order);
23545 *offsetp += 4;
23546}
23547
23548static void xkbGetState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
23549{
23550 proto_tree_add_item(t, hf_x11_xkb_GetState_deviceSpec, tvb, *offsetp, 2, byte_order);
23551 *offsetp += 2;
23552 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
23553 *offsetp += 2;
23554}
23555static void xkbGetState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
23556{
23557 int sequence_number;
23558
23559 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetState");
23560
23561 REPLY(reply);
23562 proto_tree_add_item(t, hf_x11_xkb_GetState_reply_deviceID, tvb, *offsetp, 1, byte_order);
23563 *offsetp += 1;
23564 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
23565 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
23566 "%d (xkb-GetState)", sequence_number);
23567 *offsetp += 2;
23568 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
23569 *offsetp += 4;
23570 {
23571 static int* const mods_bits [] = {
23572 &hf_x11_xkb_GetState_reply_mods_mask_Shift,
23573 &hf_x11_xkb_GetState_reply_mods_mask_Lock,
23574 &hf_x11_xkb_GetState_reply_mods_mask_Control,
23575 &hf_x11_xkb_GetState_reply_mods_mask_1,
23576 &hf_x11_xkb_GetState_reply_mods_mask_2,
23577 &hf_x11_xkb_GetState_reply_mods_mask_3,
23578 &hf_x11_xkb_GetState_reply_mods_mask_4,
23579 &hf_x11_xkb_GetState_reply_mods_mask_5,
23580 &hf_x11_xkb_GetState_reply_mods_mask_Any,
23581 NULL
23582 };
23583 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_mods, ett_x11_rectangle, mods_bits, byte_order);
23584 }
23585 *offsetp += 1;
23586 {
23587 static int* const baseMods_bits [] = {
23588 &hf_x11_xkb_GetState_reply_baseMods_mask_Shift,
23589 &hf_x11_xkb_GetState_reply_baseMods_mask_Lock,
23590 &hf_x11_xkb_GetState_reply_baseMods_mask_Control,
23591 &hf_x11_xkb_GetState_reply_baseMods_mask_1,
23592 &hf_x11_xkb_GetState_reply_baseMods_mask_2,
23593 &hf_x11_xkb_GetState_reply_baseMods_mask_3,
23594 &hf_x11_xkb_GetState_reply_baseMods_mask_4,
23595 &hf_x11_xkb_GetState_reply_baseMods_mask_5,
23596 &hf_x11_xkb_GetState_reply_baseMods_mask_Any,
23597 NULL
23598 };
23599 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_baseMods, ett_x11_rectangle, baseMods_bits, byte_order);
23600 }
23601 *offsetp += 1;
23602 {
23603 static int* const latchedMods_bits [] = {
23604 &hf_x11_xkb_GetState_reply_latchedMods_mask_Shift,
23605 &hf_x11_xkb_GetState_reply_latchedMods_mask_Lock,
23606 &hf_x11_xkb_GetState_reply_latchedMods_mask_Control,
23607 &hf_x11_xkb_GetState_reply_latchedMods_mask_1,
23608 &hf_x11_xkb_GetState_reply_latchedMods_mask_2,
23609 &hf_x11_xkb_GetState_reply_latchedMods_mask_3,
23610 &hf_x11_xkb_GetState_reply_latchedMods_mask_4,
23611 &hf_x11_xkb_GetState_reply_latchedMods_mask_5,
23612 &hf_x11_xkb_GetState_reply_latchedMods_mask_Any,
23613 NULL
23614 };
23615 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_latchedMods, ett_x11_rectangle, latchedMods_bits, byte_order);
23616 }
23617 *offsetp += 1;
23618 {
23619 static int* const lockedMods_bits [] = {
23620 &hf_x11_xkb_GetState_reply_lockedMods_mask_Shift,
23621 &hf_x11_xkb_GetState_reply_lockedMods_mask_Lock,
23622 &hf_x11_xkb_GetState_reply_lockedMods_mask_Control,
23623 &hf_x11_xkb_GetState_reply_lockedMods_mask_1,
23624 &hf_x11_xkb_GetState_reply_lockedMods_mask_2,
23625 &hf_x11_xkb_GetState_reply_lockedMods_mask_3,
23626 &hf_x11_xkb_GetState_reply_lockedMods_mask_4,
23627 &hf_x11_xkb_GetState_reply_lockedMods_mask_5,
23628 &hf_x11_xkb_GetState_reply_lockedMods_mask_Any,
23629 NULL
23630 };
23631 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_lockedMods, ett_x11_rectangle, lockedMods_bits, byte_order);
23632 }
23633 *offsetp += 1;
23634 field8(tvb, offsetp, t, hf_x11_xkb_GetState_reply_group, byte_order);
23635 field8(tvb, offsetp, t, hf_x11_xkb_GetState_reply_lockedGroup, byte_order);
23636 proto_tree_add_item(t, hf_x11_xkb_GetState_reply_baseGroup, tvb, *offsetp, 2, byte_order);
23637 *offsetp += 2;
23638 proto_tree_add_item(t, hf_x11_xkb_GetState_reply_latchedGroup, tvb, *offsetp, 2, byte_order);
23639 *offsetp += 2;
23640 {
23641 static int* const compatState_bits [] = {
23642 &hf_x11_xkb_GetState_reply_compatState_mask_Shift,
23643 &hf_x11_xkb_GetState_reply_compatState_mask_Lock,
23644 &hf_x11_xkb_GetState_reply_compatState_mask_Control,
23645 &hf_x11_xkb_GetState_reply_compatState_mask_1,
23646 &hf_x11_xkb_GetState_reply_compatState_mask_2,
23647 &hf_x11_xkb_GetState_reply_compatState_mask_3,
23648 &hf_x11_xkb_GetState_reply_compatState_mask_4,
23649 &hf_x11_xkb_GetState_reply_compatState_mask_5,
23650 &hf_x11_xkb_GetState_reply_compatState_mask_Any,
23651 NULL
23652 };
23653 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_compatState, ett_x11_rectangle, compatState_bits, byte_order);
23654 }
23655 *offsetp += 1;
23656 {
23657 static int* const grabMods_bits [] = {
23658 &hf_x11_xkb_GetState_reply_grabMods_mask_Shift,
23659 &hf_x11_xkb_GetState_reply_grabMods_mask_Lock,
23660 &hf_x11_xkb_GetState_reply_grabMods_mask_Control,
23661 &hf_x11_xkb_GetState_reply_grabMods_mask_1,
23662 &hf_x11_xkb_GetState_reply_grabMods_mask_2,
23663 &hf_x11_xkb_GetState_reply_grabMods_mask_3,
23664 &hf_x11_xkb_GetState_reply_grabMods_mask_4,
23665 &hf_x11_xkb_GetState_reply_grabMods_mask_5,
23666 &hf_x11_xkb_GetState_reply_grabMods_mask_Any,
23667 NULL
23668 };
23669 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_grabMods, ett_x11_rectangle, grabMods_bits, byte_order);
23670 }
23671 *offsetp += 1;
23672 {
23673 static int* const compatGrabMods_bits [] = {
23674 &hf_x11_xkb_GetState_reply_compatGrabMods_mask_Shift,
23675 &hf_x11_xkb_GetState_reply_compatGrabMods_mask_Lock,
23676 &hf_x11_xkb_GetState_reply_compatGrabMods_mask_Control,
23677 &hf_x11_xkb_GetState_reply_compatGrabMods_mask_1,
23678 &hf_x11_xkb_GetState_reply_compatGrabMods_mask_2,
23679 &hf_x11_xkb_GetState_reply_compatGrabMods_mask_3,
23680 &hf_x11_xkb_GetState_reply_compatGrabMods_mask_4,
23681 &hf_x11_xkb_GetState_reply_compatGrabMods_mask_5,
23682 &hf_x11_xkb_GetState_reply_compatGrabMods_mask_Any,
23683 NULL
23684 };
23685 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_compatGrabMods, ett_x11_rectangle, compatGrabMods_bits, byte_order);
23686 }
23687 *offsetp += 1;
23688 {
23689 static int* const lookupMods_bits [] = {
23690 &hf_x11_xkb_GetState_reply_lookupMods_mask_Shift,
23691 &hf_x11_xkb_GetState_reply_lookupMods_mask_Lock,
23692 &hf_x11_xkb_GetState_reply_lookupMods_mask_Control,
23693 &hf_x11_xkb_GetState_reply_lookupMods_mask_1,
23694 &hf_x11_xkb_GetState_reply_lookupMods_mask_2,
23695 &hf_x11_xkb_GetState_reply_lookupMods_mask_3,
23696 &hf_x11_xkb_GetState_reply_lookupMods_mask_4,
23697 &hf_x11_xkb_GetState_reply_lookupMods_mask_5,
23698 &hf_x11_xkb_GetState_reply_lookupMods_mask_Any,
23699 NULL
23700 };
23701 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_lookupMods, ett_x11_rectangle, lookupMods_bits, byte_order);
23702 }
23703 *offsetp += 1;
23704 {
23705 static int* const compatLookupMods_bits [] = {
23706 &hf_x11_xkb_GetState_reply_compatLookupMods_mask_Shift,
23707 &hf_x11_xkb_GetState_reply_compatLookupMods_mask_Lock,
23708 &hf_x11_xkb_GetState_reply_compatLookupMods_mask_Control,
23709 &hf_x11_xkb_GetState_reply_compatLookupMods_mask_1,
23710 &hf_x11_xkb_GetState_reply_compatLookupMods_mask_2,
23711 &hf_x11_xkb_GetState_reply_compatLookupMods_mask_3,
23712 &hf_x11_xkb_GetState_reply_compatLookupMods_mask_4,
23713 &hf_x11_xkb_GetState_reply_compatLookupMods_mask_5,
23714 &hf_x11_xkb_GetState_reply_compatLookupMods_mask_Any,
23715 NULL
23716 };
23717 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_compatLookupMods, ett_x11_rectangle, compatLookupMods_bits, byte_order);
23718 }
23719 *offsetp += 1;
23720 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23721 *offsetp += 1;
23722 {
23723 static int* const ptrBtnState_bits [] = {
23724 &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Shift,
23725 &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Lock,
23726 &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Control,
23727 &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod1,
23728 &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod2,
23729 &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod3,
23730 &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod4,
23731 &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod5,
23732 &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button1,
23733 &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button2,
23734 &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button3,
23735 &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button4,
23736 &hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button5,
23737 NULL
23738 };
23739 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetState_reply_ptrBtnState, ett_x11_rectangle, ptrBtnState_bits, byte_order);
23740 }
23741 *offsetp += 2;
23742 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 6, ENC_NA);
23743 *offsetp += 6;
23744}
23745
23746static void xkbLatchLockState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
23747{
23748 proto_tree_add_item(t, hf_x11_xkb_LatchLockState_deviceSpec, tvb, *offsetp, 2, byte_order);
23749 *offsetp += 2;
23750 {
23751 static int* const affectModLocks_bits [] = {
23752 &hf_x11_xkb_LatchLockState_affectModLocks_mask_Shift,
23753 &hf_x11_xkb_LatchLockState_affectModLocks_mask_Lock,
23754 &hf_x11_xkb_LatchLockState_affectModLocks_mask_Control,
23755 &hf_x11_xkb_LatchLockState_affectModLocks_mask_1,
23756 &hf_x11_xkb_LatchLockState_affectModLocks_mask_2,
23757 &hf_x11_xkb_LatchLockState_affectModLocks_mask_3,
23758 &hf_x11_xkb_LatchLockState_affectModLocks_mask_4,
23759 &hf_x11_xkb_LatchLockState_affectModLocks_mask_5,
23760 &hf_x11_xkb_LatchLockState_affectModLocks_mask_Any,
23761 NULL
23762 };
23763 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_LatchLockState_affectModLocks, ett_x11_rectangle, affectModLocks_bits, byte_order);
23764 }
23765 *offsetp += 1;
23766 {
23767 static int* const modLocks_bits [] = {
23768 &hf_x11_xkb_LatchLockState_modLocks_mask_Shift,
23769 &hf_x11_xkb_LatchLockState_modLocks_mask_Lock,
23770 &hf_x11_xkb_LatchLockState_modLocks_mask_Control,
23771 &hf_x11_xkb_LatchLockState_modLocks_mask_1,
23772 &hf_x11_xkb_LatchLockState_modLocks_mask_2,
23773 &hf_x11_xkb_LatchLockState_modLocks_mask_3,
23774 &hf_x11_xkb_LatchLockState_modLocks_mask_4,
23775 &hf_x11_xkb_LatchLockState_modLocks_mask_5,
23776 &hf_x11_xkb_LatchLockState_modLocks_mask_Any,
23777 NULL
23778 };
23779 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_LatchLockState_modLocks, ett_x11_rectangle, modLocks_bits, byte_order);
23780 }
23781 *offsetp += 1;
23782 proto_tree_add_item(t, hf_x11_xkb_LatchLockState_lockGroup, tvb, *offsetp, 1, byte_order);
23783 *offsetp += 1;
23784 field8(tvb, offsetp, t, hf_x11_xkb_LatchLockState_groupLock, byte_order);
23785 {
23786 static int* const affectModLatches_bits [] = {
23787 &hf_x11_xkb_LatchLockState_affectModLatches_mask_Shift,
23788 &hf_x11_xkb_LatchLockState_affectModLatches_mask_Lock,
23789 &hf_x11_xkb_LatchLockState_affectModLatches_mask_Control,
23790 &hf_x11_xkb_LatchLockState_affectModLatches_mask_1,
23791 &hf_x11_xkb_LatchLockState_affectModLatches_mask_2,
23792 &hf_x11_xkb_LatchLockState_affectModLatches_mask_3,
23793 &hf_x11_xkb_LatchLockState_affectModLatches_mask_4,
23794 &hf_x11_xkb_LatchLockState_affectModLatches_mask_5,
23795 &hf_x11_xkb_LatchLockState_affectModLatches_mask_Any,
23796 NULL
23797 };
23798 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_LatchLockState_affectModLatches, ett_x11_rectangle, affectModLatches_bits, byte_order);
23799 }
23800 *offsetp += 1;
23801 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23802 *offsetp += 1;
23803 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23804 *offsetp += 1;
23805 proto_tree_add_item(t, hf_x11_xkb_LatchLockState_latchGroup, tvb, *offsetp, 1, byte_order);
23806 *offsetp += 1;
23807 proto_tree_add_item(t, hf_x11_xkb_LatchLockState_groupLatch, tvb, *offsetp, 2, byte_order);
23808 *offsetp += 2;
23809}
23810
23811static void xkbGetControls(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
23812{
23813 proto_tree_add_item(t, hf_x11_xkb_GetControls_deviceSpec, tvb, *offsetp, 2, byte_order);
23814 *offsetp += 2;
23815 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
23816 *offsetp += 2;
23817}
23818static void xkbGetControls_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
23819{
23820 int sequence_number;
23821
23822 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetControls");
23823
23824 REPLY(reply);
23825 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_deviceID, tvb, *offsetp, 1, byte_order);
23826 *offsetp += 1;
23827 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
23828 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
23829 "%d (xkb-GetControls)", sequence_number);
23830 *offsetp += 2;
23831 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
23832 *offsetp += 4;
23833 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysDfltBtn, tvb, *offsetp, 1, byte_order);
23834 *offsetp += 1;
23835 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_numGroups, tvb, *offsetp, 1, byte_order);
23836 *offsetp += 1;
23837 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_groupsWrap, tvb, *offsetp, 1, byte_order);
23838 *offsetp += 1;
23839 {
23840 static int* const internalModsMask_bits [] = {
23841 &hf_x11_xkb_GetControls_reply_internalModsMask_mask_Shift,
23842 &hf_x11_xkb_GetControls_reply_internalModsMask_mask_Lock,
23843 &hf_x11_xkb_GetControls_reply_internalModsMask_mask_Control,
23844 &hf_x11_xkb_GetControls_reply_internalModsMask_mask_1,
23845 &hf_x11_xkb_GetControls_reply_internalModsMask_mask_2,
23846 &hf_x11_xkb_GetControls_reply_internalModsMask_mask_3,
23847 &hf_x11_xkb_GetControls_reply_internalModsMask_mask_4,
23848 &hf_x11_xkb_GetControls_reply_internalModsMask_mask_5,
23849 &hf_x11_xkb_GetControls_reply_internalModsMask_mask_Any,
23850 NULL
23851 };
23852 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_internalModsMask, ett_x11_rectangle, internalModsMask_bits, byte_order);
23853 }
23854 *offsetp += 1;
23855 {
23856 static int* const ignoreLockModsMask_bits [] = {
23857 &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Shift,
23858 &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Lock,
23859 &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Control,
23860 &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_1,
23861 &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_2,
23862 &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_3,
23863 &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_4,
23864 &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_5,
23865 &hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Any,
23866 NULL
23867 };
23868 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_ignoreLockModsMask, ett_x11_rectangle, ignoreLockModsMask_bits, byte_order);
23869 }
23870 *offsetp += 1;
23871 {
23872 static int* const internalModsRealMods_bits [] = {
23873 &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Shift,
23874 &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Lock,
23875 &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Control,
23876 &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_1,
23877 &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_2,
23878 &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_3,
23879 &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_4,
23880 &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_5,
23881 &hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Any,
23882 NULL
23883 };
23884 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_internalModsRealMods, ett_x11_rectangle, internalModsRealMods_bits, byte_order);
23885 }
23886 *offsetp += 1;
23887 {
23888 static int* const ignoreLockModsRealMods_bits [] = {
23889 &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Shift,
23890 &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Lock,
23891 &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Control,
23892 &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_1,
23893 &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_2,
23894 &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_3,
23895 &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_4,
23896 &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_5,
23897 &hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Any,
23898 NULL
23899 };
23900 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods, ett_x11_rectangle, ignoreLockModsRealMods_bits, byte_order);
23901 }
23902 *offsetp += 1;
23903 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
23904 *offsetp += 1;
23905 {
23906 static int* const internalModsVmods_bits [] = {
23907 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_0,
23908 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_1,
23909 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_2,
23910 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_3,
23911 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_4,
23912 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_5,
23913 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_6,
23914 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_7,
23915 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_8,
23916 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_9,
23917 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_10,
23918 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_11,
23919 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_12,
23920 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_13,
23921 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_14,
23922 &hf_x11_xkb_GetControls_reply_internalModsVmods_mask_15,
23923 NULL
23924 };
23925 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_internalModsVmods, ett_x11_rectangle, internalModsVmods_bits, byte_order);
23926 }
23927 *offsetp += 2;
23928 {
23929 static int* const ignoreLockModsVmods_bits [] = {
23930 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_0,
23931 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_1,
23932 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_2,
23933 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_3,
23934 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_4,
23935 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_5,
23936 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_6,
23937 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_7,
23938 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_8,
23939 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_9,
23940 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_10,
23941 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_11,
23942 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_12,
23943 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_13,
23944 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_14,
23945 &hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_15,
23946 NULL
23947 };
23948 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods, ett_x11_rectangle, ignoreLockModsVmods_bits, byte_order);
23949 }
23950 *offsetp += 2;
23951 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_repeatDelay, tvb, *offsetp, 2, byte_order);
23952 *offsetp += 2;
23953 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_repeatInterval, tvb, *offsetp, 2, byte_order);
23954 *offsetp += 2;
23955 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_slowKeysDelay, tvb, *offsetp, 2, byte_order);
23956 *offsetp += 2;
23957 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_debounceDelay, tvb, *offsetp, 2, byte_order);
23958 *offsetp += 2;
23959 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysDelay, tvb, *offsetp, 2, byte_order);
23960 *offsetp += 2;
23961 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysInterval, tvb, *offsetp, 2, byte_order);
23962 *offsetp += 2;
23963 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysTimeToMax, tvb, *offsetp, 2, byte_order);
23964 *offsetp += 2;
23965 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysMaxSpeed, tvb, *offsetp, 2, byte_order);
23966 *offsetp += 2;
23967 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysCurve, tvb, *offsetp, 2, byte_order);
23968 *offsetp += 2;
23969 {
23970 static int* const accessXOption_bits [] = {
23971 &hf_x11_xkb_GetControls_reply_accessXOption_mask_SKPressFB,
23972 &hf_x11_xkb_GetControls_reply_accessXOption_mask_SKAcceptFB,
23973 &hf_x11_xkb_GetControls_reply_accessXOption_mask_FeatureFB,
23974 &hf_x11_xkb_GetControls_reply_accessXOption_mask_SlowWarnFB,
23975 &hf_x11_xkb_GetControls_reply_accessXOption_mask_IndicatorFB,
23976 &hf_x11_xkb_GetControls_reply_accessXOption_mask_StickyKeysFB,
23977 &hf_x11_xkb_GetControls_reply_accessXOption_mask_TwoKeys,
23978 &hf_x11_xkb_GetControls_reply_accessXOption_mask_LatchToLock,
23979 &hf_x11_xkb_GetControls_reply_accessXOption_mask_SKReleaseFB,
23980 &hf_x11_xkb_GetControls_reply_accessXOption_mask_SKRejectFB,
23981 &hf_x11_xkb_GetControls_reply_accessXOption_mask_BKRejectFB,
23982 &hf_x11_xkb_GetControls_reply_accessXOption_mask_DumbBell,
23983 NULL
23984 };
23985 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXOption, ett_x11_rectangle, accessXOption_bits, byte_order);
23986 }
23987 *offsetp += 2;
23988 proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_accessXTimeout, tvb, *offsetp, 2, byte_order);
23989 *offsetp += 2;
23990 {
23991 static int* const accessXTimeoutOptionsMask_bits [] = {
23992 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SKPressFB,
23993 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SKAcceptFB,
23994 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_FeatureFB,
23995 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SlowWarnFB,
23996 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_IndicatorFB,
23997 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_StickyKeysFB,
23998 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_TwoKeys,
23999 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_LatchToLock,
24000 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SKReleaseFB,
24001 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_SKRejectFB,
24002 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_BKRejectFB,
24003 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask_mask_DumbBell,
24004 NULL
24005 };
24006 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsMask, ett_x11_rectangle, accessXTimeoutOptionsMask_bits, byte_order);
24007 }
24008 *offsetp += 2;
24009 {
24010 static int* const accessXTimeoutOptionsValues_bits [] = {
24011 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SKPressFB,
24012 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SKAcceptFB,
24013 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_FeatureFB,
24014 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SlowWarnFB,
24015 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_IndicatorFB,
24016 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_StickyKeysFB,
24017 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_TwoKeys,
24018 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_LatchToLock,
24019 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SKReleaseFB,
24020 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_SKRejectFB,
24021 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_BKRejectFB,
24022 &hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues_mask_DumbBell,
24023 NULL
24024 };
24025 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXTimeoutOptionsValues, ett_x11_rectangle, accessXTimeoutOptionsValues_bits, byte_order);
24026 }
24027 *offsetp += 2;
24028 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24029 *offsetp += 2;
24030 {
24031 static int* const accessXTimeoutMask_bits [] = {
24032 &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_RepeatKeys,
24033 &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_SlowKeys,
24034 &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_BounceKeys,
24035 &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_StickyKeys,
24036 &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_MouseKeys,
24037 &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_MouseKeysAccel,
24038 &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_AccessXKeys,
24039 &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_AccessXTimeoutMask,
24040 &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_AccessXFeedbackMask,
24041 &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_AudibleBellMask,
24042 &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_Overlay1Mask,
24043 &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_Overlay2Mask,
24044 &hf_x11_xkb_GetControls_reply_accessXTimeoutMask_mask_IgnoreGroupLockMask,
24045 NULL
24046 };
24047 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXTimeoutMask, ett_x11_rectangle, accessXTimeoutMask_bits, byte_order);
24048 }
24049 *offsetp += 4;
24050 {
24051 static int* const accessXTimeoutValues_bits [] = {
24052 &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_RepeatKeys,
24053 &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_SlowKeys,
24054 &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_BounceKeys,
24055 &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_StickyKeys,
24056 &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_MouseKeys,
24057 &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_MouseKeysAccel,
24058 &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_AccessXKeys,
24059 &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_AccessXTimeoutMask,
24060 &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_AccessXFeedbackMask,
24061 &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_AudibleBellMask,
24062 &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_Overlay1Mask,
24063 &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_Overlay2Mask,
24064 &hf_x11_xkb_GetControls_reply_accessXTimeoutValues_mask_IgnoreGroupLockMask,
24065 NULL
24066 };
24067 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_accessXTimeoutValues, ett_x11_rectangle, accessXTimeoutValues_bits, byte_order);
24068 }
24069 *offsetp += 4;
24070 {
24071 static int* const enabledControls_bits [] = {
24072 &hf_x11_xkb_GetControls_reply_enabledControls_mask_RepeatKeys,
24073 &hf_x11_xkb_GetControls_reply_enabledControls_mask_SlowKeys,
24074 &hf_x11_xkb_GetControls_reply_enabledControls_mask_BounceKeys,
24075 &hf_x11_xkb_GetControls_reply_enabledControls_mask_StickyKeys,
24076 &hf_x11_xkb_GetControls_reply_enabledControls_mask_MouseKeys,
24077 &hf_x11_xkb_GetControls_reply_enabledControls_mask_MouseKeysAccel,
24078 &hf_x11_xkb_GetControls_reply_enabledControls_mask_AccessXKeys,
24079 &hf_x11_xkb_GetControls_reply_enabledControls_mask_AccessXTimeoutMask,
24080 &hf_x11_xkb_GetControls_reply_enabledControls_mask_AccessXFeedbackMask,
24081 &hf_x11_xkb_GetControls_reply_enabledControls_mask_AudibleBellMask,
24082 &hf_x11_xkb_GetControls_reply_enabledControls_mask_Overlay1Mask,
24083 &hf_x11_xkb_GetControls_reply_enabledControls_mask_Overlay2Mask,
24084 &hf_x11_xkb_GetControls_reply_enabledControls_mask_IgnoreGroupLockMask,
24085 NULL
24086 };
24087 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetControls_reply_enabledControls, ett_x11_rectangle, enabledControls_bits, byte_order);
24088 }
24089 *offsetp += 4;
24090 listOfByte(tvb, offsetp, t, hf_x11_xkb_GetControls_reply_perKeyRepeat, 32, byte_order);
24091}
24092
24093static void xkbSetControls(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
24094{
24095 proto_tree_add_item(t, hf_x11_xkb_SetControls_deviceSpec, tvb, *offsetp, 2, byte_order);
24096 *offsetp += 2;
24097 {
24098 static int* const affectInternalRealMods_bits [] = {
24099 &hf_x11_xkb_SetControls_affectInternalRealMods_mask_Shift,
24100 &hf_x11_xkb_SetControls_affectInternalRealMods_mask_Lock,
24101 &hf_x11_xkb_SetControls_affectInternalRealMods_mask_Control,
24102 &hf_x11_xkb_SetControls_affectInternalRealMods_mask_1,
24103 &hf_x11_xkb_SetControls_affectInternalRealMods_mask_2,
24104 &hf_x11_xkb_SetControls_affectInternalRealMods_mask_3,
24105 &hf_x11_xkb_SetControls_affectInternalRealMods_mask_4,
24106 &hf_x11_xkb_SetControls_affectInternalRealMods_mask_5,
24107 &hf_x11_xkb_SetControls_affectInternalRealMods_mask_Any,
24108 NULL
24109 };
24110 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectInternalRealMods, ett_x11_rectangle, affectInternalRealMods_bits, byte_order);
24111 }
24112 *offsetp += 1;
24113 {
24114 static int* const internalRealMods_bits [] = {
24115 &hf_x11_xkb_SetControls_internalRealMods_mask_Shift,
24116 &hf_x11_xkb_SetControls_internalRealMods_mask_Lock,
24117 &hf_x11_xkb_SetControls_internalRealMods_mask_Control,
24118 &hf_x11_xkb_SetControls_internalRealMods_mask_1,
24119 &hf_x11_xkb_SetControls_internalRealMods_mask_2,
24120 &hf_x11_xkb_SetControls_internalRealMods_mask_3,
24121 &hf_x11_xkb_SetControls_internalRealMods_mask_4,
24122 &hf_x11_xkb_SetControls_internalRealMods_mask_5,
24123 &hf_x11_xkb_SetControls_internalRealMods_mask_Any,
24124 NULL
24125 };
24126 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_internalRealMods, ett_x11_rectangle, internalRealMods_bits, byte_order);
24127 }
24128 *offsetp += 1;
24129 {
24130 static int* const affectIgnoreLockRealMods_bits [] = {
24131 &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Shift,
24132 &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Lock,
24133 &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Control,
24134 &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_1,
24135 &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_2,
24136 &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_3,
24137 &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_4,
24138 &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_5,
24139 &hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Any,
24140 NULL
24141 };
24142 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectIgnoreLockRealMods, ett_x11_rectangle, affectIgnoreLockRealMods_bits, byte_order);
24143 }
24144 *offsetp += 1;
24145 {
24146 static int* const ignoreLockRealMods_bits [] = {
24147 &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Shift,
24148 &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Lock,
24149 &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Control,
24150 &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_1,
24151 &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_2,
24152 &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_3,
24153 &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_4,
24154 &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_5,
24155 &hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Any,
24156 NULL
24157 };
24158 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_ignoreLockRealMods, ett_x11_rectangle, ignoreLockRealMods_bits, byte_order);
24159 }
24160 *offsetp += 1;
24161 {
24162 static int* const affectInternalVirtualMods_bits [] = {
24163 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_0,
24164 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_1,
24165 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_2,
24166 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_3,
24167 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_4,
24168 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_5,
24169 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_6,
24170 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_7,
24171 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_8,
24172 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_9,
24173 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_10,
24174 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_11,
24175 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_12,
24176 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_13,
24177 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_14,
24178 &hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_15,
24179 NULL
24180 };
24181 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectInternalVirtualMods, ett_x11_rectangle, affectInternalVirtualMods_bits, byte_order);
24182 }
24183 *offsetp += 2;
24184 {
24185 static int* const internalVirtualMods_bits [] = {
24186 &hf_x11_xkb_SetControls_internalVirtualMods_mask_0,
24187 &hf_x11_xkb_SetControls_internalVirtualMods_mask_1,
24188 &hf_x11_xkb_SetControls_internalVirtualMods_mask_2,
24189 &hf_x11_xkb_SetControls_internalVirtualMods_mask_3,
24190 &hf_x11_xkb_SetControls_internalVirtualMods_mask_4,
24191 &hf_x11_xkb_SetControls_internalVirtualMods_mask_5,
24192 &hf_x11_xkb_SetControls_internalVirtualMods_mask_6,
24193 &hf_x11_xkb_SetControls_internalVirtualMods_mask_7,
24194 &hf_x11_xkb_SetControls_internalVirtualMods_mask_8,
24195 &hf_x11_xkb_SetControls_internalVirtualMods_mask_9,
24196 &hf_x11_xkb_SetControls_internalVirtualMods_mask_10,
24197 &hf_x11_xkb_SetControls_internalVirtualMods_mask_11,
24198 &hf_x11_xkb_SetControls_internalVirtualMods_mask_12,
24199 &hf_x11_xkb_SetControls_internalVirtualMods_mask_13,
24200 &hf_x11_xkb_SetControls_internalVirtualMods_mask_14,
24201 &hf_x11_xkb_SetControls_internalVirtualMods_mask_15,
24202 NULL
24203 };
24204 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_internalVirtualMods, ett_x11_rectangle, internalVirtualMods_bits, byte_order);
24205 }
24206 *offsetp += 2;
24207 {
24208 static int* const affectIgnoreLockVirtualMods_bits [] = {
24209 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_0,
24210 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_1,
24211 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_2,
24212 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_3,
24213 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_4,
24214 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_5,
24215 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_6,
24216 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_7,
24217 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_8,
24218 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_9,
24219 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_10,
24220 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_11,
24221 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_12,
24222 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_13,
24223 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_14,
24224 &hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods_mask_15,
24225 NULL
24226 };
24227 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectIgnoreLockVirtualMods, ett_x11_rectangle, affectIgnoreLockVirtualMods_bits, byte_order);
24228 }
24229 *offsetp += 2;
24230 {
24231 static int* const ignoreLockVirtualMods_bits [] = {
24232 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_0,
24233 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_1,
24234 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_2,
24235 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_3,
24236 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_4,
24237 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_5,
24238 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_6,
24239 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_7,
24240 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_8,
24241 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_9,
24242 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_10,
24243 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_11,
24244 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_12,
24245 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_13,
24246 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_14,
24247 &hf_x11_xkb_SetControls_ignoreLockVirtualMods_mask_15,
24248 NULL
24249 };
24250 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_ignoreLockVirtualMods, ett_x11_rectangle, ignoreLockVirtualMods_bits, byte_order);
24251 }
24252 *offsetp += 2;
24253 proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysDfltBtn, tvb, *offsetp, 1, byte_order);
24254 *offsetp += 1;
24255 proto_tree_add_item(t, hf_x11_xkb_SetControls_groupsWrap, tvb, *offsetp, 1, byte_order);
24256 *offsetp += 1;
24257 {
24258 static int* const accessXOptions_bits [] = {
24259 &hf_x11_xkb_SetControls_accessXOptions_mask_SKPressFB,
24260 &hf_x11_xkb_SetControls_accessXOptions_mask_SKAcceptFB,
24261 &hf_x11_xkb_SetControls_accessXOptions_mask_FeatureFB,
24262 &hf_x11_xkb_SetControls_accessXOptions_mask_SlowWarnFB,
24263 &hf_x11_xkb_SetControls_accessXOptions_mask_IndicatorFB,
24264 &hf_x11_xkb_SetControls_accessXOptions_mask_StickyKeysFB,
24265 &hf_x11_xkb_SetControls_accessXOptions_mask_TwoKeys,
24266 &hf_x11_xkb_SetControls_accessXOptions_mask_LatchToLock,
24267 &hf_x11_xkb_SetControls_accessXOptions_mask_SKReleaseFB,
24268 &hf_x11_xkb_SetControls_accessXOptions_mask_SKRejectFB,
24269 &hf_x11_xkb_SetControls_accessXOptions_mask_BKRejectFB,
24270 &hf_x11_xkb_SetControls_accessXOptions_mask_DumbBell,
24271 NULL
24272 };
24273 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXOptions, ett_x11_rectangle, accessXOptions_bits, byte_order);
24274 }
24275 *offsetp += 2;
24276 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24277 *offsetp += 2;
24278 {
24279 static int* const affectEnabledControls_bits [] = {
24280 &hf_x11_xkb_SetControls_affectEnabledControls_mask_RepeatKeys,
24281 &hf_x11_xkb_SetControls_affectEnabledControls_mask_SlowKeys,
24282 &hf_x11_xkb_SetControls_affectEnabledControls_mask_BounceKeys,
24283 &hf_x11_xkb_SetControls_affectEnabledControls_mask_StickyKeys,
24284 &hf_x11_xkb_SetControls_affectEnabledControls_mask_MouseKeys,
24285 &hf_x11_xkb_SetControls_affectEnabledControls_mask_MouseKeysAccel,
24286 &hf_x11_xkb_SetControls_affectEnabledControls_mask_AccessXKeys,
24287 &hf_x11_xkb_SetControls_affectEnabledControls_mask_AccessXTimeoutMask,
24288 &hf_x11_xkb_SetControls_affectEnabledControls_mask_AccessXFeedbackMask,
24289 &hf_x11_xkb_SetControls_affectEnabledControls_mask_AudibleBellMask,
24290 &hf_x11_xkb_SetControls_affectEnabledControls_mask_Overlay1Mask,
24291 &hf_x11_xkb_SetControls_affectEnabledControls_mask_Overlay2Mask,
24292 &hf_x11_xkb_SetControls_affectEnabledControls_mask_IgnoreGroupLockMask,
24293 NULL
24294 };
24295 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_affectEnabledControls, ett_x11_rectangle, affectEnabledControls_bits, byte_order);
24296 }
24297 *offsetp += 4;
24298 {
24299 static int* const enabledControls_bits [] = {
24300 &hf_x11_xkb_SetControls_enabledControls_mask_RepeatKeys,
24301 &hf_x11_xkb_SetControls_enabledControls_mask_SlowKeys,
24302 &hf_x11_xkb_SetControls_enabledControls_mask_BounceKeys,
24303 &hf_x11_xkb_SetControls_enabledControls_mask_StickyKeys,
24304 &hf_x11_xkb_SetControls_enabledControls_mask_MouseKeys,
24305 &hf_x11_xkb_SetControls_enabledControls_mask_MouseKeysAccel,
24306 &hf_x11_xkb_SetControls_enabledControls_mask_AccessXKeys,
24307 &hf_x11_xkb_SetControls_enabledControls_mask_AccessXTimeoutMask,
24308 &hf_x11_xkb_SetControls_enabledControls_mask_AccessXFeedbackMask,
24309 &hf_x11_xkb_SetControls_enabledControls_mask_AudibleBellMask,
24310 &hf_x11_xkb_SetControls_enabledControls_mask_Overlay1Mask,
24311 &hf_x11_xkb_SetControls_enabledControls_mask_Overlay2Mask,
24312 &hf_x11_xkb_SetControls_enabledControls_mask_IgnoreGroupLockMask,
24313 NULL
24314 };
24315 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_enabledControls, ett_x11_rectangle, enabledControls_bits, byte_order);
24316 }
24317 *offsetp += 4;
24318 {
24319 static int* const changeControls_bits [] = {
24320 &hf_x11_xkb_SetControls_changeControls_mask_GroupsWrap,
24321 &hf_x11_xkb_SetControls_changeControls_mask_InternalMods,
24322 &hf_x11_xkb_SetControls_changeControls_mask_IgnoreLockMods,
24323 &hf_x11_xkb_SetControls_changeControls_mask_PerKeyRepeat,
24324 &hf_x11_xkb_SetControls_changeControls_mask_ControlsEnabled,
24325 NULL
24326 };
24327 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_changeControls, ett_x11_rectangle, changeControls_bits, byte_order);
24328 }
24329 *offsetp += 4;
24330 proto_tree_add_item(t, hf_x11_xkb_SetControls_repeatDelay, tvb, *offsetp, 2, byte_order);
24331 *offsetp += 2;
24332 proto_tree_add_item(t, hf_x11_xkb_SetControls_repeatInterval, tvb, *offsetp, 2, byte_order);
24333 *offsetp += 2;
24334 proto_tree_add_item(t, hf_x11_xkb_SetControls_slowKeysDelay, tvb, *offsetp, 2, byte_order);
24335 *offsetp += 2;
24336 proto_tree_add_item(t, hf_x11_xkb_SetControls_debounceDelay, tvb, *offsetp, 2, byte_order);
24337 *offsetp += 2;
24338 proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysDelay, tvb, *offsetp, 2, byte_order);
24339 *offsetp += 2;
24340 proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysInterval, tvb, *offsetp, 2, byte_order);
24341 *offsetp += 2;
24342 proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysTimeToMax, tvb, *offsetp, 2, byte_order);
24343 *offsetp += 2;
24344 proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysMaxSpeed, tvb, *offsetp, 2, byte_order);
24345 *offsetp += 2;
24346 proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysCurve, tvb, *offsetp, 2, byte_order);
24347 *offsetp += 2;
24348 proto_tree_add_item(t, hf_x11_xkb_SetControls_accessXTimeout, tvb, *offsetp, 2, byte_order);
24349 *offsetp += 2;
24350 {
24351 static int* const accessXTimeoutMask_bits [] = {
24352 &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_RepeatKeys,
24353 &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_SlowKeys,
24354 &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_BounceKeys,
24355 &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_StickyKeys,
24356 &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_MouseKeys,
24357 &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_MouseKeysAccel,
24358 &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_AccessXKeys,
24359 &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_AccessXTimeoutMask,
24360 &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_AccessXFeedbackMask,
24361 &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_AudibleBellMask,
24362 &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_Overlay1Mask,
24363 &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_Overlay2Mask,
24364 &hf_x11_xkb_SetControls_accessXTimeoutMask_mask_IgnoreGroupLockMask,
24365 NULL
24366 };
24367 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXTimeoutMask, ett_x11_rectangle, accessXTimeoutMask_bits, byte_order);
24368 }
24369 *offsetp += 4;
24370 {
24371 static int* const accessXTimeoutValues_bits [] = {
24372 &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_RepeatKeys,
24373 &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_SlowKeys,
24374 &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_BounceKeys,
24375 &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_StickyKeys,
24376 &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_MouseKeys,
24377 &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_MouseKeysAccel,
24378 &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_AccessXKeys,
24379 &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_AccessXTimeoutMask,
24380 &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_AccessXFeedbackMask,
24381 &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_AudibleBellMask,
24382 &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_Overlay1Mask,
24383 &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_Overlay2Mask,
24384 &hf_x11_xkb_SetControls_accessXTimeoutValues_mask_IgnoreGroupLockMask,
24385 NULL
24386 };
24387 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXTimeoutValues, ett_x11_rectangle, accessXTimeoutValues_bits, byte_order);
24388 }
24389 *offsetp += 4;
24390 {
24391 static int* const accessXTimeoutOptionsMask_bits [] = {
24392 &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SKPressFB,
24393 &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SKAcceptFB,
24394 &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_FeatureFB,
24395 &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SlowWarnFB,
24396 &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_IndicatorFB,
24397 &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_StickyKeysFB,
24398 &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_TwoKeys,
24399 &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_LatchToLock,
24400 &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SKReleaseFB,
24401 &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_SKRejectFB,
24402 &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_BKRejectFB,
24403 &hf_x11_xkb_SetControls_accessXTimeoutOptionsMask_mask_DumbBell,
24404 NULL
24405 };
24406 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXTimeoutOptionsMask, ett_x11_rectangle, accessXTimeoutOptionsMask_bits, byte_order);
24407 }
24408 *offsetp += 2;
24409 {
24410 static int* const accessXTimeoutOptionsValues_bits [] = {
24411 &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SKPressFB,
24412 &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SKAcceptFB,
24413 &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_FeatureFB,
24414 &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SlowWarnFB,
24415 &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_IndicatorFB,
24416 &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_StickyKeysFB,
24417 &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_TwoKeys,
24418 &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_LatchToLock,
24419 &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SKReleaseFB,
24420 &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_SKRejectFB,
24421 &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_BKRejectFB,
24422 &hf_x11_xkb_SetControls_accessXTimeoutOptionsValues_mask_DumbBell,
24423 NULL
24424 };
24425 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetControls_accessXTimeoutOptionsValues, ett_x11_rectangle, accessXTimeoutOptionsValues_bits, byte_order);
24426 }
24427 *offsetp += 2;
24428 listOfByte(tvb, offsetp, t, hf_x11_xkb_SetControls_perKeyRepeat, 32, byte_order);
24429 length -= 32 * 1;
24430}
24431
24432static void xkbGetMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
24433{
24434 proto_tree_add_item(t, hf_x11_xkb_GetMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24435 *offsetp += 2;
24436 {
24437 static int* const full_bits [] = {
24438 &hf_x11_xkb_GetMap_full_mask_KeyTypes,
24439 &hf_x11_xkb_GetMap_full_mask_KeySyms,
24440 &hf_x11_xkb_GetMap_full_mask_ModifierMap,
24441 &hf_x11_xkb_GetMap_full_mask_ExplicitComponents,
24442 &hf_x11_xkb_GetMap_full_mask_KeyActions,
24443 &hf_x11_xkb_GetMap_full_mask_KeyBehaviors,
24444 &hf_x11_xkb_GetMap_full_mask_VirtualMods,
24445 &hf_x11_xkb_GetMap_full_mask_VirtualModMap,
24446 NULL
24447 };
24448 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_full, ett_x11_rectangle, full_bits, byte_order);
24449 }
24450 *offsetp += 2;
24451 {
24452 static int* const partial_bits [] = {
24453 &hf_x11_xkb_GetMap_partial_mask_KeyTypes,
24454 &hf_x11_xkb_GetMap_partial_mask_KeySyms,
24455 &hf_x11_xkb_GetMap_partial_mask_ModifierMap,
24456 &hf_x11_xkb_GetMap_partial_mask_ExplicitComponents,
24457 &hf_x11_xkb_GetMap_partial_mask_KeyActions,
24458 &hf_x11_xkb_GetMap_partial_mask_KeyBehaviors,
24459 &hf_x11_xkb_GetMap_partial_mask_VirtualMods,
24460 &hf_x11_xkb_GetMap_partial_mask_VirtualModMap,
24461 NULL
24462 };
24463 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_partial, ett_x11_rectangle, partial_bits, byte_order);
24464 }
24465 *offsetp += 2;
24466 proto_tree_add_item(t, hf_x11_xkb_GetMap_firstType, tvb, *offsetp, 1, byte_order);
24467 *offsetp += 1;
24468 proto_tree_add_item(t, hf_x11_xkb_GetMap_nTypes, tvb, *offsetp, 1, byte_order);
24469 *offsetp += 1;
24470 proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeySym, tvb, *offsetp, 1, byte_order);
24471 *offsetp += 1;
24472 proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeySyms, tvb, *offsetp, 1, byte_order);
24473 *offsetp += 1;
24474 proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeyAction, tvb, *offsetp, 1, byte_order);
24475 *offsetp += 1;
24476 proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeyActions, tvb, *offsetp, 1, byte_order);
24477 *offsetp += 1;
24478 proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
24479 *offsetp += 1;
24480 proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeyBehaviors, tvb, *offsetp, 1, byte_order);
24481 *offsetp += 1;
24482 {
24483 static int* const virtualMods_bits [] = {
24484 &hf_x11_xkb_GetMap_virtualMods_mask_0,
24485 &hf_x11_xkb_GetMap_virtualMods_mask_1,
24486 &hf_x11_xkb_GetMap_virtualMods_mask_2,
24487 &hf_x11_xkb_GetMap_virtualMods_mask_3,
24488 &hf_x11_xkb_GetMap_virtualMods_mask_4,
24489 &hf_x11_xkb_GetMap_virtualMods_mask_5,
24490 &hf_x11_xkb_GetMap_virtualMods_mask_6,
24491 &hf_x11_xkb_GetMap_virtualMods_mask_7,
24492 &hf_x11_xkb_GetMap_virtualMods_mask_8,
24493 &hf_x11_xkb_GetMap_virtualMods_mask_9,
24494 &hf_x11_xkb_GetMap_virtualMods_mask_10,
24495 &hf_x11_xkb_GetMap_virtualMods_mask_11,
24496 &hf_x11_xkb_GetMap_virtualMods_mask_12,
24497 &hf_x11_xkb_GetMap_virtualMods_mask_13,
24498 &hf_x11_xkb_GetMap_virtualMods_mask_14,
24499 &hf_x11_xkb_GetMap_virtualMods_mask_15,
24500 NULL
24501 };
24502 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
24503 }
24504 *offsetp += 2;
24505 proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
24506 *offsetp += 1;
24507 proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeyExplicit, tvb, *offsetp, 1, byte_order);
24508 *offsetp += 1;
24509 proto_tree_add_item(t, hf_x11_xkb_GetMap_firstModMapKey, tvb, *offsetp, 1, byte_order);
24510 *offsetp += 1;
24511 proto_tree_add_item(t, hf_x11_xkb_GetMap_nModMapKeys, tvb, *offsetp, 1, byte_order);
24512 *offsetp += 1;
24513 proto_tree_add_item(t, hf_x11_xkb_GetMap_firstVModMapKey, tvb, *offsetp, 1, byte_order);
24514 *offsetp += 1;
24515 proto_tree_add_item(t, hf_x11_xkb_GetMap_nVModMapKeys, tvb, *offsetp, 1, byte_order);
24516 *offsetp += 1;
24517 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24518 *offsetp += 2;
24519}
24520static void xkbGetMap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
24521{
24522 int sequence_number;
24523 int f_present;
24524 int f_nTypes;
24525 int f_nKeySyms;
24526 int f_totalActions;
24527 int f_nKeyActions;
24528 int f_totalKeyBehaviors;
24529 int f_totalKeyExplicit;
24530 int f_totalModMapKeys;
24531 int f_totalVModMapKeys;
24532 int f_virtualMods;
24533
24534 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMap");
24535
24536 REPLY(reply);
24537 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_deviceID, tvb, *offsetp, 1, byte_order);
24538 *offsetp += 1;
24539 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
24540 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24541 "%d (xkb-GetMap)", sequence_number);
24542 *offsetp += 2;
24543 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24544 *offsetp += 4;
24545 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24546 *offsetp += 2;
24547 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_minKeyCode, tvb, *offsetp, 1, byte_order);
24548 *offsetp += 1;
24549 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_maxKeyCode, tvb, *offsetp, 1, byte_order);
24550 *offsetp += 1;
24551 f_present = tvb_get_uint16(tvb, *offsetp, byte_order);
24552 {
24553 static int* const present_bits [] = {
24554 &hf_x11_xkb_GetMap_reply_present_mask_KeyTypes,
24555 &hf_x11_xkb_GetMap_reply_present_mask_KeySyms,
24556 &hf_x11_xkb_GetMap_reply_present_mask_ModifierMap,
24557 &hf_x11_xkb_GetMap_reply_present_mask_ExplicitComponents,
24558 &hf_x11_xkb_GetMap_reply_present_mask_KeyActions,
24559 &hf_x11_xkb_GetMap_reply_present_mask_KeyBehaviors,
24560 &hf_x11_xkb_GetMap_reply_present_mask_VirtualMods,
24561 &hf_x11_xkb_GetMap_reply_present_mask_VirtualModMap,
24562 NULL
24563 };
24564 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_reply_present, ett_x11_rectangle, present_bits, byte_order);
24565 }
24566 *offsetp += 2;
24567 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstType, tvb, *offsetp, 1, byte_order);
24568 *offsetp += 1;
24569 f_nTypes = tvb_get_uint8(tvb, *offsetp);
24570 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nTypes, tvb, *offsetp, 1, byte_order);
24571 *offsetp += 1;
24572 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalTypes, tvb, *offsetp, 1, byte_order);
24573 *offsetp += 1;
24574 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeySym, tvb, *offsetp, 1, byte_order);
24575 *offsetp += 1;
24576 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalSyms, tvb, *offsetp, 2, byte_order);
24577 *offsetp += 2;
24578 f_nKeySyms = tvb_get_uint8(tvb, *offsetp);
24579 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeySyms, tvb, *offsetp, 1, byte_order);
24580 *offsetp += 1;
24581 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeyAction, tvb, *offsetp, 1, byte_order);
24582 *offsetp += 1;
24583 f_totalActions = tvb_get_uint16(tvb, *offsetp, byte_order);
24584 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalActions, tvb, *offsetp, 2, byte_order);
24585 *offsetp += 2;
24586 f_nKeyActions = tvb_get_uint8(tvb, *offsetp);
24587 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeyActions, tvb, *offsetp, 1, byte_order);
24588 *offsetp += 1;
24589 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
24590 *offsetp += 1;
24591 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeyBehaviors, tvb, *offsetp, 1, byte_order);
24592 *offsetp += 1;
24593 f_totalKeyBehaviors = tvb_get_uint8(tvb, *offsetp);
24594 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalKeyBehaviors, tvb, *offsetp, 1, byte_order);
24595 *offsetp += 1;
24596 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
24597 *offsetp += 1;
24598 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeyExplicit, tvb, *offsetp, 1, byte_order);
24599 *offsetp += 1;
24600 f_totalKeyExplicit = tvb_get_uint8(tvb, *offsetp);
24601 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalKeyExplicit, tvb, *offsetp, 1, byte_order);
24602 *offsetp += 1;
24603 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstModMapKey, tvb, *offsetp, 1, byte_order);
24604 *offsetp += 1;
24605 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nModMapKeys, tvb, *offsetp, 1, byte_order);
24606 *offsetp += 1;
24607 f_totalModMapKeys = tvb_get_uint8(tvb, *offsetp);
24608 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalModMapKeys, tvb, *offsetp, 1, byte_order);
24609 *offsetp += 1;
24610 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstVModMapKey, tvb, *offsetp, 1, byte_order);
24611 *offsetp += 1;
24612 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nVModMapKeys, tvb, *offsetp, 1, byte_order);
24613 *offsetp += 1;
24614 f_totalVModMapKeys = tvb_get_uint8(tvb, *offsetp);
24615 proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalVModMapKeys, tvb, *offsetp, 1, byte_order);
24616 *offsetp += 1;
24617 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
24618 *offsetp += 1;
24619 f_virtualMods = tvb_get_uint16(tvb, *offsetp, byte_order);
24620 {
24621 static int* const virtualMods_bits [] = {
24622 &hf_x11_xkb_GetMap_reply_virtualMods_mask_0,
24623 &hf_x11_xkb_GetMap_reply_virtualMods_mask_1,
24624 &hf_x11_xkb_GetMap_reply_virtualMods_mask_2,
24625 &hf_x11_xkb_GetMap_reply_virtualMods_mask_3,
24626 &hf_x11_xkb_GetMap_reply_virtualMods_mask_4,
24627 &hf_x11_xkb_GetMap_reply_virtualMods_mask_5,
24628 &hf_x11_xkb_GetMap_reply_virtualMods_mask_6,
24629 &hf_x11_xkb_GetMap_reply_virtualMods_mask_7,
24630 &hf_x11_xkb_GetMap_reply_virtualMods_mask_8,
24631 &hf_x11_xkb_GetMap_reply_virtualMods_mask_9,
24632 &hf_x11_xkb_GetMap_reply_virtualMods_mask_10,
24633 &hf_x11_xkb_GetMap_reply_virtualMods_mask_11,
24634 &hf_x11_xkb_GetMap_reply_virtualMods_mask_12,
24635 &hf_x11_xkb_GetMap_reply_virtualMods_mask_13,
24636 &hf_x11_xkb_GetMap_reply_virtualMods_mask_14,
24637 &hf_x11_xkb_GetMap_reply_virtualMods_mask_15,
24638 NULL
24639 };
24640 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetMap_reply_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
24641 }
24642 *offsetp += 2;
24643 if (f_present & (1U << 0)) {
24644 struct_xkb_KeyType(tvb, offsetp, t, byte_order, f_nTypes);
24645 }
24646 if (f_present & (1U << 1)) {
24647 struct_xkb_KeySymMap(tvb, offsetp, t, byte_order, f_nKeySyms);
24648 }
24649 if (f_present & (1U << 4)) {
24650 listOfByte(tvb, offsetp, t, hf_x11_xkb_GetMap_reply_KeyActions_acts_rtrn_count, f_nKeyActions, byte_order);
24651 pad_to_4_bytes(tvb, offsetp, t);
24652 struct_xkb_Action(tvb, offsetp, t, byte_order, f_totalActions);
24653 }
24654 if (f_present & (1U << 5)) {
24655 struct_xkb_SetBehavior(tvb, offsetp, t, byte_order, f_totalKeyBehaviors);
24656 }
24657 if (f_present & (1U << 6)) {
24658 listOfByte(tvb, offsetp, t, hf_x11_xkb_GetMap_reply_VirtualMods_vmods_rtrn, ws_count_ones(f_virtualMods), byte_order);
24659 pad_to_4_bytes(tvb, offsetp, t);
24660 }
24661 if (f_present & (1U << 3)) {
24662 struct_xkb_SetExplicit(tvb, offsetp, t, byte_order, f_totalKeyExplicit);
24663 pad_to_4_bytes(tvb, offsetp, t);
24664 }
24665 if (f_present & (1U << 2)) {
24666 struct_xkb_KeyModMap(tvb, offsetp, t, byte_order, f_totalModMapKeys);
24667 pad_to_4_bytes(tvb, offsetp, t);
24668 }
24669 if (f_present & (1U << 7)) {
24670 struct_xkb_KeyVModMap(tvb, offsetp, t, byte_order, f_totalVModMapKeys);
24671 }
24672}
24673
24674static void xkbSetMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
24675{
24676 int f_present;
24677 int f_nTypes;
24678 int f_nKeySyms;
24679 int f_nKeyActions;
24680 int f_totalActions;
24681 int f_totalKeyBehaviors;
24682 int f_totalKeyExplicit;
24683 int f_totalModMapKeys;
24684 int f_totalVModMapKeys;
24685 int f_virtualMods;
24686 proto_tree_add_item(t, hf_x11_xkb_SetMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24687 *offsetp += 2;
24688 f_present = tvb_get_uint16(tvb, *offsetp, byte_order);
24689 {
24690 static int* const present_bits [] = {
24691 &hf_x11_xkb_SetMap_present_mask_KeyTypes,
24692 &hf_x11_xkb_SetMap_present_mask_KeySyms,
24693 &hf_x11_xkb_SetMap_present_mask_ModifierMap,
24694 &hf_x11_xkb_SetMap_present_mask_ExplicitComponents,
24695 &hf_x11_xkb_SetMap_present_mask_KeyActions,
24696 &hf_x11_xkb_SetMap_present_mask_KeyBehaviors,
24697 &hf_x11_xkb_SetMap_present_mask_VirtualMods,
24698 &hf_x11_xkb_SetMap_present_mask_VirtualModMap,
24699 NULL
24700 };
24701 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetMap_present, ett_x11_rectangle, present_bits, byte_order);
24702 }
24703 *offsetp += 2;
24704 {
24705 static int* const flags_bits [] = {
24706 &hf_x11_xkb_SetMap_flags_mask_ResizeTypes,
24707 &hf_x11_xkb_SetMap_flags_mask_RecomputeActions,
24708 NULL
24709 };
24710 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetMap_flags, ett_x11_rectangle, flags_bits, byte_order);
24711 }
24712 *offsetp += 2;
24713 proto_tree_add_item(t, hf_x11_xkb_SetMap_minKeyCode, tvb, *offsetp, 1, byte_order);
24714 *offsetp += 1;
24715 proto_tree_add_item(t, hf_x11_xkb_SetMap_maxKeyCode, tvb, *offsetp, 1, byte_order);
24716 *offsetp += 1;
24717 proto_tree_add_item(t, hf_x11_xkb_SetMap_firstType, tvb, *offsetp, 1, byte_order);
24718 *offsetp += 1;
24719 f_nTypes = tvb_get_uint8(tvb, *offsetp);
24720 proto_tree_add_item(t, hf_x11_xkb_SetMap_nTypes, tvb, *offsetp, 1, byte_order);
24721 *offsetp += 1;
24722 proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeySym, tvb, *offsetp, 1, byte_order);
24723 *offsetp += 1;
24724 f_nKeySyms = tvb_get_uint8(tvb, *offsetp);
24725 proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeySyms, tvb, *offsetp, 1, byte_order);
24726 *offsetp += 1;
24727 proto_tree_add_item(t, hf_x11_xkb_SetMap_totalSyms, tvb, *offsetp, 2, byte_order);
24728 *offsetp += 2;
24729 proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeyAction, tvb, *offsetp, 1, byte_order);
24730 *offsetp += 1;
24731 f_nKeyActions = tvb_get_uint8(tvb, *offsetp);
24732 proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeyActions, tvb, *offsetp, 1, byte_order);
24733 *offsetp += 1;
24734 f_totalActions = tvb_get_uint16(tvb, *offsetp, byte_order);
24735 proto_tree_add_item(t, hf_x11_xkb_SetMap_totalActions, tvb, *offsetp, 2, byte_order);
24736 *offsetp += 2;
24737 proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
24738 *offsetp += 1;
24739 proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeyBehaviors, tvb, *offsetp, 1, byte_order);
24740 *offsetp += 1;
24741 f_totalKeyBehaviors = tvb_get_uint8(tvb, *offsetp);
24742 proto_tree_add_item(t, hf_x11_xkb_SetMap_totalKeyBehaviors, tvb, *offsetp, 1, byte_order);
24743 *offsetp += 1;
24744 proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
24745 *offsetp += 1;
24746 proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeyExplicit, tvb, *offsetp, 1, byte_order);
24747 *offsetp += 1;
24748 f_totalKeyExplicit = tvb_get_uint8(tvb, *offsetp);
24749 proto_tree_add_item(t, hf_x11_xkb_SetMap_totalKeyExplicit, tvb, *offsetp, 1, byte_order);
24750 *offsetp += 1;
24751 proto_tree_add_item(t, hf_x11_xkb_SetMap_firstModMapKey, tvb, *offsetp, 1, byte_order);
24752 *offsetp += 1;
24753 proto_tree_add_item(t, hf_x11_xkb_SetMap_nModMapKeys, tvb, *offsetp, 1, byte_order);
24754 *offsetp += 1;
24755 f_totalModMapKeys = tvb_get_uint8(tvb, *offsetp);
24756 proto_tree_add_item(t, hf_x11_xkb_SetMap_totalModMapKeys, tvb, *offsetp, 1, byte_order);
24757 *offsetp += 1;
24758 proto_tree_add_item(t, hf_x11_xkb_SetMap_firstVModMapKey, tvb, *offsetp, 1, byte_order);
24759 *offsetp += 1;
24760 proto_tree_add_item(t, hf_x11_xkb_SetMap_nVModMapKeys, tvb, *offsetp, 1, byte_order);
24761 *offsetp += 1;
24762 f_totalVModMapKeys = tvb_get_uint8(tvb, *offsetp);
24763 proto_tree_add_item(t, hf_x11_xkb_SetMap_totalVModMapKeys, tvb, *offsetp, 1, byte_order);
24764 *offsetp += 1;
24765 f_virtualMods = tvb_get_uint16(tvb, *offsetp, byte_order);
24766 {
24767 static int* const virtualMods_bits [] = {
24768 &hf_x11_xkb_SetMap_virtualMods_mask_0,
24769 &hf_x11_xkb_SetMap_virtualMods_mask_1,
24770 &hf_x11_xkb_SetMap_virtualMods_mask_2,
24771 &hf_x11_xkb_SetMap_virtualMods_mask_3,
24772 &hf_x11_xkb_SetMap_virtualMods_mask_4,
24773 &hf_x11_xkb_SetMap_virtualMods_mask_5,
24774 &hf_x11_xkb_SetMap_virtualMods_mask_6,
24775 &hf_x11_xkb_SetMap_virtualMods_mask_7,
24776 &hf_x11_xkb_SetMap_virtualMods_mask_8,
24777 &hf_x11_xkb_SetMap_virtualMods_mask_9,
24778 &hf_x11_xkb_SetMap_virtualMods_mask_10,
24779 &hf_x11_xkb_SetMap_virtualMods_mask_11,
24780 &hf_x11_xkb_SetMap_virtualMods_mask_12,
24781 &hf_x11_xkb_SetMap_virtualMods_mask_13,
24782 &hf_x11_xkb_SetMap_virtualMods_mask_14,
24783 &hf_x11_xkb_SetMap_virtualMods_mask_15,
24784 NULL
24785 };
24786 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetMap_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
24787 }
24788 *offsetp += 2;
24789 if (f_present & (1U << 0)) {
24790 struct_xkb_SetKeyType(tvb, offsetp, t, byte_order, f_nTypes);
24791 length -= f_nTypes * 0;
24792 }
24793 if (f_present & (1U << 1)) {
24794 struct_xkb_KeySymMap(tvb, offsetp, t, byte_order, f_nKeySyms);
24795 length -= f_nKeySyms * 0;
24796 }
24797 if (f_present & (1U << 4)) {
24798 listOfByte(tvb, offsetp, t, hf_x11_xkb_SetMap_KeyActions_actionsCount, f_nKeyActions, byte_order);
24799 length -= f_nKeyActions * 1;
24800 pad_to_4_bytes(tvb, offsetp, t);
24801 length = WS_ROUNDUP_4(length);
24802 struct_xkb_Action(tvb, offsetp, t, byte_order, f_totalActions);
24803 length -= f_totalActions * 8;
24804 }
24805 if (f_present & (1U << 5)) {
24806 struct_xkb_SetBehavior(tvb, offsetp, t, byte_order, f_totalKeyBehaviors);
24807 length -= f_totalKeyBehaviors * 4;
24808 }
24809 if (f_present & (1U << 6)) {
24810 listOfByte(tvb, offsetp, t, hf_x11_xkb_SetMap_VirtualMods_vmods, ws_count_ones(f_virtualMods), byte_order);
24811 length -= ws_count_ones(f_virtualMods) * 1;
24812 pad_to_4_bytes(tvb, offsetp, t);
24813 length = WS_ROUNDUP_4(length);
24814 }
24815 if (f_present & (1U << 3)) {
24816 struct_xkb_SetExplicit(tvb, offsetp, t, byte_order, f_totalKeyExplicit);
24817 length -= f_totalKeyExplicit * 2;
24818 }
24819 if (f_present & (1U << 2)) {
24820 struct_xkb_KeyModMap(tvb, offsetp, t, byte_order, f_totalModMapKeys);
24821 length -= f_totalModMapKeys * 2;
24822 }
24823 if (f_present & (1U << 7)) {
24824 struct_xkb_KeyVModMap(tvb, offsetp, t, byte_order, f_totalVModMapKeys);
24825 length -= f_totalVModMapKeys * 4;
24826 }
24827}
24828
24829static void xkbGetCompatMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
24830{
24831 proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24832 *offsetp += 2;
24833 {
24834 static int* const groups_bits [] = {
24835 &hf_x11_xkb_GetCompatMap_groups_mask_Group1,
24836 &hf_x11_xkb_GetCompatMap_groups_mask_Group2,
24837 &hf_x11_xkb_GetCompatMap_groups_mask_Group3,
24838 &hf_x11_xkb_GetCompatMap_groups_mask_Group4,
24839 NULL
24840 };
24841 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetCompatMap_groups, ett_x11_rectangle, groups_bits, byte_order);
24842 }
24843 *offsetp += 1;
24844 proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_getAllSI, tvb, *offsetp, 1, byte_order);
24845 *offsetp += 1;
24846 proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_firstSI, tvb, *offsetp, 2, byte_order);
24847 *offsetp += 2;
24848 proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_nSI, tvb, *offsetp, 2, byte_order);
24849 *offsetp += 2;
24850}
24851static void xkbGetCompatMap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
24852{
24853 int sequence_number;
24854 int f_groupsRtrn;
24855 int f_nSIRtrn;
24856
24857 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCompatMap");
24858
24859 REPLY(reply);
24860 proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_deviceID, tvb, *offsetp, 1, byte_order);
24861 *offsetp += 1;
24862 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
24863 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24864 "%d (xkb-GetCompatMap)", sequence_number);
24865 *offsetp += 2;
24866 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24867 *offsetp += 4;
24868 f_groupsRtrn = tvb_get_uint8(tvb, *offsetp);
24869 {
24870 static int* const groupsRtrn_bits [] = {
24871 &hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group1,
24872 &hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group2,
24873 &hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group3,
24874 &hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group4,
24875 NULL
24876 };
24877 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetCompatMap_reply_groupsRtrn, ett_x11_rectangle, groupsRtrn_bits, byte_order);
24878 }
24879 *offsetp += 1;
24880 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
24881 *offsetp += 1;
24882 proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_firstSIRtrn, tvb, *offsetp, 2, byte_order);
24883 *offsetp += 2;
24884 f_nSIRtrn = tvb_get_uint16(tvb, *offsetp, byte_order);
24885 proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_nSIRtrn, tvb, *offsetp, 2, byte_order);
24886 *offsetp += 2;
24887 proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_nTotalSI, tvb, *offsetp, 2, byte_order);
24888 *offsetp += 2;
24889 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
24890 *offsetp += 16;
24891 struct_xkb_SymInterpret(tvb, offsetp, t, byte_order, f_nSIRtrn);
24892 struct_xkb_ModDef(tvb, offsetp, t, byte_order, ws_count_ones(f_groupsRtrn));
24893}
24894
24895static void xkbSetCompatMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
24896{
24897 int f_groups;
24898 int f_nSI;
24899 proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24900 *offsetp += 2;
24901 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
24902 *offsetp += 1;
24903 proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_recomputeActions, tvb, *offsetp, 1, byte_order);
24904 *offsetp += 1;
24905 proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_truncateSI, tvb, *offsetp, 1, byte_order);
24906 *offsetp += 1;
24907 f_groups = tvb_get_uint8(tvb, *offsetp);
24908 {
24909 static int* const groups_bits [] = {
24910 &hf_x11_xkb_SetCompatMap_groups_mask_Group1,
24911 &hf_x11_xkb_SetCompatMap_groups_mask_Group2,
24912 &hf_x11_xkb_SetCompatMap_groups_mask_Group3,
24913 &hf_x11_xkb_SetCompatMap_groups_mask_Group4,
24914 NULL
24915 };
24916 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetCompatMap_groups, ett_x11_rectangle, groups_bits, byte_order);
24917 }
24918 *offsetp += 1;
24919 proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_firstSI, tvb, *offsetp, 2, byte_order);
24920 *offsetp += 2;
24921 f_nSI = tvb_get_uint16(tvb, *offsetp, byte_order);
24922 proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_nSI, tvb, *offsetp, 2, byte_order);
24923 *offsetp += 2;
24924 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24925 *offsetp += 2;
24926 struct_xkb_SymInterpret(tvb, offsetp, t, byte_order, f_nSI);
24927 length -= f_nSI * 16;
24928 struct_xkb_ModDef(tvb, offsetp, t, byte_order, ws_count_ones(f_groups));
24929 length -= ws_count_ones(f_groups) * 4;
24930}
24931
24932static void xkbGetIndicatorState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
24933{
24934 proto_tree_add_item(t, hf_x11_xkb_GetIndicatorState_deviceSpec, tvb, *offsetp, 2, byte_order);
24935 *offsetp += 2;
24936 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24937 *offsetp += 2;
24938}
24939static void xkbGetIndicatorState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
24940{
24941 int sequence_number;
24942
24943 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetIndicatorState");
24944
24945 REPLY(reply);
24946 proto_tree_add_item(t, hf_x11_xkb_GetIndicatorState_reply_deviceID, tvb, *offsetp, 1, byte_order);
24947 *offsetp += 1;
24948 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
24949 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24950 "%d (xkb-GetIndicatorState)", sequence_number);
24951 *offsetp += 2;
24952 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24953 *offsetp += 4;
24954 proto_tree_add_item(t, hf_x11_xkb_GetIndicatorState_reply_state, tvb, *offsetp, 4, byte_order);
24955 *offsetp += 4;
24956 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
24957 *offsetp += 20;
24958}
24959
24960static void xkbGetIndicatorMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
24961{
24962 proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_deviceSpec, tvb, *offsetp, 2, byte_order);
24963 *offsetp += 2;
24964 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
24965 *offsetp += 2;
24966 proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_which, tvb, *offsetp, 4, byte_order);
24967 *offsetp += 4;
24968}
24969static void xkbGetIndicatorMap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
24970{
24971 int sequence_number;
24972 int f_which;
24973
24974 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetIndicatorMap");
24975
24976 REPLY(reply);
24977 proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_deviceID, tvb, *offsetp, 1, byte_order);
24978 *offsetp += 1;
24979 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
24980 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
24981 "%d (xkb-GetIndicatorMap)", sequence_number);
24982 *offsetp += 2;
24983 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
24984 *offsetp += 4;
24985 f_which = tvb_get_uint32(tvb, *offsetp, byte_order);
24986 proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_which, tvb, *offsetp, 4, byte_order);
24987 *offsetp += 4;
24988 proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_realIndicators, tvb, *offsetp, 4, byte_order);
24989 *offsetp += 4;
24990 proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_nIndicators, tvb, *offsetp, 1, byte_order);
24991 *offsetp += 1;
24992 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
24993 *offsetp += 15;
24994 struct_xkb_IndicatorMap(tvb, offsetp, t, byte_order, ws_count_ones(f_which));
24995}
24996
24997static void xkbSetIndicatorMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
24998{
24999 int f_which;
25000 proto_tree_add_item(t, hf_x11_xkb_SetIndicatorMap_deviceSpec, tvb, *offsetp, 2, byte_order);
25001 *offsetp += 2;
25002 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
25003 *offsetp += 2;
25004 f_which = tvb_get_uint32(tvb, *offsetp, byte_order);
25005 proto_tree_add_item(t, hf_x11_xkb_SetIndicatorMap_which, tvb, *offsetp, 4, byte_order);
25006 *offsetp += 4;
25007 struct_xkb_IndicatorMap(tvb, offsetp, t, byte_order, ws_count_ones(f_which));
25008 length -= ws_count_ones(f_which) * 12;
25009}
25010
25011static void xkbGetNamedIndicator(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
25012{
25013 proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_deviceSpec, tvb, *offsetp, 2, byte_order);
25014 *offsetp += 2;
25015 field16(tvb, offsetp, t, hf_x11_xkb_GetNamedIndicator_ledClass, byte_order);
25016 field16(tvb, offsetp, t, hf_x11_xkb_GetNamedIndicator_ledID, byte_order);
25017 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
25018 *offsetp += 2;
25019 proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_indicator, tvb, *offsetp, 4, byte_order);
25020 *offsetp += 4;
25021}
25022static void xkbGetNamedIndicator_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
25023{
25024 int sequence_number;
25025
25026 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetNamedIndicator");
25027
25028 REPLY(reply);
25029 proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_deviceID, tvb, *offsetp, 1, byte_order);
25030 *offsetp += 1;
25031 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
25032 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25033 "%d (xkb-GetNamedIndicator)", sequence_number);
25034 *offsetp += 2;
25035 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25036 *offsetp += 4;
25037 proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_indicator, tvb, *offsetp, 4, byte_order);
25038 *offsetp += 4;
25039 proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_found, tvb, *offsetp, 1, byte_order);
25040 *offsetp += 1;
25041 proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_on, tvb, *offsetp, 1, byte_order);
25042 *offsetp += 1;
25043 proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_realIndicator, tvb, *offsetp, 1, byte_order);
25044 *offsetp += 1;
25045 proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_ndx, tvb, *offsetp, 1, byte_order);
25046 *offsetp += 1;
25047 {
25048 static int* const map_flags_bits [] = {
25049 &hf_x11_xkb_GetNamedIndicator_reply_map_flags_mask_LEDDrivesKB,
25050 &hf_x11_xkb_GetNamedIndicator_reply_map_flags_mask_NoAutomatic,
25051 &hf_x11_xkb_GetNamedIndicator_reply_map_flags_mask_NoExplicit,
25052 NULL
25053 };
25054 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_flags, ett_x11_rectangle, map_flags_bits, byte_order);
25055 }
25056 *offsetp += 1;
25057 {
25058 static int* const map_whichGroups_bits [] = {
25059 &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseBase,
25060 &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseLatched,
25061 &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseLocked,
25062 &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseEffective,
25063 &hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseCompat,
25064 NULL
25065 };
25066 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups, ett_x11_rectangle, map_whichGroups_bits, byte_order);
25067 }
25068 *offsetp += 1;
25069 {
25070 static int* const map_groups_bits [] = {
25071 &hf_x11_xkb_GetNamedIndicator_reply_map_groups_mask_Any,
25072 NULL
25073 };
25074 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_groups, ett_x11_rectangle, map_groups_bits, byte_order);
25075 }
25076 *offsetp += 1;
25077 {
25078 static int* const map_whichMods_bits [] = {
25079 &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseBase,
25080 &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseLatched,
25081 &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseLocked,
25082 &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseEffective,
25083 &hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseCompat,
25084 NULL
25085 };
25086 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_whichMods, ett_x11_rectangle, map_whichMods_bits, byte_order);
25087 }
25088 *offsetp += 1;
25089 {
25090 static int* const map_mods_bits [] = {
25091 &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Shift,
25092 &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Lock,
25093 &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Control,
25094 &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_1,
25095 &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_2,
25096 &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_3,
25097 &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_4,
25098 &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_5,
25099 &hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Any,
25100 NULL
25101 };
25102 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_mods, ett_x11_rectangle, map_mods_bits, byte_order);
25103 }
25104 *offsetp += 1;
25105 {
25106 static int* const map_realMods_bits [] = {
25107 &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Shift,
25108 &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Lock,
25109 &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Control,
25110 &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_1,
25111 &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_2,
25112 &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_3,
25113 &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_4,
25114 &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_5,
25115 &hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Any,
25116 NULL
25117 };
25118 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_realMods, ett_x11_rectangle, map_realMods_bits, byte_order);
25119 }
25120 *offsetp += 1;
25121 {
25122 static int* const map_vmod_bits [] = {
25123 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_0,
25124 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_1,
25125 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_2,
25126 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_3,
25127 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_4,
25128 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_5,
25129 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_6,
25130 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_7,
25131 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_8,
25132 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_9,
25133 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_10,
25134 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_11,
25135 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_12,
25136 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_13,
25137 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_14,
25138 &hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_15,
25139 NULL
25140 };
25141 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_vmod, ett_x11_rectangle, map_vmod_bits, byte_order);
25142 }
25143 *offsetp += 2;
25144 {
25145 static int* const map_ctrls_bits [] = {
25146 &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_RepeatKeys,
25147 &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_SlowKeys,
25148 &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_BounceKeys,
25149 &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_StickyKeys,
25150 &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_MouseKeys,
25151 &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_MouseKeysAccel,
25152 &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AccessXKeys,
25153 &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AccessXTimeoutMask,
25154 &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AccessXFeedbackMask,
25155 &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AudibleBellMask,
25156 &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_Overlay1Mask,
25157 &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_Overlay2Mask,
25158 &hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_IgnoreGroupLockMask,
25159 NULL
25160 };
25161 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls, ett_x11_rectangle, map_ctrls_bits, byte_order);
25162 }
25163 *offsetp += 4;
25164 proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_supported, tvb, *offsetp, 1, byte_order);
25165 *offsetp += 1;
25166 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
25167 *offsetp += 3;
25168}
25169
25170static void xkbSetNamedIndicator(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
25171{
25172 proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_deviceSpec, tvb, *offsetp, 2, byte_order);
25173 *offsetp += 2;
25174 field16(tvb, offsetp, t, hf_x11_xkb_SetNamedIndicator_ledClass, byte_order);
25175 field16(tvb, offsetp, t, hf_x11_xkb_SetNamedIndicator_ledID, byte_order);
25176 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
25177 *offsetp += 2;
25178 proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_indicator, tvb, *offsetp, 4, byte_order);
25179 *offsetp += 4;
25180 proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_setState, tvb, *offsetp, 1, byte_order);
25181 *offsetp += 1;
25182 proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_on, tvb, *offsetp, 1, byte_order);
25183 *offsetp += 1;
25184 proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_setMap, tvb, *offsetp, 1, byte_order);
25185 *offsetp += 1;
25186 proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_createMap, tvb, *offsetp, 1, byte_order);
25187 *offsetp += 1;
25188 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25189 *offsetp += 1;
25190 {
25191 static int* const map_flags_bits [] = {
25192 &hf_x11_xkb_SetNamedIndicator_map_flags_mask_LEDDrivesKB,
25193 &hf_x11_xkb_SetNamedIndicator_map_flags_mask_NoAutomatic,
25194 &hf_x11_xkb_SetNamedIndicator_map_flags_mask_NoExplicit,
25195 NULL
25196 };
25197 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_flags, ett_x11_rectangle, map_flags_bits, byte_order);
25198 }
25199 *offsetp += 1;
25200 {
25201 static int* const map_whichGroups_bits [] = {
25202 &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseBase,
25203 &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseLatched,
25204 &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseLocked,
25205 &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseEffective,
25206 &hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseCompat,
25207 NULL
25208 };
25209 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_whichGroups, ett_x11_rectangle, map_whichGroups_bits, byte_order);
25210 }
25211 *offsetp += 1;
25212 {
25213 static int* const map_groups_bits [] = {
25214 &hf_x11_xkb_SetNamedIndicator_map_groups_mask_Any,
25215 NULL
25216 };
25217 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_groups, ett_x11_rectangle, map_groups_bits, byte_order);
25218 }
25219 *offsetp += 1;
25220 {
25221 static int* const map_whichMods_bits [] = {
25222 &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseBase,
25223 &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseLatched,
25224 &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseLocked,
25225 &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseEffective,
25226 &hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseCompat,
25227 NULL
25228 };
25229 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_whichMods, ett_x11_rectangle, map_whichMods_bits, byte_order);
25230 }
25231 *offsetp += 1;
25232 {
25233 static int* const map_realMods_bits [] = {
25234 &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Shift,
25235 &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Lock,
25236 &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Control,
25237 &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_1,
25238 &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_2,
25239 &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_3,
25240 &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_4,
25241 &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_5,
25242 &hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Any,
25243 NULL
25244 };
25245 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_realMods, ett_x11_rectangle, map_realMods_bits, byte_order);
25246 }
25247 *offsetp += 1;
25248 {
25249 static int* const map_vmods_bits [] = {
25250 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_0,
25251 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_1,
25252 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_2,
25253 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_3,
25254 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_4,
25255 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_5,
25256 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_6,
25257 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_7,
25258 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_8,
25259 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_9,
25260 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_10,
25261 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_11,
25262 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_12,
25263 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_13,
25264 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_14,
25265 &hf_x11_xkb_SetNamedIndicator_map_vmods_mask_15,
25266 NULL
25267 };
25268 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_vmods, ett_x11_rectangle, map_vmods_bits, byte_order);
25269 }
25270 *offsetp += 2;
25271 {
25272 static int* const map_ctrls_bits [] = {
25273 &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_RepeatKeys,
25274 &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_SlowKeys,
25275 &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_BounceKeys,
25276 &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_StickyKeys,
25277 &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_MouseKeys,
25278 &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_MouseKeysAccel,
25279 &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AccessXKeys,
25280 &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AccessXTimeoutMask,
25281 &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AccessXFeedbackMask,
25282 &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AudibleBellMask,
25283 &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_Overlay1Mask,
25284 &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_Overlay2Mask,
25285 &hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_IgnoreGroupLockMask,
25286 NULL
25287 };
25288 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNamedIndicator_map_ctrls, ett_x11_rectangle, map_ctrls_bits, byte_order);
25289 }
25290 *offsetp += 4;
25291}
25292
25293static void xkbGetNames(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
25294{
25295 proto_tree_add_item(t, hf_x11_xkb_GetNames_deviceSpec, tvb, *offsetp, 2, byte_order);
25296 *offsetp += 2;
25297 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
25298 *offsetp += 2;
25299 {
25300 static int* const which_bits [] = {
25301 &hf_x11_xkb_GetNames_which_mask_Keycodes,
25302 &hf_x11_xkb_GetNames_which_mask_Geometry,
25303 &hf_x11_xkb_GetNames_which_mask_Symbols,
25304 &hf_x11_xkb_GetNames_which_mask_PhysSymbols,
25305 &hf_x11_xkb_GetNames_which_mask_Types,
25306 &hf_x11_xkb_GetNames_which_mask_Compat,
25307 &hf_x11_xkb_GetNames_which_mask_KeyTypeNames,
25308 &hf_x11_xkb_GetNames_which_mask_KTLevelNames,
25309 &hf_x11_xkb_GetNames_which_mask_IndicatorNames,
25310 &hf_x11_xkb_GetNames_which_mask_KeyNames,
25311 &hf_x11_xkb_GetNames_which_mask_KeyAliases,
25312 &hf_x11_xkb_GetNames_which_mask_VirtualModNames,
25313 &hf_x11_xkb_GetNames_which_mask_GroupNames,
25314 &hf_x11_xkb_GetNames_which_mask_RGNames,
25315 NULL
25316 };
25317 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNames_which, ett_x11_rectangle, which_bits, byte_order);
25318 }
25319 *offsetp += 4;
25320}
25321static void xkbGetNames_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
25322{
25323 int sequence_number;
25324 int f_which;
25325 int f_nTypes;
25326 int f_groupNames;
25327 int f_virtualMods;
25328 int f_nKeys;
25329 int f_indicators;
25330 int f_nRadioGroups;
25331 int f_nKeyAliases;
25332
25333 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetNames");
25334
25335 REPLY(reply);
25336 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_deviceID, tvb, *offsetp, 1, byte_order);
25337 *offsetp += 1;
25338 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
25339 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25340 "%d (xkb-GetNames)", sequence_number);
25341 *offsetp += 2;
25342 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25343 *offsetp += 4;
25344 f_which = tvb_get_uint32(tvb, *offsetp, byte_order);
25345 {
25346 static int* const which_bits [] = {
25347 &hf_x11_xkb_GetNames_reply_which_mask_Keycodes,
25348 &hf_x11_xkb_GetNames_reply_which_mask_Geometry,
25349 &hf_x11_xkb_GetNames_reply_which_mask_Symbols,
25350 &hf_x11_xkb_GetNames_reply_which_mask_PhysSymbols,
25351 &hf_x11_xkb_GetNames_reply_which_mask_Types,
25352 &hf_x11_xkb_GetNames_reply_which_mask_Compat,
25353 &hf_x11_xkb_GetNames_reply_which_mask_KeyTypeNames,
25354 &hf_x11_xkb_GetNames_reply_which_mask_KTLevelNames,
25355 &hf_x11_xkb_GetNames_reply_which_mask_IndicatorNames,
25356 &hf_x11_xkb_GetNames_reply_which_mask_KeyNames,
25357 &hf_x11_xkb_GetNames_reply_which_mask_KeyAliases,
25358 &hf_x11_xkb_GetNames_reply_which_mask_VirtualModNames,
25359 &hf_x11_xkb_GetNames_reply_which_mask_GroupNames,
25360 &hf_x11_xkb_GetNames_reply_which_mask_RGNames,
25361 NULL
25362 };
25363 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNames_reply_which, ett_x11_rectangle, which_bits, byte_order);
25364 }
25365 *offsetp += 4;
25366 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_minKeyCode, tvb, *offsetp, 1, byte_order);
25367 *offsetp += 1;
25368 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_maxKeyCode, tvb, *offsetp, 1, byte_order);
25369 *offsetp += 1;
25370 f_nTypes = tvb_get_uint8(tvb, *offsetp);
25371 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nTypes, tvb, *offsetp, 1, byte_order);
25372 *offsetp += 1;
25373 f_groupNames = tvb_get_uint8(tvb, *offsetp);
25374 {
25375 static int* const groupNames_bits [] = {
25376 &hf_x11_xkb_GetNames_reply_groupNames_mask_Group1,
25377 &hf_x11_xkb_GetNames_reply_groupNames_mask_Group2,
25378 &hf_x11_xkb_GetNames_reply_groupNames_mask_Group3,
25379 &hf_x11_xkb_GetNames_reply_groupNames_mask_Group4,
25380 NULL
25381 };
25382 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNames_reply_groupNames, ett_x11_rectangle, groupNames_bits, byte_order);
25383 }
25384 *offsetp += 1;
25385 f_virtualMods = tvb_get_uint16(tvb, *offsetp, byte_order);
25386 {
25387 static int* const virtualMods_bits [] = {
25388 &hf_x11_xkb_GetNames_reply_virtualMods_mask_0,
25389 &hf_x11_xkb_GetNames_reply_virtualMods_mask_1,
25390 &hf_x11_xkb_GetNames_reply_virtualMods_mask_2,
25391 &hf_x11_xkb_GetNames_reply_virtualMods_mask_3,
25392 &hf_x11_xkb_GetNames_reply_virtualMods_mask_4,
25393 &hf_x11_xkb_GetNames_reply_virtualMods_mask_5,
25394 &hf_x11_xkb_GetNames_reply_virtualMods_mask_6,
25395 &hf_x11_xkb_GetNames_reply_virtualMods_mask_7,
25396 &hf_x11_xkb_GetNames_reply_virtualMods_mask_8,
25397 &hf_x11_xkb_GetNames_reply_virtualMods_mask_9,
25398 &hf_x11_xkb_GetNames_reply_virtualMods_mask_10,
25399 &hf_x11_xkb_GetNames_reply_virtualMods_mask_11,
25400 &hf_x11_xkb_GetNames_reply_virtualMods_mask_12,
25401 &hf_x11_xkb_GetNames_reply_virtualMods_mask_13,
25402 &hf_x11_xkb_GetNames_reply_virtualMods_mask_14,
25403 &hf_x11_xkb_GetNames_reply_virtualMods_mask_15,
25404 NULL
25405 };
25406 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetNames_reply_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
25407 }
25408 *offsetp += 2;
25409 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_firstKey, tvb, *offsetp, 1, byte_order);
25410 *offsetp += 1;
25411 f_nKeys = tvb_get_uint8(tvb, *offsetp);
25412 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nKeys, tvb, *offsetp, 1, byte_order);
25413 *offsetp += 1;
25414 f_indicators = tvb_get_uint32(tvb, *offsetp, byte_order);
25415 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_indicators, tvb, *offsetp, 4, byte_order);
25416 *offsetp += 4;
25417 f_nRadioGroups = tvb_get_uint8(tvb, *offsetp);
25418 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nRadioGroups, tvb, *offsetp, 1, byte_order);
25419 *offsetp += 1;
25420 f_nKeyAliases = tvb_get_uint8(tvb, *offsetp);
25421 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nKeyAliases, tvb, *offsetp, 1, byte_order);
25422 *offsetp += 1;
25423 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nKTLevels, tvb, *offsetp, 2, byte_order);
25424 *offsetp += 2;
25425 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
25426 *offsetp += 4;
25427 if (f_which & (1U << 0)) {
25428 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Keycodes_keycodesName, tvb, *offsetp, 4, byte_order);
25429 *offsetp += 4;
25430 }
25431 if (f_which & (1U << 1)) {
25432 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Geometry_geometryName, tvb, *offsetp, 4, byte_order);
25433 *offsetp += 4;
25434 }
25435 if (f_which & (1U << 2)) {
25436 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Symbols_symbolsName, tvb, *offsetp, 4, byte_order);
25437 *offsetp += 4;
25438 }
25439 if (f_which & (1U << 3)) {
25440 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_PhysSymbols_physSymbolsName, tvb, *offsetp, 4, byte_order);
25441 *offsetp += 4;
25442 }
25443 if (f_which & (1U << 4)) {
25444 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Types_typesName, tvb, *offsetp, 4, byte_order);
25445 *offsetp += 4;
25446 }
25447 if (f_which & (1U << 5)) {
25448 proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Compat_compatName, tvb, *offsetp, 4, byte_order);
25449 *offsetp += 4;
25450 }
25451 if (f_which & (1U << 6)) {
25452 listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_KeyTypeNames_typeNames, hf_x11_xkb_GetNames_reply_KeyTypeNames_typeNames_item, f_nTypes, byte_order);
25453 }
25454 if (f_which & (1U << 7)) {
25455 int sumof_nLevelsPerType = 0;
25456 {
25457 int i;
25458 for (i = 0; i < f_nTypes; i++) {
25459 sumof_nLevelsPerType += tvb_get_uint8(tvb, *offsetp + i * 1);
25460 }
25461 }
25462 listOfByte(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_KTLevelNames_nLevelsPerType, f_nTypes, byte_order);
25463 pad_to_4_bytes(tvb, offsetp, t);
25464 listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_KTLevelNames_ktLevelNames, hf_x11_xkb_GetNames_reply_KTLevelNames_ktLevelNames_item, sumof_nLevelsPerType, byte_order);
25465 }
25466 if (f_which & (1U << 8)) {
25467 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);
25468 }
25469 if (f_which & (1U << 11)) {
25470 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);
25471 }
25472 if (f_which & (1U << 12)) {
25473 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);
25474 }
25475 if (f_which & (1U << 9)) {
25476 struct_xkb_KeyName(tvb, offsetp, t, byte_order, f_nKeys);
25477 }
25478 if (f_which & (1U << 10)) {
25479 struct_xkb_KeyAlias(tvb, offsetp, t, byte_order, f_nKeyAliases);
25480 }
25481 if (f_which & (1U << 13)) {
25482 listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_RGNames_radioGroupNames, hf_x11_xkb_GetNames_reply_RGNames_radioGroupNames_item, f_nRadioGroups, byte_order);
25483 }
25484}
25485
25486static void xkbSetNames(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
25487{
25488 int f_virtualMods;
25489 int f_which;
25490 int f_nTypes;
25491 int f_indicators;
25492 int f_groupNames;
25493 int f_nRadioGroups;
25494 int f_nKeys;
25495 int f_nKeyAliases;
25496 proto_tree_add_item(t, hf_x11_xkb_SetNames_deviceSpec, tvb, *offsetp, 2, byte_order);
25497 *offsetp += 2;
25498 f_virtualMods = tvb_get_uint16(tvb, *offsetp, byte_order);
25499 {
25500 static int* const virtualMods_bits [] = {
25501 &hf_x11_xkb_SetNames_virtualMods_mask_0,
25502 &hf_x11_xkb_SetNames_virtualMods_mask_1,
25503 &hf_x11_xkb_SetNames_virtualMods_mask_2,
25504 &hf_x11_xkb_SetNames_virtualMods_mask_3,
25505 &hf_x11_xkb_SetNames_virtualMods_mask_4,
25506 &hf_x11_xkb_SetNames_virtualMods_mask_5,
25507 &hf_x11_xkb_SetNames_virtualMods_mask_6,
25508 &hf_x11_xkb_SetNames_virtualMods_mask_7,
25509 &hf_x11_xkb_SetNames_virtualMods_mask_8,
25510 &hf_x11_xkb_SetNames_virtualMods_mask_9,
25511 &hf_x11_xkb_SetNames_virtualMods_mask_10,
25512 &hf_x11_xkb_SetNames_virtualMods_mask_11,
25513 &hf_x11_xkb_SetNames_virtualMods_mask_12,
25514 &hf_x11_xkb_SetNames_virtualMods_mask_13,
25515 &hf_x11_xkb_SetNames_virtualMods_mask_14,
25516 &hf_x11_xkb_SetNames_virtualMods_mask_15,
25517 NULL
25518 };
25519 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNames_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
25520 }
25521 *offsetp += 2;
25522 f_which = tvb_get_uint32(tvb, *offsetp, byte_order);
25523 {
25524 static int* const which_bits [] = {
25525 &hf_x11_xkb_SetNames_which_mask_Keycodes,
25526 &hf_x11_xkb_SetNames_which_mask_Geometry,
25527 &hf_x11_xkb_SetNames_which_mask_Symbols,
25528 &hf_x11_xkb_SetNames_which_mask_PhysSymbols,
25529 &hf_x11_xkb_SetNames_which_mask_Types,
25530 &hf_x11_xkb_SetNames_which_mask_Compat,
25531 &hf_x11_xkb_SetNames_which_mask_KeyTypeNames,
25532 &hf_x11_xkb_SetNames_which_mask_KTLevelNames,
25533 &hf_x11_xkb_SetNames_which_mask_IndicatorNames,
25534 &hf_x11_xkb_SetNames_which_mask_KeyNames,
25535 &hf_x11_xkb_SetNames_which_mask_KeyAliases,
25536 &hf_x11_xkb_SetNames_which_mask_VirtualModNames,
25537 &hf_x11_xkb_SetNames_which_mask_GroupNames,
25538 &hf_x11_xkb_SetNames_which_mask_RGNames,
25539 NULL
25540 };
25541 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNames_which, ett_x11_rectangle, which_bits, byte_order);
25542 }
25543 *offsetp += 4;
25544 proto_tree_add_item(t, hf_x11_xkb_SetNames_firstType, tvb, *offsetp, 1, byte_order);
25545 *offsetp += 1;
25546 f_nTypes = tvb_get_uint8(tvb, *offsetp);
25547 proto_tree_add_item(t, hf_x11_xkb_SetNames_nTypes, tvb, *offsetp, 1, byte_order);
25548 *offsetp += 1;
25549 proto_tree_add_item(t, hf_x11_xkb_SetNames_firstKTLevelt, tvb, *offsetp, 1, byte_order);
25550 *offsetp += 1;
25551 proto_tree_add_item(t, hf_x11_xkb_SetNames_nKTLevels, tvb, *offsetp, 1, byte_order);
25552 *offsetp += 1;
25553 f_indicators = tvb_get_uint32(tvb, *offsetp, byte_order);
25554 proto_tree_add_item(t, hf_x11_xkb_SetNames_indicators, tvb, *offsetp, 4, byte_order);
25555 *offsetp += 4;
25556 f_groupNames = tvb_get_uint8(tvb, *offsetp);
25557 {
25558 static int* const groupNames_bits [] = {
25559 &hf_x11_xkb_SetNames_groupNames_mask_Group1,
25560 &hf_x11_xkb_SetNames_groupNames_mask_Group2,
25561 &hf_x11_xkb_SetNames_groupNames_mask_Group3,
25562 &hf_x11_xkb_SetNames_groupNames_mask_Group4,
25563 NULL
25564 };
25565 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetNames_groupNames, ett_x11_rectangle, groupNames_bits, byte_order);
25566 }
25567 *offsetp += 1;
25568 f_nRadioGroups = tvb_get_uint8(tvb, *offsetp);
25569 proto_tree_add_item(t, hf_x11_xkb_SetNames_nRadioGroups, tvb, *offsetp, 1, byte_order);
25570 *offsetp += 1;
25571 proto_tree_add_item(t, hf_x11_xkb_SetNames_firstKey, tvb, *offsetp, 1, byte_order);
25572 *offsetp += 1;
25573 f_nKeys = tvb_get_uint8(tvb, *offsetp);
25574 proto_tree_add_item(t, hf_x11_xkb_SetNames_nKeys, tvb, *offsetp, 1, byte_order);
25575 *offsetp += 1;
25576 f_nKeyAliases = tvb_get_uint8(tvb, *offsetp);
25577 proto_tree_add_item(t, hf_x11_xkb_SetNames_nKeyAliases, tvb, *offsetp, 1, byte_order);
25578 *offsetp += 1;
25579 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25580 *offsetp += 1;
25581 proto_tree_add_item(t, hf_x11_xkb_SetNames_totalKTLevelNames, tvb, *offsetp, 2, byte_order);
25582 *offsetp += 2;
25583 if (f_which & (1U << 0)) {
25584 proto_tree_add_item(t, hf_x11_xkb_SetNames_Keycodes_keycodesName, tvb, *offsetp, 4, byte_order);
25585 *offsetp += 4;
25586 }
25587 if (f_which & (1U << 1)) {
25588 proto_tree_add_item(t, hf_x11_xkb_SetNames_Geometry_geometryName, tvb, *offsetp, 4, byte_order);
25589 *offsetp += 4;
25590 }
25591 if (f_which & (1U << 2)) {
25592 proto_tree_add_item(t, hf_x11_xkb_SetNames_Symbols_symbolsName, tvb, *offsetp, 4, byte_order);
25593 *offsetp += 4;
25594 }
25595 if (f_which & (1U << 3)) {
25596 proto_tree_add_item(t, hf_x11_xkb_SetNames_PhysSymbols_physSymbolsName, tvb, *offsetp, 4, byte_order);
25597 *offsetp += 4;
25598 }
25599 if (f_which & (1U << 4)) {
25600 proto_tree_add_item(t, hf_x11_xkb_SetNames_Types_typesName, tvb, *offsetp, 4, byte_order);
25601 *offsetp += 4;
25602 }
25603 if (f_which & (1U << 5)) {
25604 proto_tree_add_item(t, hf_x11_xkb_SetNames_Compat_compatName, tvb, *offsetp, 4, byte_order);
25605 *offsetp += 4;
25606 }
25607 if (f_which & (1U << 6)) {
25608 listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_KeyTypeNames_typeNames, hf_x11_xkb_SetNames_KeyTypeNames_typeNames_item, f_nTypes, byte_order);
25609 length -= f_nTypes * 4;
25610 }
25611 if (f_which & (1U << 7)) {
25612 int sumof_nLevelsPerType = 0;
25613 {
25614 int i;
25615 for (i = 0; i < f_nTypes; i++) {
25616 sumof_nLevelsPerType += tvb_get_uint8(tvb, *offsetp + i * 1);
25617 }
25618 }
25619 listOfByte(tvb, offsetp, t, hf_x11_xkb_SetNames_KTLevelNames_nLevelsPerType, f_nTypes, byte_order);
25620 length -= f_nTypes * 1;
25621 pad_to_4_bytes(tvb, offsetp, t);
25622 length = WS_ROUNDUP_4(length);
25623 listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_KTLevelNames_ktLevelNames, hf_x11_xkb_SetNames_KTLevelNames_ktLevelNames_item, sumof_nLevelsPerType, byte_order);
25624 length -= sumof_nLevelsPerType * 4;
25625 }
25626 if (f_which & (1U << 8)) {
25627 listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_IndicatorNames_indicatorNames, hf_x11_xkb_SetNames_IndicatorNames_indicatorNames_item, ws_count_ones(f_indicators), byte_order);
25628 length -= ws_count_ones(f_indicators) * 4;
25629 }
25630 if (f_which & (1U << 11)) {
25631 listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_VirtualModNames_virtualModNames, hf_x11_xkb_SetNames_VirtualModNames_virtualModNames_item, ws_count_ones(f_virtualMods), byte_order);
25632 length -= ws_count_ones(f_virtualMods) * 4;
25633 }
25634 if (f_which & (1U << 12)) {
25635 listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_GroupNames_groups, hf_x11_xkb_SetNames_GroupNames_groups_item, ws_count_ones(f_groupNames), byte_order);
25636 length -= ws_count_ones(f_groupNames) * 4;
25637 }
25638 if (f_which & (1U << 9)) {
25639 struct_xkb_KeyName(tvb, offsetp, t, byte_order, f_nKeys);
25640 length -= f_nKeys * 4;
25641 }
25642 if (f_which & (1U << 10)) {
25643 struct_xkb_KeyAlias(tvb, offsetp, t, byte_order, f_nKeyAliases);
25644 length -= f_nKeyAliases * 8;
25645 }
25646 if (f_which & (1U << 13)) {
25647 listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_RGNames_radioGroupNames, hf_x11_xkb_SetNames_RGNames_radioGroupNames_item, f_nRadioGroups, byte_order);
25648 length -= f_nRadioGroups * 4;
25649 }
25650}
25651
25652static void xkbPerClientFlags(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
25653{
25654 proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_deviceSpec, tvb, *offsetp, 2, byte_order);
25655 *offsetp += 2;
25656 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
25657 *offsetp += 2;
25658 {
25659 static int* const change_bits [] = {
25660 &hf_x11_xkb_PerClientFlags_change_mask_DetectableAutoRepeat,
25661 &hf_x11_xkb_PerClientFlags_change_mask_GrabsUseXKBState,
25662 &hf_x11_xkb_PerClientFlags_change_mask_AutoResetControls,
25663 &hf_x11_xkb_PerClientFlags_change_mask_LookupStateWhenGrabbed,
25664 &hf_x11_xkb_PerClientFlags_change_mask_SendEventUsesXKBState,
25665 NULL
25666 };
25667 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_change, ett_x11_rectangle, change_bits, byte_order);
25668 }
25669 *offsetp += 4;
25670 {
25671 static int* const value_bits [] = {
25672 &hf_x11_xkb_PerClientFlags_value_mask_DetectableAutoRepeat,
25673 &hf_x11_xkb_PerClientFlags_value_mask_GrabsUseXKBState,
25674 &hf_x11_xkb_PerClientFlags_value_mask_AutoResetControls,
25675 &hf_x11_xkb_PerClientFlags_value_mask_LookupStateWhenGrabbed,
25676 &hf_x11_xkb_PerClientFlags_value_mask_SendEventUsesXKBState,
25677 NULL
25678 };
25679 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_value, ett_x11_rectangle, value_bits, byte_order);
25680 }
25681 *offsetp += 4;
25682 {
25683 static int* const ctrlsToChange_bits [] = {
25684 &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_RepeatKeys,
25685 &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_SlowKeys,
25686 &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_BounceKeys,
25687 &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_StickyKeys,
25688 &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_MouseKeys,
25689 &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_MouseKeysAccel,
25690 &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AccessXKeys,
25691 &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AccessXTimeoutMask,
25692 &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AccessXFeedbackMask,
25693 &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AudibleBellMask,
25694 &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_Overlay1Mask,
25695 &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_Overlay2Mask,
25696 &hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_IgnoreGroupLockMask,
25697 NULL
25698 };
25699 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_ctrlsToChange, ett_x11_rectangle, ctrlsToChange_bits, byte_order);
25700 }
25701 *offsetp += 4;
25702 {
25703 static int* const autoCtrls_bits [] = {
25704 &hf_x11_xkb_PerClientFlags_autoCtrls_mask_RepeatKeys,
25705 &hf_x11_xkb_PerClientFlags_autoCtrls_mask_SlowKeys,
25706 &hf_x11_xkb_PerClientFlags_autoCtrls_mask_BounceKeys,
25707 &hf_x11_xkb_PerClientFlags_autoCtrls_mask_StickyKeys,
25708 &hf_x11_xkb_PerClientFlags_autoCtrls_mask_MouseKeys,
25709 &hf_x11_xkb_PerClientFlags_autoCtrls_mask_MouseKeysAccel,
25710 &hf_x11_xkb_PerClientFlags_autoCtrls_mask_AccessXKeys,
25711 &hf_x11_xkb_PerClientFlags_autoCtrls_mask_AccessXTimeoutMask,
25712 &hf_x11_xkb_PerClientFlags_autoCtrls_mask_AccessXFeedbackMask,
25713 &hf_x11_xkb_PerClientFlags_autoCtrls_mask_AudibleBellMask,
25714 &hf_x11_xkb_PerClientFlags_autoCtrls_mask_Overlay1Mask,
25715 &hf_x11_xkb_PerClientFlags_autoCtrls_mask_Overlay2Mask,
25716 &hf_x11_xkb_PerClientFlags_autoCtrls_mask_IgnoreGroupLockMask,
25717 NULL
25718 };
25719 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_autoCtrls, ett_x11_rectangle, autoCtrls_bits, byte_order);
25720 }
25721 *offsetp += 4;
25722 {
25723 static int* const autoCtrlsValues_bits [] = {
25724 &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_RepeatKeys,
25725 &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_SlowKeys,
25726 &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_BounceKeys,
25727 &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_StickyKeys,
25728 &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_MouseKeys,
25729 &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_MouseKeysAccel,
25730 &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AccessXKeys,
25731 &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AccessXTimeoutMask,
25732 &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AccessXFeedbackMask,
25733 &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AudibleBellMask,
25734 &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_Overlay1Mask,
25735 &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_Overlay2Mask,
25736 &hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_IgnoreGroupLockMask,
25737 NULL
25738 };
25739 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_autoCtrlsValues, ett_x11_rectangle, autoCtrlsValues_bits, byte_order);
25740 }
25741 *offsetp += 4;
25742}
25743static void xkbPerClientFlags_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
25744{
25745 int sequence_number;
25746
25747 col_append_fstr(pinfo->cinfo, COL_INFO, "-PerClientFlags");
25748
25749 REPLY(reply);
25750 proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_reply_deviceID, tvb, *offsetp, 1, byte_order);
25751 *offsetp += 1;
25752 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
25753 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25754 "%d (xkb-PerClientFlags)", sequence_number);
25755 *offsetp += 2;
25756 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25757 *offsetp += 4;
25758 {
25759 static int* const supported_bits [] = {
25760 &hf_x11_xkb_PerClientFlags_reply_supported_mask_DetectableAutoRepeat,
25761 &hf_x11_xkb_PerClientFlags_reply_supported_mask_GrabsUseXKBState,
25762 &hf_x11_xkb_PerClientFlags_reply_supported_mask_AutoResetControls,
25763 &hf_x11_xkb_PerClientFlags_reply_supported_mask_LookupStateWhenGrabbed,
25764 &hf_x11_xkb_PerClientFlags_reply_supported_mask_SendEventUsesXKBState,
25765 NULL
25766 };
25767 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_reply_supported, ett_x11_rectangle, supported_bits, byte_order);
25768 }
25769 *offsetp += 4;
25770 {
25771 static int* const value_bits [] = {
25772 &hf_x11_xkb_PerClientFlags_reply_value_mask_DetectableAutoRepeat,
25773 &hf_x11_xkb_PerClientFlags_reply_value_mask_GrabsUseXKBState,
25774 &hf_x11_xkb_PerClientFlags_reply_value_mask_AutoResetControls,
25775 &hf_x11_xkb_PerClientFlags_reply_value_mask_LookupStateWhenGrabbed,
25776 &hf_x11_xkb_PerClientFlags_reply_value_mask_SendEventUsesXKBState,
25777 NULL
25778 };
25779 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_reply_value, ett_x11_rectangle, value_bits, byte_order);
25780 }
25781 *offsetp += 4;
25782 {
25783 static int* const autoCtrls_bits [] = {
25784 &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_RepeatKeys,
25785 &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_SlowKeys,
25786 &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_BounceKeys,
25787 &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_StickyKeys,
25788 &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_MouseKeys,
25789 &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_MouseKeysAccel,
25790 &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AccessXKeys,
25791 &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AccessXTimeoutMask,
25792 &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AccessXFeedbackMask,
25793 &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AudibleBellMask,
25794 &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_Overlay1Mask,
25795 &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_Overlay2Mask,
25796 &hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_IgnoreGroupLockMask,
25797 NULL
25798 };
25799 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_reply_autoCtrls, ett_x11_rectangle, autoCtrls_bits, byte_order);
25800 }
25801 *offsetp += 4;
25802 {
25803 static int* const autoCtrlsValues_bits [] = {
25804 &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_RepeatKeys,
25805 &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_SlowKeys,
25806 &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_BounceKeys,
25807 &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_StickyKeys,
25808 &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_MouseKeys,
25809 &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_MouseKeysAccel,
25810 &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AccessXKeys,
25811 &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AccessXTimeoutMask,
25812 &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AccessXFeedbackMask,
25813 &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AudibleBellMask,
25814 &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_Overlay1Mask,
25815 &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_Overlay2Mask,
25816 &hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_IgnoreGroupLockMask,
25817 NULL
25818 };
25819 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues, ett_x11_rectangle, autoCtrlsValues_bits, byte_order);
25820 }
25821 *offsetp += 4;
25822 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
25823 *offsetp += 8;
25824}
25825
25826static void xkbListComponents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
25827{
25828 proto_tree_add_item(t, hf_x11_xkb_ListComponents_deviceSpec, tvb, *offsetp, 2, byte_order);
25829 *offsetp += 2;
25830 proto_tree_add_item(t, hf_x11_xkb_ListComponents_maxNames, tvb, *offsetp, 2, byte_order);
25831 *offsetp += 2;
25832}
25833static void xkbListComponents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
25834{
25835 int sequence_number;
25836 int f_nKeymaps;
25837 int f_nKeycodes;
25838 int f_nTypes;
25839 int f_nCompatMaps;
25840 int f_nSymbols;
25841 int f_nGeometries;
25842
25843 col_append_fstr(pinfo->cinfo, COL_INFO, "-ListComponents");
25844
25845 REPLY(reply);
25846 proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_deviceID, tvb, *offsetp, 1, byte_order);
25847 *offsetp += 1;
25848 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
25849 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25850 "%d (xkb-ListComponents)", sequence_number);
25851 *offsetp += 2;
25852 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25853 *offsetp += 4;
25854 f_nKeymaps = tvb_get_uint16(tvb, *offsetp, byte_order);
25855 proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nKeymaps, tvb, *offsetp, 2, byte_order);
25856 *offsetp += 2;
25857 f_nKeycodes = tvb_get_uint16(tvb, *offsetp, byte_order);
25858 proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nKeycodes, tvb, *offsetp, 2, byte_order);
25859 *offsetp += 2;
25860 f_nTypes = tvb_get_uint16(tvb, *offsetp, byte_order);
25861 proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nTypes, tvb, *offsetp, 2, byte_order);
25862 *offsetp += 2;
25863 f_nCompatMaps = tvb_get_uint16(tvb, *offsetp, byte_order);
25864 proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nCompatMaps, tvb, *offsetp, 2, byte_order);
25865 *offsetp += 2;
25866 f_nSymbols = tvb_get_uint16(tvb, *offsetp, byte_order);
25867 proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nSymbols, tvb, *offsetp, 2, byte_order);
25868 *offsetp += 2;
25869 f_nGeometries = tvb_get_uint16(tvb, *offsetp, byte_order);
25870 proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nGeometries, tvb, *offsetp, 2, byte_order);
25871 *offsetp += 2;
25872 proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_extra, tvb, *offsetp, 2, byte_order);
25873 *offsetp += 2;
25874 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
25875 *offsetp += 10;
25876 struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nKeymaps);
25877 struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nKeycodes);
25878 struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nTypes);
25879 struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nCompatMaps);
25880 struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nSymbols);
25881 struct_xkb_Listing(tvb, offsetp, t, byte_order, f_nGeometries);
25882}
25883
25884static void xkbGetKbdByName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
25885{
25886 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_deviceSpec, tvb, *offsetp, 2, byte_order);
25887 *offsetp += 2;
25888 {
25889 static int* const need_bits [] = {
25890 &hf_x11_xkb_GetKbdByName_need_mask_Types,
25891 &hf_x11_xkb_GetKbdByName_need_mask_CompatMap,
25892 &hf_x11_xkb_GetKbdByName_need_mask_ClientSymbols,
25893 &hf_x11_xkb_GetKbdByName_need_mask_ServerSymbols,
25894 &hf_x11_xkb_GetKbdByName_need_mask_IndicatorMaps,
25895 &hf_x11_xkb_GetKbdByName_need_mask_KeyNames,
25896 &hf_x11_xkb_GetKbdByName_need_mask_Geometry,
25897 &hf_x11_xkb_GetKbdByName_need_mask_OtherNames,
25898 NULL
25899 };
25900 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_need, ett_x11_rectangle, need_bits, byte_order);
25901 }
25902 *offsetp += 2;
25903 {
25904 static int* const want_bits [] = {
25905 &hf_x11_xkb_GetKbdByName_want_mask_Types,
25906 &hf_x11_xkb_GetKbdByName_want_mask_CompatMap,
25907 &hf_x11_xkb_GetKbdByName_want_mask_ClientSymbols,
25908 &hf_x11_xkb_GetKbdByName_want_mask_ServerSymbols,
25909 &hf_x11_xkb_GetKbdByName_want_mask_IndicatorMaps,
25910 &hf_x11_xkb_GetKbdByName_want_mask_KeyNames,
25911 &hf_x11_xkb_GetKbdByName_want_mask_Geometry,
25912 &hf_x11_xkb_GetKbdByName_want_mask_OtherNames,
25913 NULL
25914 };
25915 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_want, ett_x11_rectangle, want_bits, byte_order);
25916 }
25917 *offsetp += 2;
25918 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_load, tvb, *offsetp, 1, byte_order);
25919 *offsetp += 1;
25920 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
25921 *offsetp += 1;
25922}
25923static void xkbGetKbdByName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
25924{
25925 int sequence_number;
25926 int f_reported;
25927
25928 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetKbdByName");
25929
25930 REPLY(reply);
25931 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_deviceID, tvb, *offsetp, 1, byte_order);
25932 *offsetp += 1;
25933 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
25934 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
25935 "%d (xkb-GetKbdByName)", sequence_number);
25936 *offsetp += 2;
25937 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
25938 *offsetp += 4;
25939 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_minKeyCode, tvb, *offsetp, 1, byte_order);
25940 *offsetp += 1;
25941 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_maxKeyCode, tvb, *offsetp, 1, byte_order);
25942 *offsetp += 1;
25943 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_loaded, tvb, *offsetp, 1, byte_order);
25944 *offsetp += 1;
25945 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_newKeyboard, tvb, *offsetp, 1, byte_order);
25946 *offsetp += 1;
25947 {
25948 static int* const found_bits [] = {
25949 &hf_x11_xkb_GetKbdByName_reply_found_mask_Types,
25950 &hf_x11_xkb_GetKbdByName_reply_found_mask_CompatMap,
25951 &hf_x11_xkb_GetKbdByName_reply_found_mask_ClientSymbols,
25952 &hf_x11_xkb_GetKbdByName_reply_found_mask_ServerSymbols,
25953 &hf_x11_xkb_GetKbdByName_reply_found_mask_IndicatorMaps,
25954 &hf_x11_xkb_GetKbdByName_reply_found_mask_KeyNames,
25955 &hf_x11_xkb_GetKbdByName_reply_found_mask_Geometry,
25956 &hf_x11_xkb_GetKbdByName_reply_found_mask_OtherNames,
25957 NULL
25958 };
25959 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_found, ett_x11_rectangle, found_bits, byte_order);
25960 }
25961 *offsetp += 2;
25962 f_reported = tvb_get_uint16(tvb, *offsetp, byte_order);
25963 {
25964 static int* const reported_bits [] = {
25965 &hf_x11_xkb_GetKbdByName_reply_reported_mask_Types,
25966 &hf_x11_xkb_GetKbdByName_reply_reported_mask_CompatMap,
25967 &hf_x11_xkb_GetKbdByName_reply_reported_mask_ClientSymbols,
25968 &hf_x11_xkb_GetKbdByName_reply_reported_mask_ServerSymbols,
25969 &hf_x11_xkb_GetKbdByName_reply_reported_mask_IndicatorMaps,
25970 &hf_x11_xkb_GetKbdByName_reply_reported_mask_KeyNames,
25971 &hf_x11_xkb_GetKbdByName_reply_reported_mask_Geometry,
25972 &hf_x11_xkb_GetKbdByName_reply_reported_mask_OtherNames,
25973 NULL
25974 };
25975 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_reported, ett_x11_rectangle, reported_bits, byte_order);
25976 }
25977 *offsetp += 2;
25978 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
25979 *offsetp += 16;
25980 if ((f_reported & (1U << 0)) || (f_reported & (1U << 2)) || (f_reported & (1U << 3))) {
25981 int f_present;
25982 int f_nTypes;
25983 int f_nKeySyms;
25984 int f_totalActions;
25985 int f_nKeyActions;
25986 int f_totalKeyBehaviors;
25987 int f_totalKeyExplicit;
25988 int f_totalModMapKeys;
25989 int f_totalVModMapKeys;
25990 int f_virtualMods;
25991 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_getmap_type, tvb, *offsetp, 1, byte_order);
25992 *offsetp += 1;
25993 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_typeDeviceID, tvb, *offsetp, 1, byte_order);
25994 *offsetp += 1;
25995 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_getmap_sequence, tvb, *offsetp, 2, byte_order);
25996 *offsetp += 2;
25997 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_getmap_length, tvb, *offsetp, 4, byte_order);
25998 *offsetp += 4;
25999 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
26000 *offsetp += 2;
26001 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_typeMinKeyCode, tvb, *offsetp, 1, byte_order);
26002 *offsetp += 1;
26003 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_typeMaxKeyCode, tvb, *offsetp, 1, byte_order);
26004 *offsetp += 1;
26005 f_present = tvb_get_uint16(tvb, *offsetp, byte_order);
26006 {
26007 static int* const present_bits [] = {
26008 &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_KeyTypes,
26009 &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_KeySyms,
26010 &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_ModifierMap,
26011 &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_ExplicitComponents,
26012 &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_KeyActions,
26013 &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_KeyBehaviors,
26014 &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_VirtualMods,
26015 &hf_x11_xkb_GetKbdByName_reply_Types_present_mask_VirtualModMap,
26016 NULL
26017 };
26018 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_Types_present, ett_x11_rectangle, present_bits, byte_order);
26019 }
26020 *offsetp += 2;
26021 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstType, tvb, *offsetp, 1, byte_order);
26022 *offsetp += 1;
26023 f_nTypes = tvb_get_uint8(tvb, *offsetp);
26024 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nTypes, tvb, *offsetp, 1, byte_order);
26025 *offsetp += 1;
26026 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalTypes, tvb, *offsetp, 1, byte_order);
26027 *offsetp += 1;
26028 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeySym, tvb, *offsetp, 1, byte_order);
26029 *offsetp += 1;
26030 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalSyms, tvb, *offsetp, 2, byte_order);
26031 *offsetp += 2;
26032 f_nKeySyms = tvb_get_uint8(tvb, *offsetp);
26033 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeySyms, tvb, *offsetp, 1, byte_order);
26034 *offsetp += 1;
26035 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeyAction, tvb, *offsetp, 1, byte_order);
26036 *offsetp += 1;
26037 f_totalActions = tvb_get_uint16(tvb, *offsetp, byte_order);
26038 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalActions, tvb, *offsetp, 2, byte_order);
26039 *offsetp += 2;
26040 f_nKeyActions = tvb_get_uint8(tvb, *offsetp);
26041 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeyActions, tvb, *offsetp, 1, byte_order);
26042 *offsetp += 1;
26043 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
26044 *offsetp += 1;
26045 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeyBehaviors, tvb, *offsetp, 1, byte_order);
26046 *offsetp += 1;
26047 f_totalKeyBehaviors = tvb_get_uint8(tvb, *offsetp);
26048 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalKeyBehaviors, tvb, *offsetp, 1, byte_order);
26049 *offsetp += 1;
26050 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
26051 *offsetp += 1;
26052 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeyExplicit, tvb, *offsetp, 1, byte_order);
26053 *offsetp += 1;
26054 f_totalKeyExplicit = tvb_get_uint8(tvb, *offsetp);
26055 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalKeyExplicit, tvb, *offsetp, 1, byte_order);
26056 *offsetp += 1;
26057 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstModMapKey, tvb, *offsetp, 1, byte_order);
26058 *offsetp += 1;
26059 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nModMapKeys, tvb, *offsetp, 1, byte_order);
26060 *offsetp += 1;
26061 f_totalModMapKeys = tvb_get_uint8(tvb, *offsetp);
26062 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalModMapKeys, tvb, *offsetp, 1, byte_order);
26063 *offsetp += 1;
26064 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstVModMapKey, tvb, *offsetp, 1, byte_order);
26065 *offsetp += 1;
26066 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nVModMapKeys, tvb, *offsetp, 1, byte_order);
26067 *offsetp += 1;
26068 f_totalVModMapKeys = tvb_get_uint8(tvb, *offsetp);
26069 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalVModMapKeys, tvb, *offsetp, 1, byte_order);
26070 *offsetp += 1;
26071 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26072 *offsetp += 1;
26073 f_virtualMods = tvb_get_uint16(tvb, *offsetp, byte_order);
26074 {
26075 static int* const virtualMods_bits [] = {
26076 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_0,
26077 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_1,
26078 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_2,
26079 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_3,
26080 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_4,
26081 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_5,
26082 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_6,
26083 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_7,
26084 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_8,
26085 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_9,
26086 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_10,
26087 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_11,
26088 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_12,
26089 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_13,
26090 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_14,
26091 &hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_15,
26092 NULL
26093 };
26094 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
26095 }
26096 *offsetp += 2;
26097 if (f_present & (1U << 0)) {
26098 struct_xkb_KeyType(tvb, offsetp, t, byte_order, f_nTypes);
26099 }
26100 if (f_present & (1U << 1)) {
26101 struct_xkb_KeySymMap(tvb, offsetp, t, byte_order, f_nKeySyms);
26102 }
26103 if (f_present & (1U << 4)) {
26104 listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_Types_KeyActions_acts_rtrn_count, f_nKeyActions, byte_order);
26105 pad_to_4_bytes(tvb, offsetp, t);
26106 struct_xkb_Action(tvb, offsetp, t, byte_order, f_totalActions);
26107 }
26108 if (f_present & (1U << 5)) {
26109 struct_xkb_SetBehavior(tvb, offsetp, t, byte_order, f_totalKeyBehaviors);
26110 }
26111 if (f_present & (1U << 6)) {
26112 listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_Types_VirtualMods_vmods_rtrn, ws_count_ones(f_virtualMods), byte_order);
26113 pad_to_4_bytes(tvb, offsetp, t);
26114 }
26115 if (f_present & (1U << 3)) {
26116 struct_xkb_SetExplicit(tvb, offsetp, t, byte_order, f_totalKeyExplicit);
26117 pad_to_4_bytes(tvb, offsetp, t);
26118 }
26119 if (f_present & (1U << 2)) {
26120 struct_xkb_KeyModMap(tvb, offsetp, t, byte_order, f_totalModMapKeys);
26121 pad_to_4_bytes(tvb, offsetp, t);
26122 }
26123 if (f_present & (1U << 7)) {
26124 struct_xkb_KeyVModMap(tvb, offsetp, t, byte_order, f_totalVModMapKeys);
26125 }
26126 }
26127 if (f_reported & (1U << 1)) {
26128 int f_groupsRtrn;
26129 int f_nSIRtrn;
26130 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_compatmap_type, tvb, *offsetp, 1, byte_order);
26131 *offsetp += 1;
26132 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_compatDeviceID, tvb, *offsetp, 1, byte_order);
26133 *offsetp += 1;
26134 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_compatmap_sequence, tvb, *offsetp, 2, byte_order);
26135 *offsetp += 2;
26136 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_compatmap_length, tvb, *offsetp, 4, byte_order);
26137 *offsetp += 4;
26138 f_groupsRtrn = tvb_get_uint8(tvb, *offsetp);
26139 {
26140 static int* const groupsRtrn_bits [] = {
26141 &hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group1,
26142 &hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group2,
26143 &hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group3,
26144 &hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group4,
26145 NULL
26146 };
26147 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn, ett_x11_rectangle, groupsRtrn_bits, byte_order);
26148 }
26149 *offsetp += 1;
26150 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26151 *offsetp += 1;
26152 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_firstSIRtrn, tvb, *offsetp, 2, byte_order);
26153 *offsetp += 2;
26154 f_nSIRtrn = tvb_get_uint16(tvb, *offsetp, byte_order);
26155 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_nSIRtrn, tvb, *offsetp, 2, byte_order);
26156 *offsetp += 2;
26157 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_nTotalSI, tvb, *offsetp, 2, byte_order);
26158 *offsetp += 2;
26159 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
26160 *offsetp += 16;
26161 struct_xkb_SymInterpret(tvb, offsetp, t, byte_order, f_nSIRtrn);
26162 struct_xkb_ModDef(tvb, offsetp, t, byte_order, ws_count_ones(f_groupsRtrn));
26163 }
26164 if (f_reported & (1U << 4)) {
26165 int f_nIndicators;
26166 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_indicatormap_type, tvb, *offsetp, 1, byte_order);
26167 *offsetp += 1;
26168 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_indicatorDeviceID, tvb, *offsetp, 1, byte_order);
26169 *offsetp += 1;
26170 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_indicatormap_sequence, tvb, *offsetp, 2, byte_order);
26171 *offsetp += 2;
26172 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_indicatormap_length, tvb, *offsetp, 4, byte_order);
26173 *offsetp += 4;
26174 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_which, tvb, *offsetp, 4, byte_order);
26175 *offsetp += 4;
26176 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_realIndicators, tvb, *offsetp, 4, byte_order);
26177 *offsetp += 4;
26178 f_nIndicators = tvb_get_uint8(tvb, *offsetp);
26179 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_nIndicators, tvb, *offsetp, 1, byte_order);
26180 *offsetp += 1;
26181 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 15, ENC_NA);
26182 *offsetp += 15;
26183 struct_xkb_IndicatorMap(tvb, offsetp, t, byte_order, f_nIndicators);
26184 }
26185 if ((f_reported & (1U << 5)) || (f_reported & (1U << 7))) {
26186 int f_which;
26187 int f_nTypes;
26188 int f_groupNames;
26189 int f_virtualMods;
26190 int f_nKeys;
26191 int f_indicators;
26192 int f_nRadioGroups;
26193 int f_nKeyAliases;
26194 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyname_type, tvb, *offsetp, 1, byte_order);
26195 *offsetp += 1;
26196 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyDeviceID, tvb, *offsetp, 1, byte_order);
26197 *offsetp += 1;
26198 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyname_sequence, tvb, *offsetp, 2, byte_order);
26199 *offsetp += 2;
26200 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyname_length, tvb, *offsetp, 4, byte_order);
26201 *offsetp += 4;
26202 f_which = tvb_get_uint32(tvb, *offsetp, byte_order);
26203 {
26204 static int* const which_bits [] = {
26205 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Keycodes,
26206 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Geometry,
26207 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Symbols,
26208 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_PhysSymbols,
26209 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Types,
26210 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Compat,
26211 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KeyTypeNames,
26212 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KTLevelNames,
26213 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_IndicatorNames,
26214 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KeyNames,
26215 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KeyAliases,
26216 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_VirtualModNames,
26217 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_GroupNames,
26218 &hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_RGNames,
26219 NULL
26220 };
26221 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_KeyNames_which, ett_x11_rectangle, which_bits, byte_order);
26222 }
26223 *offsetp += 4;
26224 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyMinKeyCode, tvb, *offsetp, 1, byte_order);
26225 *offsetp += 1;
26226 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyMaxKeyCode, tvb, *offsetp, 1, byte_order);
26227 *offsetp += 1;
26228 f_nTypes = tvb_get_uint8(tvb, *offsetp);
26229 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nTypes, tvb, *offsetp, 1, byte_order);
26230 *offsetp += 1;
26231 f_groupNames = tvb_get_uint8(tvb, *offsetp);
26232 {
26233 static int* const groupNames_bits [] = {
26234 &hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group1,
26235 &hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group2,
26236 &hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group3,
26237 &hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group4,
26238 NULL
26239 };
26240 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames, ett_x11_rectangle, groupNames_bits, byte_order);
26241 }
26242 *offsetp += 1;
26243 f_virtualMods = tvb_get_uint16(tvb, *offsetp, byte_order);
26244 {
26245 static int* const virtualMods_bits [] = {
26246 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_0,
26247 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_1,
26248 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_2,
26249 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_3,
26250 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_4,
26251 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_5,
26252 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_6,
26253 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_7,
26254 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_8,
26255 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_9,
26256 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_10,
26257 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_11,
26258 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_12,
26259 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_13,
26260 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_14,
26261 &hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_15,
26262 NULL
26263 };
26264 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
26265 }
26266 *offsetp += 2;
26267 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_firstKey, tvb, *offsetp, 1, byte_order);
26268 *offsetp += 1;
26269 f_nKeys = tvb_get_uint8(tvb, *offsetp);
26270 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nKeys, tvb, *offsetp, 1, byte_order);
26271 *offsetp += 1;
26272 f_indicators = tvb_get_uint32(tvb, *offsetp, byte_order);
26273 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_indicators, tvb, *offsetp, 4, byte_order);
26274 *offsetp += 4;
26275 f_nRadioGroups = tvb_get_uint8(tvb, *offsetp);
26276 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nRadioGroups, tvb, *offsetp, 1, byte_order);
26277 *offsetp += 1;
26278 f_nKeyAliases = tvb_get_uint8(tvb, *offsetp);
26279 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nKeyAliases, tvb, *offsetp, 1, byte_order);
26280 *offsetp += 1;
26281 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nKTLevels, tvb, *offsetp, 2, byte_order);
26282 *offsetp += 2;
26283 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
26284 *offsetp += 4;
26285 if (f_which & (1U << 0)) {
26286 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Keycodes_keycodesName, tvb, *offsetp, 4, byte_order);
26287 *offsetp += 4;
26288 }
26289 if (f_which & (1U << 1)) {
26290 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Geometry_geometryName, tvb, *offsetp, 4, byte_order);
26291 *offsetp += 4;
26292 }
26293 if (f_which & (1U << 2)) {
26294 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Symbols_symbolsName, tvb, *offsetp, 4, byte_order);
26295 *offsetp += 4;
26296 }
26297 if (f_which & (1U << 3)) {
26298 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_PhysSymbols_physSymbolsName, tvb, *offsetp, 4, byte_order);
26299 *offsetp += 4;
26300 }
26301 if (f_which & (1U << 4)) {
26302 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Types_typesName, tvb, *offsetp, 4, byte_order);
26303 *offsetp += 4;
26304 }
26305 if (f_which & (1U << 5)) {
26306 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Compat_compatName, tvb, *offsetp, 4, byte_order);
26307 *offsetp += 4;
26308 }
26309 if (f_which & (1U << 6)) {
26310 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);
26311 }
26312 if (f_which & (1U << 7)) {
26313 int sumof_nLevelsPerType = 0;
26314 {
26315 int i;
26316 for (i = 0; i < f_nTypes; i++) {
26317 sumof_nLevelsPerType += tvb_get_uint8(tvb, *offsetp + i * 1);
26318 }
26319 }
26320 listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_KTLevelNames_nLevelsPerType, f_nTypes, byte_order);
26321 pad_to_4_bytes(tvb, offsetp, t);
26322 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);
26323 }
26324 if (f_which & (1U << 8)) {
26325 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);
26326 }
26327 if (f_which & (1U << 11)) {
26328 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);
26329 }
26330 if (f_which & (1U << 12)) {
26331 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);
26332 }
26333 if (f_which & (1U << 9)) {
26334 struct_xkb_KeyName(tvb, offsetp, t, byte_order, f_nKeys);
26335 }
26336 if (f_which & (1U << 10)) {
26337 struct_xkb_KeyAlias(tvb, offsetp, t, byte_order, f_nKeyAliases);
26338 }
26339 if (f_which & (1U << 13)) {
26340 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);
26341 }
26342 }
26343 if (f_reported & (1U << 6)) {
26344 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometry_type, tvb, *offsetp, 1, byte_order);
26345 *offsetp += 1;
26346 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometryDeviceID, tvb, *offsetp, 1, byte_order);
26347 *offsetp += 1;
26348 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometry_sequence, tvb, *offsetp, 2, byte_order);
26349 *offsetp += 2;
26350 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometry_length, tvb, *offsetp, 4, byte_order);
26351 *offsetp += 4;
26352 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_name, tvb, *offsetp, 4, byte_order);
26353 *offsetp += 4;
26354 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometryFound, tvb, *offsetp, 1, byte_order);
26355 *offsetp += 1;
26356 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26357 *offsetp += 1;
26358 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_widthMM, tvb, *offsetp, 2, byte_order);
26359 *offsetp += 2;
26360 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_heightMM, tvb, *offsetp, 2, byte_order);
26361 *offsetp += 2;
26362 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nProperties, tvb, *offsetp, 2, byte_order);
26363 *offsetp += 2;
26364 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nColors, tvb, *offsetp, 2, byte_order);
26365 *offsetp += 2;
26366 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nShapes, tvb, *offsetp, 2, byte_order);
26367 *offsetp += 2;
26368 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nSections, tvb, *offsetp, 2, byte_order);
26369 *offsetp += 2;
26370 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nDoodads, tvb, *offsetp, 2, byte_order);
26371 *offsetp += 2;
26372 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nKeyAliases, tvb, *offsetp, 2, byte_order);
26373 *offsetp += 2;
26374 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_baseColorNdx, tvb, *offsetp, 1, byte_order);
26375 *offsetp += 1;
26376 proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_labelColorNdx, tvb, *offsetp, 1, byte_order);
26377 *offsetp += 1;
26378 struct_xkb_CountedString16(tvb, offsetp, t, byte_order, 1);
26379 }
26380}
26381
26382static void xkbGetDeviceInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
26383{
26384 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_deviceSpec, tvb, *offsetp, 2, byte_order);
26385 *offsetp += 2;
26386 {
26387 static int* const wanted_bits [] = {
26388 &hf_x11_xkb_GetDeviceInfo_wanted_mask_Keyboards,
26389 &hf_x11_xkb_GetDeviceInfo_wanted_mask_ButtonActions,
26390 &hf_x11_xkb_GetDeviceInfo_wanted_mask_IndicatorNames,
26391 &hf_x11_xkb_GetDeviceInfo_wanted_mask_IndicatorMaps,
26392 &hf_x11_xkb_GetDeviceInfo_wanted_mask_IndicatorState,
26393 NULL
26394 };
26395 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetDeviceInfo_wanted, ett_x11_rectangle, wanted_bits, byte_order);
26396 }
26397 *offsetp += 2;
26398 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_allButtons, tvb, *offsetp, 1, byte_order);
26399 *offsetp += 1;
26400 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_firstButton, tvb, *offsetp, 1, byte_order);
26401 *offsetp += 1;
26402 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_nButtons, tvb, *offsetp, 1, byte_order);
26403 *offsetp += 1;
26404 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26405 *offsetp += 1;
26406 field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_ledClass, byte_order);
26407 field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_ledID, byte_order);
26408}
26409static void xkbGetDeviceInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
26410{
26411 int sequence_number;
26412 int f_nDeviceLedFBs;
26413 int f_nBtnsRtrn;
26414 int f_nameLen;
26415
26416 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceInfo");
26417
26418 REPLY(reply);
26419 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_deviceID, tvb, *offsetp, 1, byte_order);
26420 *offsetp += 1;
26421 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
26422 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
26423 "%d (xkb-GetDeviceInfo)", sequence_number);
26424 *offsetp += 2;
26425 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
26426 *offsetp += 4;
26427 {
26428 static int* const present_bits [] = {
26429 &hf_x11_xkb_GetDeviceInfo_reply_present_mask_Keyboards,
26430 &hf_x11_xkb_GetDeviceInfo_reply_present_mask_ButtonActions,
26431 &hf_x11_xkb_GetDeviceInfo_reply_present_mask_IndicatorNames,
26432 &hf_x11_xkb_GetDeviceInfo_reply_present_mask_IndicatorMaps,
26433 &hf_x11_xkb_GetDeviceInfo_reply_present_mask_IndicatorState,
26434 NULL
26435 };
26436 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetDeviceInfo_reply_present, ett_x11_rectangle, present_bits, byte_order);
26437 }
26438 *offsetp += 2;
26439 {
26440 static int* const supported_bits [] = {
26441 &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_Keyboards,
26442 &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_ButtonActions,
26443 &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_IndicatorNames,
26444 &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_IndicatorMaps,
26445 &hf_x11_xkb_GetDeviceInfo_reply_supported_mask_IndicatorState,
26446 NULL
26447 };
26448 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetDeviceInfo_reply_supported, ett_x11_rectangle, supported_bits, byte_order);
26449 }
26450 *offsetp += 2;
26451 {
26452 static int* const unsupported_bits [] = {
26453 &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_Keyboards,
26454 &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_ButtonActions,
26455 &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_IndicatorNames,
26456 &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_IndicatorMaps,
26457 &hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_IndicatorState,
26458 NULL
26459 };
26460 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_GetDeviceInfo_reply_unsupported, ett_x11_rectangle, unsupported_bits, byte_order);
26461 }
26462 *offsetp += 2;
26463 f_nDeviceLedFBs = tvb_get_uint16(tvb, *offsetp, byte_order);
26464 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nDeviceLedFBs, tvb, *offsetp, 2, byte_order);
26465 *offsetp += 2;
26466 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_firstBtnWanted, tvb, *offsetp, 1, byte_order);
26467 *offsetp += 1;
26468 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nBtnsWanted, tvb, *offsetp, 1, byte_order);
26469 *offsetp += 1;
26470 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_firstBtnRtrn, tvb, *offsetp, 1, byte_order);
26471 *offsetp += 1;
26472 f_nBtnsRtrn = tvb_get_uint8(tvb, *offsetp);
26473 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nBtnsRtrn, tvb, *offsetp, 1, byte_order);
26474 *offsetp += 1;
26475 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_totalBtns, tvb, *offsetp, 1, byte_order);
26476 *offsetp += 1;
26477 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_hasOwnState, tvb, *offsetp, 1, byte_order);
26478 *offsetp += 1;
26479 field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_reply_dfltKbdFB, byte_order);
26480 field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_reply_dfltLedFB, byte_order);
26481 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
26482 *offsetp += 2;
26483 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_devType, tvb, *offsetp, 4, byte_order);
26484 *offsetp += 4;
26485 f_nameLen = tvb_get_uint16(tvb, *offsetp, byte_order);
26486 proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nameLen, tvb, *offsetp, 2, byte_order);
26487 *offsetp += 2;
26488 listOfByte(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_reply_name, f_nameLen, byte_order);
26489 pad_to_4_bytes(tvb, offsetp, t);
26490 struct_xkb_Action(tvb, offsetp, t, byte_order, f_nBtnsRtrn);
26491 struct_xkb_DeviceLedInfo(tvb, offsetp, t, byte_order, f_nDeviceLedFBs);
26492}
26493
26494static void xkbSetDeviceInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
26495{
26496 int f_nBtns;
26497 int f_nDeviceLedFBs;
26498 proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_deviceSpec, tvb, *offsetp, 2, byte_order);
26499 *offsetp += 2;
26500 proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_firstBtn, tvb, *offsetp, 1, byte_order);
26501 *offsetp += 1;
26502 f_nBtns = tvb_get_uint8(tvb, *offsetp);
26503 proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_nBtns, tvb, *offsetp, 1, byte_order);
26504 *offsetp += 1;
26505 {
26506 static int* const change_bits [] = {
26507 &hf_x11_xkb_SetDeviceInfo_change_mask_Keyboards,
26508 &hf_x11_xkb_SetDeviceInfo_change_mask_ButtonActions,
26509 &hf_x11_xkb_SetDeviceInfo_change_mask_IndicatorNames,
26510 &hf_x11_xkb_SetDeviceInfo_change_mask_IndicatorMaps,
26511 &hf_x11_xkb_SetDeviceInfo_change_mask_IndicatorState,
26512 NULL
26513 };
26514 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_SetDeviceInfo_change, ett_x11_rectangle, change_bits, byte_order);
26515 }
26516 *offsetp += 2;
26517 f_nDeviceLedFBs = tvb_get_uint16(tvb, *offsetp, byte_order);
26518 proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_nDeviceLedFBs, tvb, *offsetp, 2, byte_order);
26519 *offsetp += 2;
26520 struct_xkb_Action(tvb, offsetp, t, byte_order, f_nBtns);
26521 length -= f_nBtns * 8;
26522 struct_xkb_DeviceLedInfo(tvb, offsetp, t, byte_order, f_nDeviceLedFBs);
26523 length -= f_nDeviceLedFBs * 0;
26524}
26525
26526static void xkbSetDebuggingFlags(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
26527{
26528 int f_msgLength;
26529 f_msgLength = tvb_get_uint16(tvb, *offsetp, byte_order);
26530 proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_msgLength, tvb, *offsetp, 2, byte_order);
26531 *offsetp += 2;
26532 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
26533 *offsetp += 2;
26534 proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_affectFlags, tvb, *offsetp, 4, byte_order);
26535 *offsetp += 4;
26536 proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_flags, tvb, *offsetp, 4, byte_order);
26537 *offsetp += 4;
26538 proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_affectCtrls, tvb, *offsetp, 4, byte_order);
26539 *offsetp += 4;
26540 proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_ctrls, tvb, *offsetp, 4, byte_order);
26541 *offsetp += 4;
26542 listOfByte(tvb, offsetp, t, hf_x11_xkb_SetDebuggingFlags_message, f_msgLength, byte_order);
26543 length -= f_msgLength * 1;
26544}
26545static void xkbSetDebuggingFlags_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
26546{
26547 int sequence_number;
26548
26549 col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDebuggingFlags");
26550
26551 REPLY(reply);
26552 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26553 *offsetp += 1;
26554 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
26555 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
26556 "%d (xkb-SetDebuggingFlags)", sequence_number);
26557 *offsetp += 2;
26558 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
26559 *offsetp += 4;
26560 proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_currentFlags, tvb, *offsetp, 4, byte_order);
26561 *offsetp += 4;
26562 proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_currentCtrls, tvb, *offsetp, 4, byte_order);
26563 *offsetp += 4;
26564 proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_supportedFlags, tvb, *offsetp, 4, byte_order);
26565 *offsetp += 4;
26566 proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_supportedCtrls, tvb, *offsetp, 4, byte_order);
26567 *offsetp += 4;
26568 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
26569 *offsetp += 8;
26570}
26571
26572static void xkbMapNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
26573{
26574 proto_tree_add_item(t, hf_x11_xkb_MapNotify_xkbType, tvb, *offsetp, 1, byte_order);
26575 *offsetp += 1;
26576 CARD16(event_sequencenumber);
26577 proto_tree_add_item(t, hf_x11_xkb_MapNotify_time, tvb, *offsetp, 4, byte_order);
26578 *offsetp += 4;
26579 proto_tree_add_item(t, hf_x11_xkb_MapNotify_deviceID, tvb, *offsetp, 1, byte_order);
26580 *offsetp += 1;
26581 proto_tree_add_item(t, hf_x11_xkb_MapNotify_ptrBtnActions, tvb, *offsetp, 1, byte_order);
26582 *offsetp += 1;
26583 {
26584 static int* const changed_bits [] = {
26585 &hf_x11_xkb_MapNotify_changed_mask_KeyTypes,
26586 &hf_x11_xkb_MapNotify_changed_mask_KeySyms,
26587 &hf_x11_xkb_MapNotify_changed_mask_ModifierMap,
26588 &hf_x11_xkb_MapNotify_changed_mask_ExplicitComponents,
26589 &hf_x11_xkb_MapNotify_changed_mask_KeyActions,
26590 &hf_x11_xkb_MapNotify_changed_mask_KeyBehaviors,
26591 &hf_x11_xkb_MapNotify_changed_mask_VirtualMods,
26592 &hf_x11_xkb_MapNotify_changed_mask_VirtualModMap,
26593 NULL
26594 };
26595 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_MapNotify_changed, ett_x11_rectangle, changed_bits, byte_order);
26596 }
26597 *offsetp += 2;
26598 proto_tree_add_item(t, hf_x11_xkb_MapNotify_minKeyCode, tvb, *offsetp, 1, byte_order);
26599 *offsetp += 1;
26600 proto_tree_add_item(t, hf_x11_xkb_MapNotify_maxKeyCode, tvb, *offsetp, 1, byte_order);
26601 *offsetp += 1;
26602 proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstType, tvb, *offsetp, 1, byte_order);
26603 *offsetp += 1;
26604 proto_tree_add_item(t, hf_x11_xkb_MapNotify_nTypes, tvb, *offsetp, 1, byte_order);
26605 *offsetp += 1;
26606 proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeySym, tvb, *offsetp, 1, byte_order);
26607 *offsetp += 1;
26608 proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeySyms, tvb, *offsetp, 1, byte_order);
26609 *offsetp += 1;
26610 proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeyAct, tvb, *offsetp, 1, byte_order);
26611 *offsetp += 1;
26612 proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeyActs, tvb, *offsetp, 1, byte_order);
26613 *offsetp += 1;
26614 proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeyBehavior, tvb, *offsetp, 1, byte_order);
26615 *offsetp += 1;
26616 proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeyBehavior, tvb, *offsetp, 1, byte_order);
26617 *offsetp += 1;
26618 proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeyExplicit, tvb, *offsetp, 1, byte_order);
26619 *offsetp += 1;
26620 proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeyExplicit, tvb, *offsetp, 1, byte_order);
26621 *offsetp += 1;
26622 proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstModMapKey, tvb, *offsetp, 1, byte_order);
26623 *offsetp += 1;
26624 proto_tree_add_item(t, hf_x11_xkb_MapNotify_nModMapKeys, tvb, *offsetp, 1, byte_order);
26625 *offsetp += 1;
26626 proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstVModMapKey, tvb, *offsetp, 1, byte_order);
26627 *offsetp += 1;
26628 proto_tree_add_item(t, hf_x11_xkb_MapNotify_nVModMapKeys, tvb, *offsetp, 1, byte_order);
26629 *offsetp += 1;
26630 {
26631 static int* const virtualMods_bits [] = {
26632 &hf_x11_xkb_MapNotify_virtualMods_mask_0,
26633 &hf_x11_xkb_MapNotify_virtualMods_mask_1,
26634 &hf_x11_xkb_MapNotify_virtualMods_mask_2,
26635 &hf_x11_xkb_MapNotify_virtualMods_mask_3,
26636 &hf_x11_xkb_MapNotify_virtualMods_mask_4,
26637 &hf_x11_xkb_MapNotify_virtualMods_mask_5,
26638 &hf_x11_xkb_MapNotify_virtualMods_mask_6,
26639 &hf_x11_xkb_MapNotify_virtualMods_mask_7,
26640 &hf_x11_xkb_MapNotify_virtualMods_mask_8,
26641 &hf_x11_xkb_MapNotify_virtualMods_mask_9,
26642 &hf_x11_xkb_MapNotify_virtualMods_mask_10,
26643 &hf_x11_xkb_MapNotify_virtualMods_mask_11,
26644 &hf_x11_xkb_MapNotify_virtualMods_mask_12,
26645 &hf_x11_xkb_MapNotify_virtualMods_mask_13,
26646 &hf_x11_xkb_MapNotify_virtualMods_mask_14,
26647 &hf_x11_xkb_MapNotify_virtualMods_mask_15,
26648 NULL
26649 };
26650 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_MapNotify_virtualMods, ett_x11_rectangle, virtualMods_bits, byte_order);
26651 }
26652 *offsetp += 2;
26653 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
26654 *offsetp += 2;
26655}
26656
26657
26658static void xkbStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
26659{
26660 proto_tree_add_item(t, hf_x11_xkb_StateNotify_xkbType, tvb, *offsetp, 1, byte_order);
26661 *offsetp += 1;
26662 CARD16(event_sequencenumber);
26663 proto_tree_add_item(t, hf_x11_xkb_StateNotify_time, tvb, *offsetp, 4, byte_order);
26664 *offsetp += 4;
26665 proto_tree_add_item(t, hf_x11_xkb_StateNotify_deviceID, tvb, *offsetp, 1, byte_order);
26666 *offsetp += 1;
26667 {
26668 static int* const mods_bits [] = {
26669 &hf_x11_xkb_StateNotify_mods_mask_Shift,
26670 &hf_x11_xkb_StateNotify_mods_mask_Lock,
26671 &hf_x11_xkb_StateNotify_mods_mask_Control,
26672 &hf_x11_xkb_StateNotify_mods_mask_1,
26673 &hf_x11_xkb_StateNotify_mods_mask_2,
26674 &hf_x11_xkb_StateNotify_mods_mask_3,
26675 &hf_x11_xkb_StateNotify_mods_mask_4,
26676 &hf_x11_xkb_StateNotify_mods_mask_5,
26677 &hf_x11_xkb_StateNotify_mods_mask_Any,
26678 NULL
26679 };
26680 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_mods, ett_x11_rectangle, mods_bits, byte_order);
26681 }
26682 *offsetp += 1;
26683 {
26684 static int* const baseMods_bits [] = {
26685 &hf_x11_xkb_StateNotify_baseMods_mask_Shift,
26686 &hf_x11_xkb_StateNotify_baseMods_mask_Lock,
26687 &hf_x11_xkb_StateNotify_baseMods_mask_Control,
26688 &hf_x11_xkb_StateNotify_baseMods_mask_1,
26689 &hf_x11_xkb_StateNotify_baseMods_mask_2,
26690 &hf_x11_xkb_StateNotify_baseMods_mask_3,
26691 &hf_x11_xkb_StateNotify_baseMods_mask_4,
26692 &hf_x11_xkb_StateNotify_baseMods_mask_5,
26693 &hf_x11_xkb_StateNotify_baseMods_mask_Any,
26694 NULL
26695 };
26696 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_baseMods, ett_x11_rectangle, baseMods_bits, byte_order);
26697 }
26698 *offsetp += 1;
26699 {
26700 static int* const latchedMods_bits [] = {
26701 &hf_x11_xkb_StateNotify_latchedMods_mask_Shift,
26702 &hf_x11_xkb_StateNotify_latchedMods_mask_Lock,
26703 &hf_x11_xkb_StateNotify_latchedMods_mask_Control,
26704 &hf_x11_xkb_StateNotify_latchedMods_mask_1,
26705 &hf_x11_xkb_StateNotify_latchedMods_mask_2,
26706 &hf_x11_xkb_StateNotify_latchedMods_mask_3,
26707 &hf_x11_xkb_StateNotify_latchedMods_mask_4,
26708 &hf_x11_xkb_StateNotify_latchedMods_mask_5,
26709 &hf_x11_xkb_StateNotify_latchedMods_mask_Any,
26710 NULL
26711 };
26712 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_latchedMods, ett_x11_rectangle, latchedMods_bits, byte_order);
26713 }
26714 *offsetp += 1;
26715 {
26716 static int* const lockedMods_bits [] = {
26717 &hf_x11_xkb_StateNotify_lockedMods_mask_Shift,
26718 &hf_x11_xkb_StateNotify_lockedMods_mask_Lock,
26719 &hf_x11_xkb_StateNotify_lockedMods_mask_Control,
26720 &hf_x11_xkb_StateNotify_lockedMods_mask_1,
26721 &hf_x11_xkb_StateNotify_lockedMods_mask_2,
26722 &hf_x11_xkb_StateNotify_lockedMods_mask_3,
26723 &hf_x11_xkb_StateNotify_lockedMods_mask_4,
26724 &hf_x11_xkb_StateNotify_lockedMods_mask_5,
26725 &hf_x11_xkb_StateNotify_lockedMods_mask_Any,
26726 NULL
26727 };
26728 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_lockedMods, ett_x11_rectangle, lockedMods_bits, byte_order);
26729 }
26730 *offsetp += 1;
26731 field8(tvb, offsetp, t, hf_x11_xkb_StateNotify_group, byte_order);
26732 proto_tree_add_item(t, hf_x11_xkb_StateNotify_baseGroup, tvb, *offsetp, 2, byte_order);
26733 *offsetp += 2;
26734 proto_tree_add_item(t, hf_x11_xkb_StateNotify_latchedGroup, tvb, *offsetp, 2, byte_order);
26735 *offsetp += 2;
26736 field8(tvb, offsetp, t, hf_x11_xkb_StateNotify_lockedGroup, byte_order);
26737 {
26738 static int* const compatState_bits [] = {
26739 &hf_x11_xkb_StateNotify_compatState_mask_Shift,
26740 &hf_x11_xkb_StateNotify_compatState_mask_Lock,
26741 &hf_x11_xkb_StateNotify_compatState_mask_Control,
26742 &hf_x11_xkb_StateNotify_compatState_mask_1,
26743 &hf_x11_xkb_StateNotify_compatState_mask_2,
26744 &hf_x11_xkb_StateNotify_compatState_mask_3,
26745 &hf_x11_xkb_StateNotify_compatState_mask_4,
26746 &hf_x11_xkb_StateNotify_compatState_mask_5,
26747 &hf_x11_xkb_StateNotify_compatState_mask_Any,
26748 NULL
26749 };
26750 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_compatState, ett_x11_rectangle, compatState_bits, byte_order);
26751 }
26752 *offsetp += 1;
26753 {
26754 static int* const grabMods_bits [] = {
26755 &hf_x11_xkb_StateNotify_grabMods_mask_Shift,
26756 &hf_x11_xkb_StateNotify_grabMods_mask_Lock,
26757 &hf_x11_xkb_StateNotify_grabMods_mask_Control,
26758 &hf_x11_xkb_StateNotify_grabMods_mask_1,
26759 &hf_x11_xkb_StateNotify_grabMods_mask_2,
26760 &hf_x11_xkb_StateNotify_grabMods_mask_3,
26761 &hf_x11_xkb_StateNotify_grabMods_mask_4,
26762 &hf_x11_xkb_StateNotify_grabMods_mask_5,
26763 &hf_x11_xkb_StateNotify_grabMods_mask_Any,
26764 NULL
26765 };
26766 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_grabMods, ett_x11_rectangle, grabMods_bits, byte_order);
26767 }
26768 *offsetp += 1;
26769 {
26770 static int* const compatGrabMods_bits [] = {
26771 &hf_x11_xkb_StateNotify_compatGrabMods_mask_Shift,
26772 &hf_x11_xkb_StateNotify_compatGrabMods_mask_Lock,
26773 &hf_x11_xkb_StateNotify_compatGrabMods_mask_Control,
26774 &hf_x11_xkb_StateNotify_compatGrabMods_mask_1,
26775 &hf_x11_xkb_StateNotify_compatGrabMods_mask_2,
26776 &hf_x11_xkb_StateNotify_compatGrabMods_mask_3,
26777 &hf_x11_xkb_StateNotify_compatGrabMods_mask_4,
26778 &hf_x11_xkb_StateNotify_compatGrabMods_mask_5,
26779 &hf_x11_xkb_StateNotify_compatGrabMods_mask_Any,
26780 NULL
26781 };
26782 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_compatGrabMods, ett_x11_rectangle, compatGrabMods_bits, byte_order);
26783 }
26784 *offsetp += 1;
26785 {
26786 static int* const lookupMods_bits [] = {
26787 &hf_x11_xkb_StateNotify_lookupMods_mask_Shift,
26788 &hf_x11_xkb_StateNotify_lookupMods_mask_Lock,
26789 &hf_x11_xkb_StateNotify_lookupMods_mask_Control,
26790 &hf_x11_xkb_StateNotify_lookupMods_mask_1,
26791 &hf_x11_xkb_StateNotify_lookupMods_mask_2,
26792 &hf_x11_xkb_StateNotify_lookupMods_mask_3,
26793 &hf_x11_xkb_StateNotify_lookupMods_mask_4,
26794 &hf_x11_xkb_StateNotify_lookupMods_mask_5,
26795 &hf_x11_xkb_StateNotify_lookupMods_mask_Any,
26796 NULL
26797 };
26798 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_lookupMods, ett_x11_rectangle, lookupMods_bits, byte_order);
26799 }
26800 *offsetp += 1;
26801 {
26802 static int* const compatLoockupMods_bits [] = {
26803 &hf_x11_xkb_StateNotify_compatLoockupMods_mask_Shift,
26804 &hf_x11_xkb_StateNotify_compatLoockupMods_mask_Lock,
26805 &hf_x11_xkb_StateNotify_compatLoockupMods_mask_Control,
26806 &hf_x11_xkb_StateNotify_compatLoockupMods_mask_1,
26807 &hf_x11_xkb_StateNotify_compatLoockupMods_mask_2,
26808 &hf_x11_xkb_StateNotify_compatLoockupMods_mask_3,
26809 &hf_x11_xkb_StateNotify_compatLoockupMods_mask_4,
26810 &hf_x11_xkb_StateNotify_compatLoockupMods_mask_5,
26811 &hf_x11_xkb_StateNotify_compatLoockupMods_mask_Any,
26812 NULL
26813 };
26814 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_compatLoockupMods, ett_x11_rectangle, compatLoockupMods_bits, byte_order);
26815 }
26816 *offsetp += 1;
26817 {
26818 static int* const ptrBtnState_bits [] = {
26819 &hf_x11_xkb_StateNotify_ptrBtnState_mask_Shift,
26820 &hf_x11_xkb_StateNotify_ptrBtnState_mask_Lock,
26821 &hf_x11_xkb_StateNotify_ptrBtnState_mask_Control,
26822 &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod1,
26823 &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod2,
26824 &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod3,
26825 &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod4,
26826 &hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod5,
26827 &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button1,
26828 &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button2,
26829 &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button3,
26830 &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button4,
26831 &hf_x11_xkb_StateNotify_ptrBtnState_mask_Button5,
26832 NULL
26833 };
26834 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_ptrBtnState, ett_x11_rectangle, ptrBtnState_bits, byte_order);
26835 }
26836 *offsetp += 2;
26837 {
26838 static int* const changed_bits [] = {
26839 &hf_x11_xkb_StateNotify_changed_mask_ModifierState,
26840 &hf_x11_xkb_StateNotify_changed_mask_ModifierBase,
26841 &hf_x11_xkb_StateNotify_changed_mask_ModifierLatch,
26842 &hf_x11_xkb_StateNotify_changed_mask_ModifierLock,
26843 &hf_x11_xkb_StateNotify_changed_mask_GroupState,
26844 &hf_x11_xkb_StateNotify_changed_mask_GroupBase,
26845 &hf_x11_xkb_StateNotify_changed_mask_GroupLatch,
26846 &hf_x11_xkb_StateNotify_changed_mask_GroupLock,
26847 &hf_x11_xkb_StateNotify_changed_mask_CompatState,
26848 &hf_x11_xkb_StateNotify_changed_mask_GrabMods,
26849 &hf_x11_xkb_StateNotify_changed_mask_CompatGrabMods,
26850 &hf_x11_xkb_StateNotify_changed_mask_LookupMods,
26851 &hf_x11_xkb_StateNotify_changed_mask_CompatLookupMods,
26852 &hf_x11_xkb_StateNotify_changed_mask_PointerButtons,
26853 NULL
26854 };
26855 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_StateNotify_changed, ett_x11_rectangle, changed_bits, byte_order);
26856 }
26857 *offsetp += 2;
26858 proto_tree_add_item(t, hf_x11_xkb_StateNotify_keycode, tvb, *offsetp, 1, byte_order);
26859 *offsetp += 1;
26860 proto_tree_add_item(t, hf_x11_xkb_StateNotify_eventType, tvb, *offsetp, 1, byte_order);
26861 *offsetp += 1;
26862 proto_tree_add_item(t, hf_x11_xkb_StateNotify_requestMajor, tvb, *offsetp, 1, byte_order);
26863 *offsetp += 1;
26864 proto_tree_add_item(t, hf_x11_xkb_StateNotify_requestMinor, tvb, *offsetp, 1, byte_order);
26865 *offsetp += 1;
26866}
26867
26868
26869static void xkbControlsNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
26870{
26871 proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_xkbType, tvb, *offsetp, 1, byte_order);
26872 *offsetp += 1;
26873 CARD16(event_sequencenumber);
26874 proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_time, tvb, *offsetp, 4, byte_order);
26875 *offsetp += 4;
26876 proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_deviceID, tvb, *offsetp, 1, byte_order);
26877 *offsetp += 1;
26878 proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_numGroups, tvb, *offsetp, 1, byte_order);
26879 *offsetp += 1;
26880 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
26881 *offsetp += 2;
26882 {
26883 static int* const changedControls_bits [] = {
26884 &hf_x11_xkb_ControlsNotify_changedControls_mask_GroupsWrap,
26885 &hf_x11_xkb_ControlsNotify_changedControls_mask_InternalMods,
26886 &hf_x11_xkb_ControlsNotify_changedControls_mask_IgnoreLockMods,
26887 &hf_x11_xkb_ControlsNotify_changedControls_mask_PerKeyRepeat,
26888 &hf_x11_xkb_ControlsNotify_changedControls_mask_ControlsEnabled,
26889 NULL
26890 };
26891 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ControlsNotify_changedControls, ett_x11_rectangle, changedControls_bits, byte_order);
26892 }
26893 *offsetp += 4;
26894 {
26895 static int* const enabledControls_bits [] = {
26896 &hf_x11_xkb_ControlsNotify_enabledControls_mask_RepeatKeys,
26897 &hf_x11_xkb_ControlsNotify_enabledControls_mask_SlowKeys,
26898 &hf_x11_xkb_ControlsNotify_enabledControls_mask_BounceKeys,
26899 &hf_x11_xkb_ControlsNotify_enabledControls_mask_StickyKeys,
26900 &hf_x11_xkb_ControlsNotify_enabledControls_mask_MouseKeys,
26901 &hf_x11_xkb_ControlsNotify_enabledControls_mask_MouseKeysAccel,
26902 &hf_x11_xkb_ControlsNotify_enabledControls_mask_AccessXKeys,
26903 &hf_x11_xkb_ControlsNotify_enabledControls_mask_AccessXTimeoutMask,
26904 &hf_x11_xkb_ControlsNotify_enabledControls_mask_AccessXFeedbackMask,
26905 &hf_x11_xkb_ControlsNotify_enabledControls_mask_AudibleBellMask,
26906 &hf_x11_xkb_ControlsNotify_enabledControls_mask_Overlay1Mask,
26907 &hf_x11_xkb_ControlsNotify_enabledControls_mask_Overlay2Mask,
26908 &hf_x11_xkb_ControlsNotify_enabledControls_mask_IgnoreGroupLockMask,
26909 NULL
26910 };
26911 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ControlsNotify_enabledControls, ett_x11_rectangle, enabledControls_bits, byte_order);
26912 }
26913 *offsetp += 4;
26914 {
26915 static int* const enabledControlChanges_bits [] = {
26916 &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_RepeatKeys,
26917 &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_SlowKeys,
26918 &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_BounceKeys,
26919 &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_StickyKeys,
26920 &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_MouseKeys,
26921 &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_MouseKeysAccel,
26922 &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AccessXKeys,
26923 &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AccessXTimeoutMask,
26924 &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AccessXFeedbackMask,
26925 &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AudibleBellMask,
26926 &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_Overlay1Mask,
26927 &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_Overlay2Mask,
26928 &hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_IgnoreGroupLockMask,
26929 NULL
26930 };
26931 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ControlsNotify_enabledControlChanges, ett_x11_rectangle, enabledControlChanges_bits, byte_order);
26932 }
26933 *offsetp += 4;
26934 proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_keycode, tvb, *offsetp, 1, byte_order);
26935 *offsetp += 1;
26936 proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_eventType, tvb, *offsetp, 1, byte_order);
26937 *offsetp += 1;
26938 proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_requestMajor, tvb, *offsetp, 1, byte_order);
26939 *offsetp += 1;
26940 proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_requestMinor, tvb, *offsetp, 1, byte_order);
26941 *offsetp += 1;
26942 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
26943 *offsetp += 4;
26944}
26945
26946
26947static void xkbIndicatorStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
26948{
26949 proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_xkbType, tvb, *offsetp, 1, byte_order);
26950 *offsetp += 1;
26951 CARD16(event_sequencenumber);
26952 proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_time, tvb, *offsetp, 4, byte_order);
26953 *offsetp += 4;
26954 proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_deviceID, tvb, *offsetp, 1, byte_order);
26955 *offsetp += 1;
26956 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
26957 *offsetp += 3;
26958 proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_state, tvb, *offsetp, 4, byte_order);
26959 *offsetp += 4;
26960 proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_stateChanged, tvb, *offsetp, 4, byte_order);
26961 *offsetp += 4;
26962 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
26963 *offsetp += 12;
26964}
26965
26966
26967static void xkbIndicatorMapNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
26968{
26969 proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_xkbType, tvb, *offsetp, 1, byte_order);
26970 *offsetp += 1;
26971 CARD16(event_sequencenumber);
26972 proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_time, tvb, *offsetp, 4, byte_order);
26973 *offsetp += 4;
26974 proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_deviceID, tvb, *offsetp, 1, byte_order);
26975 *offsetp += 1;
26976 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
26977 *offsetp += 3;
26978 proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_state, tvb, *offsetp, 4, byte_order);
26979 *offsetp += 4;
26980 proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_mapChanged, tvb, *offsetp, 4, byte_order);
26981 *offsetp += 4;
26982 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
26983 *offsetp += 12;
26984}
26985
26986
26987static void xkbNamesNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
26988{
26989 proto_tree_add_item(t, hf_x11_xkb_NamesNotify_xkbType, tvb, *offsetp, 1, byte_order);
26990 *offsetp += 1;
26991 CARD16(event_sequencenumber);
26992 proto_tree_add_item(t, hf_x11_xkb_NamesNotify_time, tvb, *offsetp, 4, byte_order);
26993 *offsetp += 4;
26994 proto_tree_add_item(t, hf_x11_xkb_NamesNotify_deviceID, tvb, *offsetp, 1, byte_order);
26995 *offsetp += 1;
26996 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
26997 *offsetp += 1;
26998 {
26999 static int* const changed_bits [] = {
27000 &hf_x11_xkb_NamesNotify_changed_mask_Keycodes,
27001 &hf_x11_xkb_NamesNotify_changed_mask_Geometry,
27002 &hf_x11_xkb_NamesNotify_changed_mask_Symbols,
27003 &hf_x11_xkb_NamesNotify_changed_mask_PhysSymbols,
27004 &hf_x11_xkb_NamesNotify_changed_mask_Types,
27005 &hf_x11_xkb_NamesNotify_changed_mask_Compat,
27006 &hf_x11_xkb_NamesNotify_changed_mask_KeyTypeNames,
27007 &hf_x11_xkb_NamesNotify_changed_mask_KTLevelNames,
27008 &hf_x11_xkb_NamesNotify_changed_mask_IndicatorNames,
27009 &hf_x11_xkb_NamesNotify_changed_mask_KeyNames,
27010 &hf_x11_xkb_NamesNotify_changed_mask_KeyAliases,
27011 &hf_x11_xkb_NamesNotify_changed_mask_VirtualModNames,
27012 &hf_x11_xkb_NamesNotify_changed_mask_GroupNames,
27013 &hf_x11_xkb_NamesNotify_changed_mask_RGNames,
27014 NULL
27015 };
27016 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_NamesNotify_changed, ett_x11_rectangle, changed_bits, byte_order);
27017 }
27018 *offsetp += 2;
27019 proto_tree_add_item(t, hf_x11_xkb_NamesNotify_firstType, tvb, *offsetp, 1, byte_order);
27020 *offsetp += 1;
27021 proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nTypes, tvb, *offsetp, 1, byte_order);
27022 *offsetp += 1;
27023 proto_tree_add_item(t, hf_x11_xkb_NamesNotify_firstLevelName, tvb, *offsetp, 1, byte_order);
27024 *offsetp += 1;
27025 proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nLevelNames, tvb, *offsetp, 1, byte_order);
27026 *offsetp += 1;
27027 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27028 *offsetp += 1;
27029 proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nRadioGroups, tvb, *offsetp, 1, byte_order);
27030 *offsetp += 1;
27031 proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nKeyAliases, tvb, *offsetp, 1, byte_order);
27032 *offsetp += 1;
27033 {
27034 static int* const changedGroupNames_bits [] = {
27035 &hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group1,
27036 &hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group2,
27037 &hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group3,
27038 &hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group4,
27039 NULL
27040 };
27041 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_NamesNotify_changedGroupNames, ett_x11_rectangle, changedGroupNames_bits, byte_order);
27042 }
27043 *offsetp += 1;
27044 {
27045 static int* const changedVirtualMods_bits [] = {
27046 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_0,
27047 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_1,
27048 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_2,
27049 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_3,
27050 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_4,
27051 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_5,
27052 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_6,
27053 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_7,
27054 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_8,
27055 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_9,
27056 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_10,
27057 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_11,
27058 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_12,
27059 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_13,
27060 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_14,
27061 &hf_x11_xkb_NamesNotify_changedVirtualMods_mask_15,
27062 NULL
27063 };
27064 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_NamesNotify_changedVirtualMods, ett_x11_rectangle, changedVirtualMods_bits, byte_order);
27065 }
27066 *offsetp += 2;
27067 proto_tree_add_item(t, hf_x11_xkb_NamesNotify_firstKey, tvb, *offsetp, 1, byte_order);
27068 *offsetp += 1;
27069 proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nKeys, tvb, *offsetp, 1, byte_order);
27070 *offsetp += 1;
27071 proto_tree_add_item(t, hf_x11_xkb_NamesNotify_changedIndicators, tvb, *offsetp, 4, byte_order);
27072 *offsetp += 4;
27073 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 4, ENC_NA);
27074 *offsetp += 4;
27075}
27076
27077
27078static void xkbCompatMapNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
27079{
27080 proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_xkbType, tvb, *offsetp, 1, byte_order);
27081 *offsetp += 1;
27082 CARD16(event_sequencenumber);
27083 proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_time, tvb, *offsetp, 4, byte_order);
27084 *offsetp += 4;
27085 proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_deviceID, tvb, *offsetp, 1, byte_order);
27086 *offsetp += 1;
27087 {
27088 static int* const changedGroups_bits [] = {
27089 &hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group1,
27090 &hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group2,
27091 &hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group3,
27092 &hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group4,
27093 NULL
27094 };
27095 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_CompatMapNotify_changedGroups, ett_x11_rectangle, changedGroups_bits, byte_order);
27096 }
27097 *offsetp += 1;
27098 proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_firstSI, tvb, *offsetp, 2, byte_order);
27099 *offsetp += 2;
27100 proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_nSI, tvb, *offsetp, 2, byte_order);
27101 *offsetp += 2;
27102 proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_nTotalSI, tvb, *offsetp, 2, byte_order);
27103 *offsetp += 2;
27104 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
27105 *offsetp += 16;
27106}
27107
27108
27109static void xkbBellNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
27110{
27111 proto_tree_add_item(t, hf_x11_xkb_BellNotify_xkbType, tvb, *offsetp, 1, byte_order);
27112 *offsetp += 1;
27113 CARD16(event_sequencenumber);
27114 proto_tree_add_item(t, hf_x11_xkb_BellNotify_time, tvb, *offsetp, 4, byte_order);
27115 *offsetp += 4;
27116 proto_tree_add_item(t, hf_x11_xkb_BellNotify_deviceID, tvb, *offsetp, 1, byte_order);
27117 *offsetp += 1;
27118 field8(tvb, offsetp, t, hf_x11_xkb_BellNotify_bellClass, byte_order);
27119 proto_tree_add_item(t, hf_x11_xkb_BellNotify_bellID, tvb, *offsetp, 1, byte_order);
27120 *offsetp += 1;
27121 proto_tree_add_item(t, hf_x11_xkb_BellNotify_percent, tvb, *offsetp, 1, byte_order);
27122 *offsetp += 1;
27123 proto_tree_add_item(t, hf_x11_xkb_BellNotify_pitch, tvb, *offsetp, 2, byte_order);
27124 *offsetp += 2;
27125 proto_tree_add_item(t, hf_x11_xkb_BellNotify_duration, tvb, *offsetp, 2, byte_order);
27126 *offsetp += 2;
27127 proto_tree_add_item(t, hf_x11_xkb_BellNotify_name, tvb, *offsetp, 4, byte_order);
27128 *offsetp += 4;
27129 proto_tree_add_item(t, hf_x11_xkb_BellNotify_window, tvb, *offsetp, 4, byte_order);
27130 *offsetp += 4;
27131 proto_tree_add_item(t, hf_x11_xkb_BellNotify_eventOnly, tvb, *offsetp, 1, byte_order);
27132 *offsetp += 1;
27133 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
27134 *offsetp += 7;
27135}
27136
27137
27138static void xkbActionMessage(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
27139{
27140 proto_tree_add_item(t, hf_x11_xkb_ActionMessage_xkbType, tvb, *offsetp, 1, byte_order);
27141 *offsetp += 1;
27142 CARD16(event_sequencenumber);
27143 proto_tree_add_item(t, hf_x11_xkb_ActionMessage_time, tvb, *offsetp, 4, byte_order);
27144 *offsetp += 4;
27145 proto_tree_add_item(t, hf_x11_xkb_ActionMessage_deviceID, tvb, *offsetp, 1, byte_order);
27146 *offsetp += 1;
27147 proto_tree_add_item(t, hf_x11_xkb_ActionMessage_keycode, tvb, *offsetp, 1, byte_order);
27148 *offsetp += 1;
27149 proto_tree_add_item(t, hf_x11_xkb_ActionMessage_press, tvb, *offsetp, 1, byte_order);
27150 *offsetp += 1;
27151 proto_tree_add_item(t, hf_x11_xkb_ActionMessage_keyEventFollows, tvb, *offsetp, 1, byte_order);
27152 *offsetp += 1;
27153 {
27154 static int* const mods_bits [] = {
27155 &hf_x11_xkb_ActionMessage_mods_mask_Shift,
27156 &hf_x11_xkb_ActionMessage_mods_mask_Lock,
27157 &hf_x11_xkb_ActionMessage_mods_mask_Control,
27158 &hf_x11_xkb_ActionMessage_mods_mask_1,
27159 &hf_x11_xkb_ActionMessage_mods_mask_2,
27160 &hf_x11_xkb_ActionMessage_mods_mask_3,
27161 &hf_x11_xkb_ActionMessage_mods_mask_4,
27162 &hf_x11_xkb_ActionMessage_mods_mask_5,
27163 &hf_x11_xkb_ActionMessage_mods_mask_Any,
27164 NULL
27165 };
27166 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ActionMessage_mods, ett_x11_rectangle, mods_bits, byte_order);
27167 }
27168 *offsetp += 1;
27169 field8(tvb, offsetp, t, hf_x11_xkb_ActionMessage_group, byte_order);
27170 listOfByte(tvb, offsetp, t, hf_x11_xkb_ActionMessage_message, 8, byte_order);
27171 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 10, ENC_NA);
27172 *offsetp += 10;
27173}
27174
27175
27176static void xkbAccessXNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
27177{
27178 proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_xkbType, tvb, *offsetp, 1, byte_order);
27179 *offsetp += 1;
27180 CARD16(event_sequencenumber);
27181 proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_time, tvb, *offsetp, 4, byte_order);
27182 *offsetp += 4;
27183 proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_deviceID, tvb, *offsetp, 1, byte_order);
27184 *offsetp += 1;
27185 proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_keycode, tvb, *offsetp, 1, byte_order);
27186 *offsetp += 1;
27187 {
27188 static int* const detailt_bits [] = {
27189 &hf_x11_xkb_AccessXNotify_detailt_mask_SKPress,
27190 &hf_x11_xkb_AccessXNotify_detailt_mask_SKAccept,
27191 &hf_x11_xkb_AccessXNotify_detailt_mask_SKReject,
27192 &hf_x11_xkb_AccessXNotify_detailt_mask_SKRelease,
27193 &hf_x11_xkb_AccessXNotify_detailt_mask_BKAccept,
27194 &hf_x11_xkb_AccessXNotify_detailt_mask_BKReject,
27195 &hf_x11_xkb_AccessXNotify_detailt_mask_AXKWarning,
27196 NULL
27197 };
27198 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_AccessXNotify_detailt, ett_x11_rectangle, detailt_bits, byte_order);
27199 }
27200 *offsetp += 2;
27201 proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_slowKeysDelay, tvb, *offsetp, 2, byte_order);
27202 *offsetp += 2;
27203 proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_debounceDelay, tvb, *offsetp, 2, byte_order);
27204 *offsetp += 2;
27205 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
27206 *offsetp += 16;
27207}
27208
27209
27210static void xkbExtensionDeviceNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
27211{
27212 proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_xkbType, tvb, *offsetp, 1, byte_order);
27213 *offsetp += 1;
27214 CARD16(event_sequencenumber);
27215 proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_time, tvb, *offsetp, 4, byte_order);
27216 *offsetp += 4;
27217 proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_deviceID, tvb, *offsetp, 1, byte_order);
27218 *offsetp += 1;
27219 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27220 *offsetp += 1;
27221 {
27222 static int* const reason_bits [] = {
27223 &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_Keyboards,
27224 &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_ButtonActions,
27225 &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_IndicatorNames,
27226 &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_IndicatorMaps,
27227 &hf_x11_xkb_ExtensionDeviceNotify_reason_mask_IndicatorState,
27228 NULL
27229 };
27230 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ExtensionDeviceNotify_reason, ett_x11_rectangle, reason_bits, byte_order);
27231 }
27232 *offsetp += 2;
27233 field16(tvb, offsetp, t, hf_x11_xkb_ExtensionDeviceNotify_ledClass, byte_order);
27234 proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_ledID, tvb, *offsetp, 2, byte_order);
27235 *offsetp += 2;
27236 proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_ledsDefined, tvb, *offsetp, 4, byte_order);
27237 *offsetp += 4;
27238 proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_ledState, tvb, *offsetp, 4, byte_order);
27239 *offsetp += 4;
27240 proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_firstButton, tvb, *offsetp, 1, byte_order);
27241 *offsetp += 1;
27242 proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_nButtons, tvb, *offsetp, 1, byte_order);
27243 *offsetp += 1;
27244 {
27245 static int* const supported_bits [] = {
27246 &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_Keyboards,
27247 &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_ButtonActions,
27248 &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_IndicatorNames,
27249 &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_IndicatorMaps,
27250 &hf_x11_xkb_ExtensionDeviceNotify_supported_mask_IndicatorState,
27251 NULL
27252 };
27253 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ExtensionDeviceNotify_supported, ett_x11_rectangle, supported_bits, byte_order);
27254 }
27255 *offsetp += 2;
27256 {
27257 static int* const unsupported_bits [] = {
27258 &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_Keyboards,
27259 &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_ButtonActions,
27260 &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_IndicatorNames,
27261 &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_IndicatorMaps,
27262 &hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_IndicatorState,
27263 NULL
27264 };
27265 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_xkb_ExtensionDeviceNotify_unsupported, ett_x11_rectangle, unsupported_bits, byte_order);
27266 }
27267 *offsetp += 2;
27268 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
27269 *offsetp += 2;
27270}
27271
27272static const value_string xkb_extension_minor[] = {
27273 { 0, "UseExtension" },
27274 { 1, "SelectEvents" },
27275 { 3, "Bell" },
27276 { 4, "GetState" },
27277 { 5, "LatchLockState" },
27278 { 6, "GetControls" },
27279 { 7, "SetControls" },
27280 { 8, "GetMap" },
27281 { 9, "SetMap" },
27282 { 10, "GetCompatMap" },
27283 { 11, "SetCompatMap" },
27284 { 12, "GetIndicatorState" },
27285 { 13, "GetIndicatorMap" },
27286 { 14, "SetIndicatorMap" },
27287 { 15, "GetNamedIndicator" },
27288 { 16, "SetNamedIndicator" },
27289 { 17, "GetNames" },
27290 { 18, "SetNames" },
27291 { 21, "PerClientFlags" },
27292 { 22, "ListComponents" },
27293 { 23, "GetKbdByName" },
27294 { 24, "GetDeviceInfo" },
27295 { 25, "SetDeviceInfo" },
27296 { 101, "SetDebuggingFlags" },
27297 { 0, NULL }
27298};
27299static const x11_event_info xkb_events[] = {
27300 { "xkb-MapNotify", xkbMapNotify },
27301 { "xkb-StateNotify", xkbStateNotify },
27302 { "xkb-ControlsNotify", xkbControlsNotify },
27303 { "xkb-IndicatorStateNotify", xkbIndicatorStateNotify },
27304 { "xkb-IndicatorMapNotify", xkbIndicatorMapNotify },
27305 { "xkb-NamesNotify", xkbNamesNotify },
27306 { "xkb-CompatMapNotify", xkbCompatMapNotify },
27307 { "xkb-BellNotify", xkbBellNotify },
27308 { "xkb-ActionMessage", xkbActionMessage },
27309 { "xkb-AccessXNotify", xkbAccessXNotify },
27310 { "xkb-ExtensionDeviceNotify", xkbExtensionDeviceNotify },
27311 { NULL, NULL }
27312};
27313static const x11_reply_info xkb_replies[] = {
27314 { 0, xkbUseExtension_Reply },
27315 { 4, xkbGetState_Reply },
27316 { 6, xkbGetControls_Reply },
27317 { 8, xkbGetMap_Reply },
27318 { 10, xkbGetCompatMap_Reply },
27319 { 12, xkbGetIndicatorState_Reply },
27320 { 13, xkbGetIndicatorMap_Reply },
27321 { 15, xkbGetNamedIndicator_Reply },
27322 { 17, xkbGetNames_Reply },
27323 { 21, xkbPerClientFlags_Reply },
27324 { 22, xkbListComponents_Reply },
27325 { 23, xkbGetKbdByName_Reply },
27326 { 24, xkbGetDeviceInfo_Reply },
27327 { 101, xkbSetDebuggingFlags_Reply },
27328 { 0, NULL }
27329};
27330
27331static void dispatch_xkb(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27332{
27333 int minor, length;
27334 minor = CARD8(xkb_extension_minor);
27335 length = REQUEST_LENGTH();
27336
27337 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
27338 val_to_str(minor, xkb_extension_minor,
27339 "<Unknown opcode %d>"));
27340 switch (minor) {
27341 case 0:
27342 xkbUseExtension(tvb, pinfo, offsetp, t, byte_order, length);
27343 break;
27344 case 1:
27345 xkbSelectEvents(tvb, pinfo, offsetp, t, byte_order, length);
27346 break;
27347 case 3:
27348 xkbBell(tvb, pinfo, offsetp, t, byte_order, length);
27349 break;
27350 case 4:
27351 xkbGetState(tvb, pinfo, offsetp, t, byte_order, length);
27352 break;
27353 case 5:
27354 xkbLatchLockState(tvb, pinfo, offsetp, t, byte_order, length);
27355 break;
27356 case 6:
27357 xkbGetControls(tvb, pinfo, offsetp, t, byte_order, length);
27358 break;
27359 case 7:
27360 xkbSetControls(tvb, pinfo, offsetp, t, byte_order, length);
27361 break;
27362 case 8:
27363 xkbGetMap(tvb, pinfo, offsetp, t, byte_order, length);
27364 break;
27365 case 9:
27366 xkbSetMap(tvb, pinfo, offsetp, t, byte_order, length);
27367 break;
27368 case 10:
27369 xkbGetCompatMap(tvb, pinfo, offsetp, t, byte_order, length);
27370 break;
27371 case 11:
27372 xkbSetCompatMap(tvb, pinfo, offsetp, t, byte_order, length);
27373 break;
27374 case 12:
27375 xkbGetIndicatorState(tvb, pinfo, offsetp, t, byte_order, length);
27376 break;
27377 case 13:
27378 xkbGetIndicatorMap(tvb, pinfo, offsetp, t, byte_order, length);
27379 break;
27380 case 14:
27381 xkbSetIndicatorMap(tvb, pinfo, offsetp, t, byte_order, length);
27382 break;
27383 case 15:
27384 xkbGetNamedIndicator(tvb, pinfo, offsetp, t, byte_order, length);
27385 break;
27386 case 16:
27387 xkbSetNamedIndicator(tvb, pinfo, offsetp, t, byte_order, length);
27388 break;
27389 case 17:
27390 xkbGetNames(tvb, pinfo, offsetp, t, byte_order, length);
27391 break;
27392 case 18:
27393 xkbSetNames(tvb, pinfo, offsetp, t, byte_order, length);
27394 break;
27395 case 21:
27396 xkbPerClientFlags(tvb, pinfo, offsetp, t, byte_order, length);
27397 break;
27398 case 22:
27399 xkbListComponents(tvb, pinfo, offsetp, t, byte_order, length);
27400 break;
27401 case 23:
27402 xkbGetKbdByName(tvb, pinfo, offsetp, t, byte_order, length);
27403 break;
27404 case 24:
27405 xkbGetDeviceInfo(tvb, pinfo, offsetp, t, byte_order, length);
27406 break;
27407 case 25:
27408 xkbSetDeviceInfo(tvb, pinfo, offsetp, t, byte_order, length);
27409 break;
27410 case 101:
27411 xkbSetDebuggingFlags(tvb, pinfo, offsetp, t, byte_order, length);
27412 break;
27413 /* No need for a default case here, since Unknown is printed above,
27414 and UNDECODED() is taken care of by dissect_x11_request */
27415 }
27416}
27417
27418static void register_xkb(void)
27419{
27420 set_handler("XKEYBOARD", dispatch_xkb, xkb_errors, xkb_events, NULL, xkb_replies);
27421}
27422
27423static int struct_size_xprint_PRINTER(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
27424{
27425 int size = 0;
27426 int f_descLen;
27427 int f_nameLen;
27428 f_nameLen = tvb_get_uint32(tvb, *offsetp + size + 0, byte_order);
27429 size += f_nameLen * 1;
27430 size = (size + 3) & ~3;
27431 f_descLen = tvb_get_uint32(tvb, *offsetp + size + 4, byte_order);
27432 size += f_descLen * 1;
27433 size = (size + 3) & ~3;
27434 return size + 8;
27435}
27436
27437static void struct_xprint_PRINTER(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
27438{
27439 int i;
27440 for (i = 0; i < count; i++) {
27441 proto_item *item;
27442 proto_tree *t;
27443 int f_nameLen;
27444 int f_descLen;
27445
27446 item = proto_tree_add_item(root, hf_x11_struct_xprint_PRINTER, tvb, *offsetp, struct_size_xprint_PRINTER(tvb, offsetp, byte_order), ENC_NA);
27447 t = proto_item_add_subtree(item, ett_x11_rectangle);
27448 f_nameLen = tvb_get_uint32(tvb, *offsetp, byte_order);
27449 proto_tree_add_item(t, hf_x11_struct_xprint_PRINTER_nameLen, tvb, *offsetp, 4, byte_order);
27450 *offsetp += 4;
27451 listOfByte(tvb, offsetp, t, hf_x11_struct_xprint_PRINTER_name, f_nameLen, byte_order);
27452 pad_to_4_bytes(tvb, offsetp, t);
27453 f_descLen = tvb_get_uint32(tvb, *offsetp, byte_order);
27454 proto_tree_add_item(t, hf_x11_struct_xprint_PRINTER_descLen, tvb, *offsetp, 4, byte_order);
27455 *offsetp += 4;
27456 listOfByte(tvb, offsetp, t, hf_x11_struct_xprint_PRINTER_description, f_descLen, byte_order);
27457 pad_to_4_bytes(tvb, offsetp, t);
27458 }
27459}
27460
27461static void xprintPrintQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
27462{
27463}
27464static void xprintPrintQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27465{
27466 int sequence_number;
27467
27468 col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintQueryVersion");
27469
27470 REPLY(reply);
27471 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27472 *offsetp += 1;
27473 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
27474 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27475 "%d (xprint-PrintQueryVersion)", sequence_number);
27476 *offsetp += 2;
27477 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27478 *offsetp += 4;
27479 proto_tree_add_item(t, hf_x11_xprint_PrintQueryVersion_reply_major_version, tvb, *offsetp, 2, byte_order);
27480 *offsetp += 2;
27481 proto_tree_add_item(t, hf_x11_xprint_PrintQueryVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
27482 *offsetp += 2;
27483}
27484
27485static void xprintPrintGetPrinterList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27486{
27487 int f_printerNameLen;
27488 int f_localeLen;
27489 f_printerNameLen = tvb_get_uint32(tvb, *offsetp, byte_order);
27490 proto_tree_add_item(t, hf_x11_xprint_PrintGetPrinterList_printerNameLen, tvb, *offsetp, 4, byte_order);
27491 *offsetp += 4;
27492 f_localeLen = tvb_get_uint32(tvb, *offsetp, byte_order);
27493 proto_tree_add_item(t, hf_x11_xprint_PrintGetPrinterList_localeLen, tvb, *offsetp, 4, byte_order);
27494 *offsetp += 4;
27495 listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetPrinterList_printer_name, f_printerNameLen, byte_order);
27496 length -= f_printerNameLen * 1;
27497 pad_to_4_bytes(tvb, offsetp, t);
27498 length = WS_ROUNDUP_4(length);
27499 listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetPrinterList_locale, f_localeLen, byte_order);
27500 length -= f_localeLen * 1;
27501}
27502static void xprintPrintGetPrinterList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27503{
27504 int sequence_number;
27505 int f_listCount;
27506
27507 col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetPrinterList");
27508
27509 REPLY(reply);
27510 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27511 *offsetp += 1;
27512 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
27513 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27514 "%d (xprint-PrintGetPrinterList)", sequence_number);
27515 *offsetp += 2;
27516 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27517 *offsetp += 4;
27518 f_listCount = tvb_get_uint32(tvb, *offsetp, byte_order);
27519 proto_tree_add_item(t, hf_x11_xprint_PrintGetPrinterList_reply_listCount, tvb, *offsetp, 4, byte_order);
27520 *offsetp += 4;
27521 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27522 *offsetp += 20;
27523 struct_xprint_PRINTER(tvb, offsetp, t, byte_order, f_listCount);
27524}
27525
27526static void xprintPrintRehashPrinterList(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
27527{
27528}
27529
27530static void xprintCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27531{
27532 int f_printerNameLen;
27533 int f_localeLen;
27534 proto_tree_add_item(t, hf_x11_xprint_CreateContext_context_id, tvb, *offsetp, 4, byte_order);
27535 *offsetp += 4;
27536 f_printerNameLen = tvb_get_uint32(tvb, *offsetp, byte_order);
27537 proto_tree_add_item(t, hf_x11_xprint_CreateContext_printerNameLen, tvb, *offsetp, 4, byte_order);
27538 *offsetp += 4;
27539 f_localeLen = tvb_get_uint32(tvb, *offsetp, byte_order);
27540 proto_tree_add_item(t, hf_x11_xprint_CreateContext_localeLen, tvb, *offsetp, 4, byte_order);
27541 *offsetp += 4;
27542 listOfByte(tvb, offsetp, t, hf_x11_xprint_CreateContext_printerName, f_printerNameLen, byte_order);
27543 length -= f_printerNameLen * 1;
27544 pad_to_4_bytes(tvb, offsetp, t);
27545 length = WS_ROUNDUP_4(length);
27546 listOfByte(tvb, offsetp, t, hf_x11_xprint_CreateContext_locale, f_localeLen, byte_order);
27547 length -= f_localeLen * 1;
27548}
27549
27550static void xprintPrintSetContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27551{
27552 proto_tree_add_item(t, hf_x11_xprint_PrintSetContext_context, tvb, *offsetp, 4, byte_order);
27553 *offsetp += 4;
27554}
27555
27556static void xprintPrintGetContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
27557{
27558}
27559static void xprintPrintGetContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27560{
27561 int sequence_number;
27562
27563 col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetContext");
27564
27565 REPLY(reply);
27566 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27567 *offsetp += 1;
27568 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
27569 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27570 "%d (xprint-PrintGetContext)", sequence_number);
27571 *offsetp += 2;
27572 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27573 *offsetp += 4;
27574 proto_tree_add_item(t, hf_x11_xprint_PrintGetContext_reply_context, tvb, *offsetp, 4, byte_order);
27575 *offsetp += 4;
27576}
27577
27578static void xprintPrintDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27579{
27580 proto_tree_add_item(t, hf_x11_xprint_PrintDestroyContext_context, tvb, *offsetp, 4, byte_order);
27581 *offsetp += 4;
27582}
27583
27584static void xprintPrintGetScreenOfContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
27585{
27586}
27587static void xprintPrintGetScreenOfContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27588{
27589 int sequence_number;
27590
27591 col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetScreenOfContext");
27592
27593 REPLY(reply);
27594 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27595 *offsetp += 1;
27596 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
27597 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27598 "%d (xprint-PrintGetScreenOfContext)", sequence_number);
27599 *offsetp += 2;
27600 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27601 *offsetp += 4;
27602 proto_tree_add_item(t, hf_x11_xprint_PrintGetScreenOfContext_reply_root, tvb, *offsetp, 4, byte_order);
27603 *offsetp += 4;
27604}
27605
27606static void xprintPrintStartJob(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27607{
27608 proto_tree_add_item(t, hf_x11_xprint_PrintStartJob_output_mode, tvb, *offsetp, 1, byte_order);
27609 *offsetp += 1;
27610}
27611
27612static void xprintPrintEndJob(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27613{
27614 proto_tree_add_item(t, hf_x11_xprint_PrintEndJob_cancel, tvb, *offsetp, 1, byte_order);
27615 *offsetp += 1;
27616}
27617
27618static void xprintPrintStartDoc(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27619{
27620 proto_tree_add_item(t, hf_x11_xprint_PrintStartDoc_driver_mode, tvb, *offsetp, 1, byte_order);
27621 *offsetp += 1;
27622}
27623
27624static void xprintPrintEndDoc(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27625{
27626 proto_tree_add_item(t, hf_x11_xprint_PrintEndDoc_cancel, tvb, *offsetp, 1, byte_order);
27627 *offsetp += 1;
27628}
27629
27630static void xprintPrintPutDocumentData(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27631{
27632 int f_len_data;
27633 int f_len_fmt;
27634 int f_len_options;
27635 proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_drawable, tvb, *offsetp, 4, byte_order);
27636 *offsetp += 4;
27637 f_len_data = tvb_get_uint32(tvb, *offsetp, byte_order);
27638 proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_len_data, tvb, *offsetp, 4, byte_order);
27639 *offsetp += 4;
27640 f_len_fmt = tvb_get_uint16(tvb, *offsetp, byte_order);
27641 proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_len_fmt, tvb, *offsetp, 2, byte_order);
27642 *offsetp += 2;
27643 f_len_options = tvb_get_uint16(tvb, *offsetp, byte_order);
27644 proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_len_options, tvb, *offsetp, 2, byte_order);
27645 *offsetp += 2;
27646 listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintPutDocumentData_data, f_len_data, byte_order);
27647 length -= f_len_data * 1;
27648 pad_to_4_bytes(tvb, offsetp, t);
27649 length = WS_ROUNDUP_4(length);
27650 listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintPutDocumentData_doc_format, f_len_fmt, byte_order);
27651 length -= f_len_fmt * 1;
27652 pad_to_4_bytes(tvb, offsetp, t);
27653 length = WS_ROUNDUP_4(length);
27654 listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintPutDocumentData_options, f_len_options, byte_order);
27655 length -= f_len_options * 1;
27656}
27657
27658static void xprintPrintGetDocumentData(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27659{
27660 proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_context, tvb, *offsetp, 4, byte_order);
27661 *offsetp += 4;
27662 proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_max_bytes, tvb, *offsetp, 4, byte_order);
27663 *offsetp += 4;
27664}
27665static void xprintPrintGetDocumentData_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27666{
27667 int sequence_number;
27668 int f_dataLen;
27669
27670 col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetDocumentData");
27671
27672 REPLY(reply);
27673 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27674 *offsetp += 1;
27675 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
27676 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27677 "%d (xprint-PrintGetDocumentData)", sequence_number);
27678 *offsetp += 2;
27679 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27680 *offsetp += 4;
27681 proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_reply_status_code, tvb, *offsetp, 4, byte_order);
27682 *offsetp += 4;
27683 proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_reply_finished_flag, tvb, *offsetp, 4, byte_order);
27684 *offsetp += 4;
27685 f_dataLen = tvb_get_uint32(tvb, *offsetp, byte_order);
27686 proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_reply_dataLen, tvb, *offsetp, 4, byte_order);
27687 *offsetp += 4;
27688 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
27689 *offsetp += 12;
27690 listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetDocumentData_reply_data, f_dataLen, byte_order);
27691}
27692
27693static void xprintPrintStartPage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27694{
27695 proto_tree_add_item(t, hf_x11_xprint_PrintStartPage_window, tvb, *offsetp, 4, byte_order);
27696 *offsetp += 4;
27697}
27698
27699static void xprintPrintEndPage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27700{
27701 proto_tree_add_item(t, hf_x11_xprint_PrintEndPage_cancel, tvb, *offsetp, 1, byte_order);
27702 *offsetp += 1;
27703 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
27704 *offsetp += 3;
27705}
27706
27707static void xprintPrintSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27708{
27709 proto_tree_add_item(t, hf_x11_xprint_PrintSelectInput_context, tvb, *offsetp, 4, byte_order);
27710 *offsetp += 4;
27711 proto_tree_add_item(t, hf_x11_xprint_PrintSelectInput_event_mask, tvb, *offsetp, 4, byte_order);
27712 *offsetp += 4;
27713}
27714
27715static void xprintPrintInputSelected(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27716{
27717 proto_tree_add_item(t, hf_x11_xprint_PrintInputSelected_context, tvb, *offsetp, 4, byte_order);
27718 *offsetp += 4;
27719}
27720static void xprintPrintInputSelected_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27721{
27722 int sequence_number;
27723
27724 col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintInputSelected");
27725
27726 REPLY(reply);
27727 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27728 *offsetp += 1;
27729 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
27730 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27731 "%d (xprint-PrintInputSelected)", sequence_number);
27732 *offsetp += 2;
27733 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27734 *offsetp += 4;
27735 proto_tree_add_item(t, hf_x11_xprint_PrintInputSelected_reply_event_mask, tvb, *offsetp, 4, byte_order);
27736 *offsetp += 4;
27737 proto_tree_add_item(t, hf_x11_xprint_PrintInputSelected_reply_all_events_mask, tvb, *offsetp, 4, byte_order);
27738 *offsetp += 4;
27739}
27740
27741static void xprintPrintGetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27742{
27743 proto_tree_add_item(t, hf_x11_xprint_PrintGetAttributes_context, tvb, *offsetp, 4, byte_order);
27744 *offsetp += 4;
27745 proto_tree_add_item(t, hf_x11_xprint_PrintGetAttributes_pool, tvb, *offsetp, 1, byte_order);
27746 *offsetp += 1;
27747 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
27748 *offsetp += 3;
27749}
27750static void xprintPrintGetAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27751{
27752 int sequence_number;
27753 int f_stringLen;
27754
27755 col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetAttributes");
27756
27757 REPLY(reply);
27758 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27759 *offsetp += 1;
27760 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
27761 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27762 "%d (xprint-PrintGetAttributes)", sequence_number);
27763 *offsetp += 2;
27764 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27765 *offsetp += 4;
27766 f_stringLen = tvb_get_uint32(tvb, *offsetp, byte_order);
27767 proto_tree_add_item(t, hf_x11_xprint_PrintGetAttributes_reply_stringLen, tvb, *offsetp, 4, byte_order);
27768 *offsetp += 4;
27769 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27770 *offsetp += 20;
27771 listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetAttributes_reply_attributes, f_stringLen, byte_order);
27772}
27773
27774static void xprintPrintGetOneAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27775{
27776 int f_nameLen;
27777 proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_context, tvb, *offsetp, 4, byte_order);
27778 *offsetp += 4;
27779 f_nameLen = tvb_get_uint32(tvb, *offsetp, byte_order);
27780 proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_nameLen, tvb, *offsetp, 4, byte_order);
27781 *offsetp += 4;
27782 proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_pool, tvb, *offsetp, 1, byte_order);
27783 *offsetp += 1;
27784 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
27785 *offsetp += 3;
27786 listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetOneAttributes_name, f_nameLen, byte_order);
27787 length -= f_nameLen * 1;
27788}
27789static void xprintPrintGetOneAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27790{
27791 int sequence_number;
27792 int f_valueLen;
27793
27794 col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetOneAttributes");
27795
27796 REPLY(reply);
27797 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27798 *offsetp += 1;
27799 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
27800 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27801 "%d (xprint-PrintGetOneAttributes)", sequence_number);
27802 *offsetp += 2;
27803 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27804 *offsetp += 4;
27805 f_valueLen = tvb_get_uint32(tvb, *offsetp, byte_order);
27806 proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_reply_valueLen, tvb, *offsetp, 4, byte_order);
27807 *offsetp += 4;
27808 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27809 *offsetp += 20;
27810 listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetOneAttributes_reply_value, f_valueLen, byte_order);
27811}
27812
27813static void xprintPrintSetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27814{
27815 proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_context, tvb, *offsetp, 4, byte_order);
27816 *offsetp += 4;
27817 proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_stringLen, tvb, *offsetp, 4, byte_order);
27818 *offsetp += 4;
27819 proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_pool, tvb, *offsetp, 1, byte_order);
27820 *offsetp += 1;
27821 proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_rule, tvb, *offsetp, 1, byte_order);
27822 *offsetp += 1;
27823 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
27824 *offsetp += 2;
27825 listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintSetAttributes_attributes, (length - 16) / 1, byte_order);
27826}
27827
27828static void xprintPrintGetPageDimensions(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27829{
27830 proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_context, tvb, *offsetp, 4, byte_order);
27831 *offsetp += 4;
27832}
27833static void xprintPrintGetPageDimensions_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27834{
27835 int sequence_number;
27836
27837 col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetPageDimensions");
27838
27839 REPLY(reply);
27840 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27841 *offsetp += 1;
27842 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
27843 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27844 "%d (xprint-PrintGetPageDimensions)", sequence_number);
27845 *offsetp += 2;
27846 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27847 *offsetp += 4;
27848 proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_width, tvb, *offsetp, 2, byte_order);
27849 *offsetp += 2;
27850 proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_height, tvb, *offsetp, 2, byte_order);
27851 *offsetp += 2;
27852 proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_offset_x, tvb, *offsetp, 2, byte_order);
27853 *offsetp += 2;
27854 proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_offset_y, tvb, *offsetp, 2, byte_order);
27855 *offsetp += 2;
27856 proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_reproducible_width, tvb, *offsetp, 2, byte_order);
27857 *offsetp += 2;
27858 proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_reproducible_height, tvb, *offsetp, 2, byte_order);
27859 *offsetp += 2;
27860}
27861
27862static void xprintPrintQueryScreens(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
27863{
27864}
27865static void xprintPrintQueryScreens_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27866{
27867 int sequence_number;
27868 int f_listCount;
27869
27870 col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintQueryScreens");
27871
27872 REPLY(reply);
27873 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27874 *offsetp += 1;
27875 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
27876 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27877 "%d (xprint-PrintQueryScreens)", sequence_number);
27878 *offsetp += 2;
27879 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27880 *offsetp += 4;
27881 f_listCount = tvb_get_uint32(tvb, *offsetp, byte_order);
27882 proto_tree_add_item(t, hf_x11_xprint_PrintQueryScreens_reply_listCount, tvb, *offsetp, 4, byte_order);
27883 *offsetp += 4;
27884 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
27885 *offsetp += 20;
27886 listOfCard32(tvb, offsetp, t, hf_x11_xprint_PrintQueryScreens_reply_roots, hf_x11_xprint_PrintQueryScreens_reply_roots_item, f_listCount, byte_order);
27887}
27888
27889static void xprintPrintSetImageResolution(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27890{
27891 proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_context, tvb, *offsetp, 4, byte_order);
27892 *offsetp += 4;
27893 proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_image_resolution, tvb, *offsetp, 2, byte_order);
27894 *offsetp += 2;
27895}
27896static void xprintPrintSetImageResolution_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27897{
27898 int sequence_number;
27899
27900 col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintSetImageResolution");
27901
27902 REPLY(reply);
27903 proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_reply_status, tvb, *offsetp, 1, byte_order);
27904 *offsetp += 1;
27905 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
27906 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27907 "%d (xprint-PrintSetImageResolution)", sequence_number);
27908 *offsetp += 2;
27909 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27910 *offsetp += 4;
27911 proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_reply_previous_resolutions, tvb, *offsetp, 2, byte_order);
27912 *offsetp += 2;
27913}
27914
27915static void xprintPrintGetImageResolution(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
27916{
27917 proto_tree_add_item(t, hf_x11_xprint_PrintGetImageResolution_context, tvb, *offsetp, 4, byte_order);
27918 *offsetp += 4;
27919}
27920static void xprintPrintGetImageResolution_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27921{
27922 int sequence_number;
27923
27924 col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetImageResolution");
27925
27926 REPLY(reply);
27927 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
27928 *offsetp += 1;
27929 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
27930 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
27931 "%d (xprint-PrintGetImageResolution)", sequence_number);
27932 *offsetp += 2;
27933 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
27934 *offsetp += 4;
27935 proto_tree_add_item(t, hf_x11_xprint_PrintGetImageResolution_reply_image_resolution, tvb, *offsetp, 2, byte_order);
27936 *offsetp += 2;
27937}
27938
27939static void xprintAttributNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
27940{
27941 proto_tree_add_item(t, hf_x11_xprint_AttributNotify_detail, tvb, *offsetp, 1, byte_order);
27942 *offsetp += 1;
27943 CARD16(event_sequencenumber);
27944 proto_tree_add_item(t, hf_x11_xprint_AttributNotify_context, tvb, *offsetp, 4, byte_order);
27945 *offsetp += 4;
27946}
27947
27948static const value_string xprint_extension_minor[] = {
27949 { 0, "PrintQueryVersion" },
27950 { 1, "PrintGetPrinterList" },
27951 { 2, "CreateContext" },
27952 { 3, "PrintSetContext" },
27953 { 4, "PrintGetContext" },
27954 { 5, "PrintDestroyContext" },
27955 { 6, "PrintGetScreenOfContext" },
27956 { 7, "PrintStartJob" },
27957 { 8, "PrintEndJob" },
27958 { 9, "PrintStartDoc" },
27959 { 10, "PrintEndDoc" },
27960 { 11, "PrintPutDocumentData" },
27961 { 12, "PrintGetDocumentData" },
27962 { 13, "PrintStartPage" },
27963 { 14, "PrintEndPage" },
27964 { 15, "PrintSelectInput" },
27965 { 16, "PrintInputSelected" },
27966 { 17, "PrintGetAttributes" },
27967 { 18, "PrintSetAttributes" },
27968 { 19, "PrintGetOneAttributes" },
27969 { 20, "PrintRehashPrinterList" },
27970 { 21, "PrintGetPageDimensions" },
27971 { 22, "PrintQueryScreens" },
27972 { 23, "PrintSetImageResolution" },
27973 { 24, "PrintGetImageResolution" },
27974 { 0, NULL }
27975};
27976static const x11_event_info xprint_events[] = {
27977 { "xprint-AttributNotify", xprintAttributNotify },
27978 { NULL, NULL }
27979};
27980static const x11_reply_info xprint_replies[] = {
27981 { 0, xprintPrintQueryVersion_Reply },
27982 { 1, xprintPrintGetPrinterList_Reply },
27983 { 4, xprintPrintGetContext_Reply },
27984 { 6, xprintPrintGetScreenOfContext_Reply },
27985 { 12, xprintPrintGetDocumentData_Reply },
27986 { 16, xprintPrintInputSelected_Reply },
27987 { 17, xprintPrintGetAttributes_Reply },
27988 { 19, xprintPrintGetOneAttributes_Reply },
27989 { 21, xprintPrintGetPageDimensions_Reply },
27990 { 22, xprintPrintQueryScreens_Reply },
27991 { 23, xprintPrintSetImageResolution_Reply },
27992 { 24, xprintPrintGetImageResolution_Reply },
27993 { 0, NULL }
27994};
27995
27996static void dispatch_xprint(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
27997{
27998 int minor, length;
27999 minor = CARD8(xprint_extension_minor);
28000 length = REQUEST_LENGTH();
28001
28002 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
28003 val_to_str(minor, xprint_extension_minor,
28004 "<Unknown opcode %d>"));
28005 switch (minor) {
28006 case 0:
28007 xprintPrintQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
28008 break;
28009 case 1:
28010 xprintPrintGetPrinterList(tvb, pinfo, offsetp, t, byte_order, length);
28011 break;
28012 case 2:
28013 xprintCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28014 break;
28015 case 3:
28016 xprintPrintSetContext(tvb, pinfo, offsetp, t, byte_order, length);
28017 break;
28018 case 4:
28019 xprintPrintGetContext(tvb, pinfo, offsetp, t, byte_order, length);
28020 break;
28021 case 5:
28022 xprintPrintDestroyContext(tvb, pinfo, offsetp, t, byte_order, length);
28023 break;
28024 case 6:
28025 xprintPrintGetScreenOfContext(tvb, pinfo, offsetp, t, byte_order, length);
28026 break;
28027 case 7:
28028 xprintPrintStartJob(tvb, pinfo, offsetp, t, byte_order, length);
28029 break;
28030 case 8:
28031 xprintPrintEndJob(tvb, pinfo, offsetp, t, byte_order, length);
28032 break;
28033 case 9:
28034 xprintPrintStartDoc(tvb, pinfo, offsetp, t, byte_order, length);
28035 break;
28036 case 10:
28037 xprintPrintEndDoc(tvb, pinfo, offsetp, t, byte_order, length);
28038 break;
28039 case 11:
28040 xprintPrintPutDocumentData(tvb, pinfo, offsetp, t, byte_order, length);
28041 break;
28042 case 12:
28043 xprintPrintGetDocumentData(tvb, pinfo, offsetp, t, byte_order, length);
28044 break;
28045 case 13:
28046 xprintPrintStartPage(tvb, pinfo, offsetp, t, byte_order, length);
28047 break;
28048 case 14:
28049 xprintPrintEndPage(tvb, pinfo, offsetp, t, byte_order, length);
28050 break;
28051 case 15:
28052 xprintPrintSelectInput(tvb, pinfo, offsetp, t, byte_order, length);
28053 break;
28054 case 16:
28055 xprintPrintInputSelected(tvb, pinfo, offsetp, t, byte_order, length);
28056 break;
28057 case 17:
28058 xprintPrintGetAttributes(tvb, pinfo, offsetp, t, byte_order, length);
28059 break;
28060 case 18:
28061 xprintPrintSetAttributes(tvb, pinfo, offsetp, t, byte_order, length);
28062 break;
28063 case 19:
28064 xprintPrintGetOneAttributes(tvb, pinfo, offsetp, t, byte_order, length);
28065 break;
28066 case 20:
28067 xprintPrintRehashPrinterList(tvb, pinfo, offsetp, t, byte_order, length);
28068 break;
28069 case 21:
28070 xprintPrintGetPageDimensions(tvb, pinfo, offsetp, t, byte_order, length);
28071 break;
28072 case 22:
28073 xprintPrintQueryScreens(tvb, pinfo, offsetp, t, byte_order, length);
28074 break;
28075 case 23:
28076 xprintPrintSetImageResolution(tvb, pinfo, offsetp, t, byte_order, length);
28077 break;
28078 case 24:
28079 xprintPrintGetImageResolution(tvb, pinfo, offsetp, t, byte_order, length);
28080 break;
28081 /* No need for a default case here, since Unknown is printed above,
28082 and UNDECODED() is taken care of by dissect_x11_request */
28083 }
28084}
28085
28086static void register_xprint(void)
28087{
28088 set_handler("XpExtension", dispatch_xprint, xprint_errors, xprint_events, NULL, xprint_replies);
28089}
28090
28091static void xselinuxQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28092{
28093 proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_client_major, tvb, *offsetp, 1, byte_order);
28094 *offsetp += 1;
28095 proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_client_minor, tvb, *offsetp, 1, byte_order);
28096 *offsetp += 1;
28097}
28098static void xselinuxQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28099{
28100 int sequence_number;
28101
28102 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
28103
28104 REPLY(reply);
28105 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28106 *offsetp += 1;
28107 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28108 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28109 "%d (xselinux-QueryVersion)", sequence_number);
28110 *offsetp += 2;
28111 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28112 *offsetp += 4;
28113 proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_reply_server_major, tvb, *offsetp, 2, byte_order);
28114 *offsetp += 2;
28115 proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_reply_server_minor, tvb, *offsetp, 2, byte_order);
28116 *offsetp += 2;
28117}
28118
28119static void xselinuxSetDeviceCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28120{
28121 int f_context_len;
28122 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28123 proto_tree_add_item(t, hf_x11_xselinux_SetDeviceCreateContext_context_len, tvb, *offsetp, 4, byte_order);
28124 *offsetp += 4;
28125 listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetDeviceCreateContext_context, f_context_len, byte_order);
28126 length -= f_context_len * 1;
28127}
28128
28129static void xselinuxGetDeviceCreateContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
28130{
28131}
28132static void xselinuxGetDeviceCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28133{
28134 int sequence_number;
28135 int f_context_len;
28136
28137 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceCreateContext");
28138
28139 REPLY(reply);
28140 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28141 *offsetp += 1;
28142 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28143 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28144 "%d (xselinux-GetDeviceCreateContext)", sequence_number);
28145 *offsetp += 2;
28146 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28147 *offsetp += 4;
28148 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28149 proto_tree_add_item(t, hf_x11_xselinux_GetDeviceCreateContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28150 *offsetp += 4;
28151 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28152 *offsetp += 20;
28153 listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetDeviceCreateContext_reply_context, f_context_len, byte_order);
28154}
28155
28156static void xselinuxSetDeviceContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28157{
28158 int f_context_len;
28159 proto_tree_add_item(t, hf_x11_xselinux_SetDeviceContext_device, tvb, *offsetp, 4, byte_order);
28160 *offsetp += 4;
28161 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28162 proto_tree_add_item(t, hf_x11_xselinux_SetDeviceContext_context_len, tvb, *offsetp, 4, byte_order);
28163 *offsetp += 4;
28164 listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetDeviceContext_context, f_context_len, byte_order);
28165 length -= f_context_len * 1;
28166}
28167
28168static void xselinuxGetDeviceContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28169{
28170 proto_tree_add_item(t, hf_x11_xselinux_GetDeviceContext_device, tvb, *offsetp, 4, byte_order);
28171 *offsetp += 4;
28172}
28173static void xselinuxGetDeviceContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28174{
28175 int sequence_number;
28176 int f_context_len;
28177
28178 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceContext");
28179
28180 REPLY(reply);
28181 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28182 *offsetp += 1;
28183 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28184 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28185 "%d (xselinux-GetDeviceContext)", sequence_number);
28186 *offsetp += 2;
28187 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28188 *offsetp += 4;
28189 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28190 proto_tree_add_item(t, hf_x11_xselinux_GetDeviceContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28191 *offsetp += 4;
28192 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28193 *offsetp += 20;
28194 listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetDeviceContext_reply_context, f_context_len, byte_order);
28195}
28196
28197static void xselinuxSetWindowCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28198{
28199 int f_context_len;
28200 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28201 proto_tree_add_item(t, hf_x11_xselinux_SetWindowCreateContext_context_len, tvb, *offsetp, 4, byte_order);
28202 *offsetp += 4;
28203 listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetWindowCreateContext_context, f_context_len, byte_order);
28204 length -= f_context_len * 1;
28205}
28206
28207static void xselinuxGetWindowCreateContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
28208{
28209}
28210static void xselinuxGetWindowCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28211{
28212 int sequence_number;
28213 int f_context_len;
28214
28215 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetWindowCreateContext");
28216
28217 REPLY(reply);
28218 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28219 *offsetp += 1;
28220 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28221 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28222 "%d (xselinux-GetWindowCreateContext)", sequence_number);
28223 *offsetp += 2;
28224 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28225 *offsetp += 4;
28226 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28227 proto_tree_add_item(t, hf_x11_xselinux_GetWindowCreateContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28228 *offsetp += 4;
28229 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28230 *offsetp += 20;
28231 listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetWindowCreateContext_reply_context, f_context_len, byte_order);
28232}
28233
28234static void xselinuxGetWindowContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28235{
28236 proto_tree_add_item(t, hf_x11_xselinux_GetWindowContext_window, tvb, *offsetp, 4, byte_order);
28237 *offsetp += 4;
28238}
28239static void xselinuxGetWindowContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28240{
28241 int sequence_number;
28242 int f_context_len;
28243
28244 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetWindowContext");
28245
28246 REPLY(reply);
28247 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28248 *offsetp += 1;
28249 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28250 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28251 "%d (xselinux-GetWindowContext)", sequence_number);
28252 *offsetp += 2;
28253 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28254 *offsetp += 4;
28255 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28256 proto_tree_add_item(t, hf_x11_xselinux_GetWindowContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28257 *offsetp += 4;
28258 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28259 *offsetp += 20;
28260 listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetWindowContext_reply_context, f_context_len, byte_order);
28261}
28262
28263static int struct_size_xselinux_ListItem(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
28264{
28265 int size = 0;
28266 int f_data_context_len;
28267 int f_object_context_len;
28268 f_object_context_len = tvb_get_uint32(tvb, *offsetp + size + 4, byte_order);
28269 f_data_context_len = tvb_get_uint32(tvb, *offsetp + size + 8, byte_order);
28270 size += f_object_context_len * 1;
28271 size = (size + 3) & ~3;
28272 size += f_data_context_len * 1;
28273 size = (size + 3) & ~3;
28274 return size + 12;
28275}
28276
28277static void struct_xselinux_ListItem(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
28278{
28279 int i;
28280 for (i = 0; i < count; i++) {
28281 proto_item *item;
28282 proto_tree *t;
28283 int f_object_context_len;
28284 int f_data_context_len;
28285
28286 item = proto_tree_add_item(root, hf_x11_struct_xselinux_ListItem, tvb, *offsetp, struct_size_xselinux_ListItem(tvb, offsetp, byte_order), ENC_NA);
28287 t = proto_item_add_subtree(item, ett_x11_rectangle);
28288 proto_tree_add_item(t, hf_x11_struct_xselinux_ListItem_name, tvb, *offsetp, 4, byte_order);
28289 *offsetp += 4;
28290 f_object_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28291 proto_tree_add_item(t, hf_x11_struct_xselinux_ListItem_object_context_len, tvb, *offsetp, 4, byte_order);
28292 *offsetp += 4;
28293 f_data_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28294 proto_tree_add_item(t, hf_x11_struct_xselinux_ListItem_data_context_len, tvb, *offsetp, 4, byte_order);
28295 *offsetp += 4;
28296 listOfByte(tvb, offsetp, t, hf_x11_struct_xselinux_ListItem_object_context, f_object_context_len, byte_order);
28297 pad_to_4_bytes(tvb, offsetp, t);
28298 listOfByte(tvb, offsetp, t, hf_x11_struct_xselinux_ListItem_data_context, f_data_context_len, byte_order);
28299 pad_to_4_bytes(tvb, offsetp, t);
28300 }
28301}
28302
28303static void xselinuxSetPropertyCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28304{
28305 int f_context_len;
28306 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28307 proto_tree_add_item(t, hf_x11_xselinux_SetPropertyCreateContext_context_len, tvb, *offsetp, 4, byte_order);
28308 *offsetp += 4;
28309 listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetPropertyCreateContext_context, f_context_len, byte_order);
28310 length -= f_context_len * 1;
28311}
28312
28313static void xselinuxGetPropertyCreateContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
28314{
28315}
28316static void xselinuxGetPropertyCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28317{
28318 int sequence_number;
28319 int f_context_len;
28320
28321 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyCreateContext");
28322
28323 REPLY(reply);
28324 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28325 *offsetp += 1;
28326 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28327 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28328 "%d (xselinux-GetPropertyCreateContext)", sequence_number);
28329 *offsetp += 2;
28330 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28331 *offsetp += 4;
28332 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28333 proto_tree_add_item(t, hf_x11_xselinux_GetPropertyCreateContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28334 *offsetp += 4;
28335 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28336 *offsetp += 20;
28337 listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyCreateContext_reply_context, f_context_len, byte_order);
28338}
28339
28340static void xselinuxSetPropertyUseContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28341{
28342 int f_context_len;
28343 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28344 proto_tree_add_item(t, hf_x11_xselinux_SetPropertyUseContext_context_len, tvb, *offsetp, 4, byte_order);
28345 *offsetp += 4;
28346 listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetPropertyUseContext_context, f_context_len, byte_order);
28347 length -= f_context_len * 1;
28348}
28349
28350static void xselinuxGetPropertyUseContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
28351{
28352}
28353static void xselinuxGetPropertyUseContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28354{
28355 int sequence_number;
28356 int f_context_len;
28357
28358 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyUseContext");
28359
28360 REPLY(reply);
28361 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28362 *offsetp += 1;
28363 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28364 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28365 "%d (xselinux-GetPropertyUseContext)", sequence_number);
28366 *offsetp += 2;
28367 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28368 *offsetp += 4;
28369 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28370 proto_tree_add_item(t, hf_x11_xselinux_GetPropertyUseContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28371 *offsetp += 4;
28372 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28373 *offsetp += 20;
28374 listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyUseContext_reply_context, f_context_len, byte_order);
28375}
28376
28377static void xselinuxGetPropertyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28378{
28379 proto_tree_add_item(t, hf_x11_xselinux_GetPropertyContext_window, tvb, *offsetp, 4, byte_order);
28380 *offsetp += 4;
28381 proto_tree_add_item(t, hf_x11_xselinux_GetPropertyContext_property, tvb, *offsetp, 4, byte_order);
28382 *offsetp += 4;
28383}
28384static void xselinuxGetPropertyContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28385{
28386 int sequence_number;
28387 int f_context_len;
28388
28389 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyContext");
28390
28391 REPLY(reply);
28392 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28393 *offsetp += 1;
28394 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28395 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28396 "%d (xselinux-GetPropertyContext)", sequence_number);
28397 *offsetp += 2;
28398 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28399 *offsetp += 4;
28400 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28401 proto_tree_add_item(t, hf_x11_xselinux_GetPropertyContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28402 *offsetp += 4;
28403 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28404 *offsetp += 20;
28405 listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyContext_reply_context, f_context_len, byte_order);
28406}
28407
28408static void xselinuxGetPropertyDataContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28409{
28410 proto_tree_add_item(t, hf_x11_xselinux_GetPropertyDataContext_window, tvb, *offsetp, 4, byte_order);
28411 *offsetp += 4;
28412 proto_tree_add_item(t, hf_x11_xselinux_GetPropertyDataContext_property, tvb, *offsetp, 4, byte_order);
28413 *offsetp += 4;
28414}
28415static void xselinuxGetPropertyDataContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28416{
28417 int sequence_number;
28418 int f_context_len;
28419
28420 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyDataContext");
28421
28422 REPLY(reply);
28423 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28424 *offsetp += 1;
28425 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28426 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28427 "%d (xselinux-GetPropertyDataContext)", sequence_number);
28428 *offsetp += 2;
28429 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28430 *offsetp += 4;
28431 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28432 proto_tree_add_item(t, hf_x11_xselinux_GetPropertyDataContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28433 *offsetp += 4;
28434 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28435 *offsetp += 20;
28436 listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyDataContext_reply_context, f_context_len, byte_order);
28437}
28438
28439static void xselinuxListProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28440{
28441 proto_tree_add_item(t, hf_x11_xselinux_ListProperties_window, tvb, *offsetp, 4, byte_order);
28442 *offsetp += 4;
28443}
28444static void xselinuxListProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28445{
28446 int sequence_number;
28447 int f_properties_len;
28448
28449 col_append_fstr(pinfo->cinfo, COL_INFO, "-ListProperties");
28450
28451 REPLY(reply);
28452 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28453 *offsetp += 1;
28454 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28455 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28456 "%d (xselinux-ListProperties)", sequence_number);
28457 *offsetp += 2;
28458 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28459 *offsetp += 4;
28460 f_properties_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28461 proto_tree_add_item(t, hf_x11_xselinux_ListProperties_reply_properties_len, tvb, *offsetp, 4, byte_order);
28462 *offsetp += 4;
28463 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28464 *offsetp += 20;
28465 struct_xselinux_ListItem(tvb, offsetp, t, byte_order, f_properties_len);
28466}
28467
28468static void xselinuxSetSelectionCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28469{
28470 int f_context_len;
28471 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28472 proto_tree_add_item(t, hf_x11_xselinux_SetSelectionCreateContext_context_len, tvb, *offsetp, 4, byte_order);
28473 *offsetp += 4;
28474 listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetSelectionCreateContext_context, f_context_len, byte_order);
28475 length -= f_context_len * 1;
28476}
28477
28478static void xselinuxGetSelectionCreateContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
28479{
28480}
28481static void xselinuxGetSelectionCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28482{
28483 int sequence_number;
28484 int f_context_len;
28485
28486 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionCreateContext");
28487
28488 REPLY(reply);
28489 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28490 *offsetp += 1;
28491 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28492 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28493 "%d (xselinux-GetSelectionCreateContext)", sequence_number);
28494 *offsetp += 2;
28495 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28496 *offsetp += 4;
28497 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28498 proto_tree_add_item(t, hf_x11_xselinux_GetSelectionCreateContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28499 *offsetp += 4;
28500 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28501 *offsetp += 20;
28502 listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionCreateContext_reply_context, f_context_len, byte_order);
28503}
28504
28505static void xselinuxSetSelectionUseContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28506{
28507 int f_context_len;
28508 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28509 proto_tree_add_item(t, hf_x11_xselinux_SetSelectionUseContext_context_len, tvb, *offsetp, 4, byte_order);
28510 *offsetp += 4;
28511 listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetSelectionUseContext_context, f_context_len, byte_order);
28512 length -= f_context_len * 1;
28513}
28514
28515static void xselinuxGetSelectionUseContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
28516{
28517}
28518static void xselinuxGetSelectionUseContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28519{
28520 int sequence_number;
28521 int f_context_len;
28522
28523 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionUseContext");
28524
28525 REPLY(reply);
28526 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28527 *offsetp += 1;
28528 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28529 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28530 "%d (xselinux-GetSelectionUseContext)", sequence_number);
28531 *offsetp += 2;
28532 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28533 *offsetp += 4;
28534 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28535 proto_tree_add_item(t, hf_x11_xselinux_GetSelectionUseContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28536 *offsetp += 4;
28537 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28538 *offsetp += 20;
28539 listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionUseContext_reply_context, f_context_len, byte_order);
28540}
28541
28542static void xselinuxGetSelectionContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28543{
28544 proto_tree_add_item(t, hf_x11_xselinux_GetSelectionContext_selection, tvb, *offsetp, 4, byte_order);
28545 *offsetp += 4;
28546}
28547static void xselinuxGetSelectionContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28548{
28549 int sequence_number;
28550 int f_context_len;
28551
28552 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionContext");
28553
28554 REPLY(reply);
28555 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28556 *offsetp += 1;
28557 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28558 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28559 "%d (xselinux-GetSelectionContext)", sequence_number);
28560 *offsetp += 2;
28561 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28562 *offsetp += 4;
28563 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28564 proto_tree_add_item(t, hf_x11_xselinux_GetSelectionContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28565 *offsetp += 4;
28566 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28567 *offsetp += 20;
28568 listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionContext_reply_context, f_context_len, byte_order);
28569}
28570
28571static void xselinuxGetSelectionDataContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28572{
28573 proto_tree_add_item(t, hf_x11_xselinux_GetSelectionDataContext_selection, tvb, *offsetp, 4, byte_order);
28574 *offsetp += 4;
28575}
28576static void xselinuxGetSelectionDataContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28577{
28578 int sequence_number;
28579 int f_context_len;
28580
28581 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionDataContext");
28582
28583 REPLY(reply);
28584 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28585 *offsetp += 1;
28586 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28587 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28588 "%d (xselinux-GetSelectionDataContext)", sequence_number);
28589 *offsetp += 2;
28590 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28591 *offsetp += 4;
28592 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28593 proto_tree_add_item(t, hf_x11_xselinux_GetSelectionDataContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28594 *offsetp += 4;
28595 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28596 *offsetp += 20;
28597 listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionDataContext_reply_context, f_context_len, byte_order);
28598}
28599
28600static void xselinuxListSelections(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
28601{
28602}
28603static void xselinuxListSelections_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28604{
28605 int sequence_number;
28606 int f_selections_len;
28607
28608 col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSelections");
28609
28610 REPLY(reply);
28611 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28612 *offsetp += 1;
28613 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28614 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28615 "%d (xselinux-ListSelections)", sequence_number);
28616 *offsetp += 2;
28617 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28618 *offsetp += 4;
28619 f_selections_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28620 proto_tree_add_item(t, hf_x11_xselinux_ListSelections_reply_selections_len, tvb, *offsetp, 4, byte_order);
28621 *offsetp += 4;
28622 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28623 *offsetp += 20;
28624 struct_xselinux_ListItem(tvb, offsetp, t, byte_order, f_selections_len);
28625}
28626
28627static void xselinuxGetClientContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28628{
28629 proto_tree_add_item(t, hf_x11_xselinux_GetClientContext_resource, tvb, *offsetp, 4, byte_order);
28630 *offsetp += 4;
28631}
28632static void xselinuxGetClientContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28633{
28634 int sequence_number;
28635 int f_context_len;
28636
28637 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetClientContext");
28638
28639 REPLY(reply);
28640 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28641 *offsetp += 1;
28642 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28643 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28644 "%d (xselinux-GetClientContext)", sequence_number);
28645 *offsetp += 2;
28646 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28647 *offsetp += 4;
28648 f_context_len = tvb_get_uint32(tvb, *offsetp, byte_order);
28649 proto_tree_add_item(t, hf_x11_xselinux_GetClientContext_reply_context_len, tvb, *offsetp, 4, byte_order);
28650 *offsetp += 4;
28651 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
28652 *offsetp += 20;
28653 listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetClientContext_reply_context, f_context_len, byte_order);
28654}
28655static const value_string xselinux_extension_minor[] = {
28656 { 0, "QueryVersion" },
28657 { 1, "SetDeviceCreateContext" },
28658 { 2, "GetDeviceCreateContext" },
28659 { 3, "SetDeviceContext" },
28660 { 4, "GetDeviceContext" },
28661 { 5, "SetWindowCreateContext" },
28662 { 6, "GetWindowCreateContext" },
28663 { 7, "GetWindowContext" },
28664 { 8, "SetPropertyCreateContext" },
28665 { 9, "GetPropertyCreateContext" },
28666 { 10, "SetPropertyUseContext" },
28667 { 11, "GetPropertyUseContext" },
28668 { 12, "GetPropertyContext" },
28669 { 13, "GetPropertyDataContext" },
28670 { 14, "ListProperties" },
28671 { 15, "SetSelectionCreateContext" },
28672 { 16, "GetSelectionCreateContext" },
28673 { 17, "SetSelectionUseContext" },
28674 { 18, "GetSelectionUseContext" },
28675 { 19, "GetSelectionContext" },
28676 { 20, "GetSelectionDataContext" },
28677 { 21, "ListSelections" },
28678 { 22, "GetClientContext" },
28679 { 0, NULL }
28680};
28681static const x11_event_info xselinux_events[] = {
28682 { NULL, NULL }
28683};
28684static const x11_reply_info xselinux_replies[] = {
28685 { 0, xselinuxQueryVersion_Reply },
28686 { 2, xselinuxGetDeviceCreateContext_Reply },
28687 { 4, xselinuxGetDeviceContext_Reply },
28688 { 6, xselinuxGetWindowCreateContext_Reply },
28689 { 7, xselinuxGetWindowContext_Reply },
28690 { 9, xselinuxGetPropertyCreateContext_Reply },
28691 { 11, xselinuxGetPropertyUseContext_Reply },
28692 { 12, xselinuxGetPropertyContext_Reply },
28693 { 13, xselinuxGetPropertyDataContext_Reply },
28694 { 14, xselinuxListProperties_Reply },
28695 { 16, xselinuxGetSelectionCreateContext_Reply },
28696 { 18, xselinuxGetSelectionUseContext_Reply },
28697 { 19, xselinuxGetSelectionContext_Reply },
28698 { 20, xselinuxGetSelectionDataContext_Reply },
28699 { 21, xselinuxListSelections_Reply },
28700 { 22, xselinuxGetClientContext_Reply },
28701 { 0, NULL }
28702};
28703
28704static void dispatch_xselinux(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28705{
28706 int minor, length;
28707 minor = CARD8(xselinux_extension_minor);
28708 length = REQUEST_LENGTH();
28709
28710 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
28711 val_to_str(minor, xselinux_extension_minor,
28712 "<Unknown opcode %d>"));
28713 switch (minor) {
28714 case 0:
28715 xselinuxQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
28716 break;
28717 case 1:
28718 xselinuxSetDeviceCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28719 break;
28720 case 2:
28721 xselinuxGetDeviceCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28722 break;
28723 case 3:
28724 xselinuxSetDeviceContext(tvb, pinfo, offsetp, t, byte_order, length);
28725 break;
28726 case 4:
28727 xselinuxGetDeviceContext(tvb, pinfo, offsetp, t, byte_order, length);
28728 break;
28729 case 5:
28730 xselinuxSetWindowCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28731 break;
28732 case 6:
28733 xselinuxGetWindowCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28734 break;
28735 case 7:
28736 xselinuxGetWindowContext(tvb, pinfo, offsetp, t, byte_order, length);
28737 break;
28738 case 8:
28739 xselinuxSetPropertyCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28740 break;
28741 case 9:
28742 xselinuxGetPropertyCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28743 break;
28744 case 10:
28745 xselinuxSetPropertyUseContext(tvb, pinfo, offsetp, t, byte_order, length);
28746 break;
28747 case 11:
28748 xselinuxGetPropertyUseContext(tvb, pinfo, offsetp, t, byte_order, length);
28749 break;
28750 case 12:
28751 xselinuxGetPropertyContext(tvb, pinfo, offsetp, t, byte_order, length);
28752 break;
28753 case 13:
28754 xselinuxGetPropertyDataContext(tvb, pinfo, offsetp, t, byte_order, length);
28755 break;
28756 case 14:
28757 xselinuxListProperties(tvb, pinfo, offsetp, t, byte_order, length);
28758 break;
28759 case 15:
28760 xselinuxSetSelectionCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28761 break;
28762 case 16:
28763 xselinuxGetSelectionCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
28764 break;
28765 case 17:
28766 xselinuxSetSelectionUseContext(tvb, pinfo, offsetp, t, byte_order, length);
28767 break;
28768 case 18:
28769 xselinuxGetSelectionUseContext(tvb, pinfo, offsetp, t, byte_order, length);
28770 break;
28771 case 19:
28772 xselinuxGetSelectionContext(tvb, pinfo, offsetp, t, byte_order, length);
28773 break;
28774 case 20:
28775 xselinuxGetSelectionDataContext(tvb, pinfo, offsetp, t, byte_order, length);
28776 break;
28777 case 21:
28778 xselinuxListSelections(tvb, pinfo, offsetp, t, byte_order, length);
28779 break;
28780 case 22:
28781 xselinuxGetClientContext(tvb, pinfo, offsetp, t, byte_order, length);
28782 break;
28783 /* No need for a default case here, since Unknown is printed above,
28784 and UNDECODED() is taken care of by dissect_x11_request */
28785 }
28786}
28787
28788static void register_xselinux(void)
28789{
28790 set_handler("SELinux", dispatch_xselinux, xselinux_errors, xselinux_events, NULL, xselinux_replies);
28791}
28792
28793static void xtestGetVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28794{
28795 proto_tree_add_item(t, hf_x11_xtest_GetVersion_major_version, tvb, *offsetp, 1, byte_order);
28796 *offsetp += 1;
28797 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
28798 *offsetp += 1;
28799 proto_tree_add_item(t, hf_x11_xtest_GetVersion_minor_version, tvb, *offsetp, 2, byte_order);
28800 *offsetp += 2;
28801}
28802static void xtestGetVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28803{
28804 int sequence_number;
28805
28806 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVersion");
28807
28808 REPLY(reply);
28809 proto_tree_add_item(t, hf_x11_xtest_GetVersion_reply_major_version, tvb, *offsetp, 1, byte_order);
28810 *offsetp += 1;
28811 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28812 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28813 "%d (xtest-GetVersion)", sequence_number);
28814 *offsetp += 2;
28815 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28816 *offsetp += 4;
28817 proto_tree_add_item(t, hf_x11_xtest_GetVersion_reply_minor_version, tvb, *offsetp, 2, byte_order);
28818 *offsetp += 2;
28819}
28820
28821static void xtestCompareCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28822{
28823 proto_tree_add_item(t, hf_x11_xtest_CompareCursor_window, tvb, *offsetp, 4, byte_order);
28824 *offsetp += 4;
28825 proto_tree_add_item(t, hf_x11_xtest_CompareCursor_cursor, tvb, *offsetp, 4, byte_order);
28826 *offsetp += 4;
28827}
28828static void xtestCompareCursor_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28829{
28830 int sequence_number;
28831
28832 col_append_fstr(pinfo->cinfo, COL_INFO, "-CompareCursor");
28833
28834 REPLY(reply);
28835 proto_tree_add_item(t, hf_x11_xtest_CompareCursor_reply_same, tvb, *offsetp, 1, byte_order);
28836 *offsetp += 1;
28837 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
28838 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
28839 "%d (xtest-CompareCursor)", sequence_number);
28840 *offsetp += 2;
28841 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
28842 *offsetp += 4;
28843}
28844
28845static void xtestFakeInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28846{
28847 proto_tree_add_item(t, hf_x11_xtest_FakeInput_type, tvb, *offsetp, 1, ENC_NA);
28848 *offsetp += 1;
28849 proto_tree_add_item(t, hf_x11_xtest_FakeInput_detail, tvb, *offsetp, 1, ENC_NA);
28850 *offsetp += 1;
28851 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
28852 *offsetp += 2;
28853 proto_tree_add_item(t, hf_x11_xtest_FakeInput_time, tvb, *offsetp, 4, byte_order);
28854 *offsetp += 4;
28855 proto_tree_add_item(t, hf_x11_xtest_FakeInput_root, tvb, *offsetp, 4, byte_order);
28856 *offsetp += 4;
28857 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 8, ENC_NA);
28858 *offsetp += 8;
28859 proto_tree_add_item(t, hf_x11_xtest_FakeInput_rootX, tvb, *offsetp, 2, byte_order);
28860 *offsetp += 2;
28861 proto_tree_add_item(t, hf_x11_xtest_FakeInput_rootY, tvb, *offsetp, 2, byte_order);
28862 *offsetp += 2;
28863 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 7, ENC_NA);
28864 *offsetp += 7;
28865 proto_tree_add_item(t, hf_x11_xtest_FakeInput_deviceid, tvb, *offsetp, 1, byte_order);
28866 *offsetp += 1;
28867}
28868
28869static void xtestGrabControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
28870{
28871 proto_tree_add_item(t, hf_x11_xtest_GrabControl_impervious, tvb, *offsetp, 1, byte_order);
28872 *offsetp += 1;
28873 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28874 *offsetp += 3;
28875}
28876static const value_string xtest_extension_minor[] = {
28877 { 0, "GetVersion" },
28878 { 1, "CompareCursor" },
28879 { 2, "FakeInput" },
28880 { 3, "GrabControl" },
28881 { 0, NULL }
28882};
28883static const x11_event_info xtest_events[] = {
28884 { NULL, NULL }
28885};
28886static const x11_reply_info xtest_replies[] = {
28887 { 0, xtestGetVersion_Reply },
28888 { 1, xtestCompareCursor_Reply },
28889 { 0, NULL }
28890};
28891
28892static void dispatch_xtest(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
28893{
28894 int minor, length;
28895 minor = CARD8(xtest_extension_minor);
28896 length = REQUEST_LENGTH();
28897
28898 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
28899 val_to_str(minor, xtest_extension_minor,
28900 "<Unknown opcode %d>"));
28901 switch (minor) {
28902 case 0:
28903 xtestGetVersion(tvb, pinfo, offsetp, t, byte_order, length);
28904 break;
28905 case 1:
28906 xtestCompareCursor(tvb, pinfo, offsetp, t, byte_order, length);
28907 break;
28908 case 2:
28909 xtestFakeInput(tvb, pinfo, offsetp, t, byte_order, length);
28910 break;
28911 case 3:
28912 xtestGrabControl(tvb, pinfo, offsetp, t, byte_order, length);
28913 break;
28914 /* No need for a default case here, since Unknown is printed above,
28915 and UNDECODED() is taken care of by dissect_x11_request */
28916 }
28917}
28918
28919static void register_xtest(void)
28920{
28921 set_handler("XTEST", dispatch_xtest, xtest_errors, xtest_events, NULL, xtest_replies);
28922}
28923
28924static void struct_xv_Rational(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
28925{
28926 int i;
28927 for (i = 0; i < count; i++) {
28928 proto_item *item;
28929 proto_tree *t;
28930
28931 item = proto_tree_add_item(root, hf_x11_struct_xv_Rational, tvb, *offsetp, 8, ENC_NA);
28932 t = proto_item_add_subtree(item, ett_x11_rectangle);
28933 proto_tree_add_item(t, hf_x11_struct_xv_Rational_numerator, tvb, *offsetp, 4, byte_order);
28934 *offsetp += 4;
28935 proto_tree_add_item(t, hf_x11_struct_xv_Rational_denominator, tvb, *offsetp, 4, byte_order);
28936 *offsetp += 4;
28937 }
28938}
28939
28940static void struct_xv_Format(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
28941{
28942 int i;
28943 for (i = 0; i < count; i++) {
28944 proto_item *item;
28945 proto_tree *t;
28946
28947 item = proto_tree_add_item(root, hf_x11_struct_xv_Format, tvb, *offsetp, 8, ENC_NA);
28948 t = proto_item_add_subtree(item, ett_x11_rectangle);
28949 proto_tree_add_item(t, hf_x11_struct_xv_Format_visual, tvb, *offsetp, 4, byte_order);
28950 *offsetp += 4;
28951 proto_tree_add_item(t, hf_x11_struct_xv_Format_depth, tvb, *offsetp, 1, byte_order);
28952 *offsetp += 1;
28953 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
28954 *offsetp += 3;
28955 }
28956}
28957
28958static int struct_size_xv_AdaptorInfo(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
28959{
28960 int size = 0;
28961 int f_name_size;
28962 int f_num_formats;
28963 f_name_size = tvb_get_uint16(tvb, *offsetp + size + 4, byte_order);
28964 f_num_formats = tvb_get_uint16(tvb, *offsetp + size + 8, byte_order);
28965 size += f_name_size * 1;
28966 size = (size + 3) & ~3;
28967 size += f_num_formats * 8;
28968 return size + 12;
28969}
28970
28971static void struct_xv_AdaptorInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
28972{
28973 int i;
28974 for (i = 0; i < count; i++) {
28975 proto_item *item;
28976 proto_tree *t;
28977 int f_name_size;
28978 int f_num_formats;
28979
28980 item = proto_tree_add_item(root, hf_x11_struct_xv_AdaptorInfo, tvb, *offsetp, struct_size_xv_AdaptorInfo(tvb, offsetp, byte_order), ENC_NA);
28981 t = proto_item_add_subtree(item, ett_x11_rectangle);
28982 proto_tree_add_item(t, hf_x11_struct_xv_AdaptorInfo_base_id, tvb, *offsetp, 4, byte_order);
28983 *offsetp += 4;
28984 f_name_size = tvb_get_uint16(tvb, *offsetp, byte_order);
28985 proto_tree_add_item(t, hf_x11_struct_xv_AdaptorInfo_name_size, tvb, *offsetp, 2, byte_order);
28986 *offsetp += 2;
28987 proto_tree_add_item(t, hf_x11_struct_xv_AdaptorInfo_num_ports, tvb, *offsetp, 2, byte_order);
28988 *offsetp += 2;
28989 f_num_formats = tvb_get_uint16(tvb, *offsetp, byte_order);
28990 proto_tree_add_item(t, hf_x11_struct_xv_AdaptorInfo_num_formats, tvb, *offsetp, 2, byte_order);
28991 *offsetp += 2;
28992 {
28993 static int* const type_bits [] = {
28994 &hf_x11_struct_xv_AdaptorInfo_type_mask_InputMask,
28995 &hf_x11_struct_xv_AdaptorInfo_type_mask_OutputMask,
28996 &hf_x11_struct_xv_AdaptorInfo_type_mask_VideoMask,
28997 &hf_x11_struct_xv_AdaptorInfo_type_mask_StillMask,
28998 &hf_x11_struct_xv_AdaptorInfo_type_mask_ImageMask,
28999 NULL
29000 };
29001 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xv_AdaptorInfo_type, ett_x11_rectangle, type_bits, byte_order);
29002 }
29003 *offsetp += 1;
29004 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29005 *offsetp += 1;
29006 listOfByte(tvb, offsetp, t, hf_x11_struct_xv_AdaptorInfo_name, f_name_size, byte_order);
29007 pad_to_4_bytes(tvb, offsetp, t);
29008 struct_xv_Format(tvb, offsetp, t, byte_order, f_num_formats);
29009 }
29010}
29011
29012static int struct_size_xv_EncodingInfo(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
29013{
29014 int size = 0;
29015 int f_name_size;
29016 f_name_size = tvb_get_uint16(tvb, *offsetp + size + 4, byte_order);
29017 size += f_name_size * 1;
29018 size = (size + 3) & ~3;
29019 return size + 20;
29020}
29021
29022static void struct_xv_EncodingInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
29023{
29024 int i;
29025 for (i = 0; i < count; i++) {
29026 proto_item *item;
29027 proto_tree *t;
29028 int f_name_size;
29029
29030 item = proto_tree_add_item(root, hf_x11_struct_xv_EncodingInfo, tvb, *offsetp, struct_size_xv_EncodingInfo(tvb, offsetp, byte_order), ENC_NA);
29031 t = proto_item_add_subtree(item, ett_x11_rectangle);
29032 proto_tree_add_item(t, hf_x11_struct_xv_EncodingInfo_encoding, tvb, *offsetp, 4, byte_order);
29033 *offsetp += 4;
29034 f_name_size = tvb_get_uint16(tvb, *offsetp, byte_order);
29035 proto_tree_add_item(t, hf_x11_struct_xv_EncodingInfo_name_size, tvb, *offsetp, 2, byte_order);
29036 *offsetp += 2;
29037 proto_tree_add_item(t, hf_x11_struct_xv_EncodingInfo_width, tvb, *offsetp, 2, byte_order);
29038 *offsetp += 2;
29039 proto_tree_add_item(t, hf_x11_struct_xv_EncodingInfo_height, tvb, *offsetp, 2, byte_order);
29040 *offsetp += 2;
29041 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
29042 *offsetp += 2;
29043 struct_xv_Rational(tvb, offsetp, t, byte_order, 1);
29044 listOfByte(tvb, offsetp, t, hf_x11_struct_xv_EncodingInfo_name, f_name_size, byte_order);
29045 pad_to_4_bytes(tvb, offsetp, t);
29046 }
29047}
29048
29049static int struct_size_xv_AttributeInfo(tvbuff_t *tvb _U_, int *offsetp _U_, unsigned byte_order _U_)
29050{
29051 int size = 0;
29052 int f_size;
29053 f_size = tvb_get_uint32(tvb, *offsetp + size + 12, byte_order);
29054 size += f_size * 1;
29055 size = (size + 3) & ~3;
29056 return size + 16;
29057}
29058
29059static void struct_xv_AttributeInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
29060{
29061 int i;
29062 for (i = 0; i < count; i++) {
29063 proto_item *item;
29064 proto_tree *t;
29065 int f_size;
29066
29067 item = proto_tree_add_item(root, hf_x11_struct_xv_AttributeInfo, tvb, *offsetp, struct_size_xv_AttributeInfo(tvb, offsetp, byte_order), ENC_NA);
29068 t = proto_item_add_subtree(item, ett_x11_rectangle);
29069 {
29070 static int* const flags_bits [] = {
29071 &hf_x11_struct_xv_AttributeInfo_flags_mask_Gettable,
29072 &hf_x11_struct_xv_AttributeInfo_flags_mask_Settable,
29073 NULL
29074 };
29075 proto_tree_add_bitmask(t, tvb, *offsetp, hf_x11_struct_xv_AttributeInfo_flags, ett_x11_rectangle, flags_bits, byte_order);
29076 }
29077 *offsetp += 4;
29078 proto_tree_add_item(t, hf_x11_struct_xv_AttributeInfo_min, tvb, *offsetp, 4, byte_order);
29079 *offsetp += 4;
29080 proto_tree_add_item(t, hf_x11_struct_xv_AttributeInfo_max, tvb, *offsetp, 4, byte_order);
29081 *offsetp += 4;
29082 f_size = tvb_get_uint32(tvb, *offsetp, byte_order);
29083 proto_tree_add_item(t, hf_x11_struct_xv_AttributeInfo_size, tvb, *offsetp, 4, byte_order);
29084 *offsetp += 4;
29085 listOfByte(tvb, offsetp, t, hf_x11_struct_xv_AttributeInfo_name, f_size, byte_order);
29086 pad_to_4_bytes(tvb, offsetp, t);
29087 }
29088}
29089
29090static void struct_xv_ImageFormatInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
29091{
29092 int i;
29093 for (i = 0; i < count; i++) {
29094 proto_item *item;
29095 proto_tree *t;
29096
29097 item = proto_tree_add_item(root, hf_x11_struct_xv_ImageFormatInfo, tvb, *offsetp, 128, ENC_NA);
29098 t = proto_item_add_subtree(item, ett_x11_rectangle);
29099 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_id, tvb, *offsetp, 4, byte_order);
29100 *offsetp += 4;
29101 field8(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_type, byte_order);
29102 field8(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_byte_order, byte_order);
29103 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
29104 *offsetp += 2;
29105 listOfByte(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_guid, 16, byte_order);
29106 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_bpp, tvb, *offsetp, 1, byte_order);
29107 *offsetp += 1;
29108 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_num_planes, tvb, *offsetp, 1, byte_order);
29109 *offsetp += 1;
29110 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 2, ENC_NA);
29111 *offsetp += 2;
29112 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_depth, tvb, *offsetp, 1, byte_order);
29113 *offsetp += 1;
29114 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
29115 *offsetp += 3;
29116 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_red_mask, tvb, *offsetp, 4, byte_order);
29117 *offsetp += 4;
29118 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_green_mask, tvb, *offsetp, 4, byte_order);
29119 *offsetp += 4;
29120 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_blue_mask, tvb, *offsetp, 4, byte_order);
29121 *offsetp += 4;
29122 field8(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_format, byte_order);
29123 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
29124 *offsetp += 3;
29125 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_y_sample_bits, tvb, *offsetp, 4, byte_order);
29126 *offsetp += 4;
29127 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_u_sample_bits, tvb, *offsetp, 4, byte_order);
29128 *offsetp += 4;
29129 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_v_sample_bits, tvb, *offsetp, 4, byte_order);
29130 *offsetp += 4;
29131 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vhorz_y_period, tvb, *offsetp, 4, byte_order);
29132 *offsetp += 4;
29133 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vhorz_u_period, tvb, *offsetp, 4, byte_order);
29134 *offsetp += 4;
29135 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vhorz_v_period, tvb, *offsetp, 4, byte_order);
29136 *offsetp += 4;
29137 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vvert_y_period, tvb, *offsetp, 4, byte_order);
29138 *offsetp += 4;
29139 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vvert_u_period, tvb, *offsetp, 4, byte_order);
29140 *offsetp += 4;
29141 proto_tree_add_item(t, hf_x11_struct_xv_ImageFormatInfo_vvert_v_period, tvb, *offsetp, 4, byte_order);
29142 *offsetp += 4;
29143 listOfByte(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_vcomp_order, 32, byte_order);
29144 field8(tvb, offsetp, t, hf_x11_struct_xv_ImageFormatInfo_vscanline_order, byte_order);
29145 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 11, ENC_NA);
29146 *offsetp += 11;
29147 }
29148}
29149
29150static void xvPortNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, unsigned byte_order)
29151{
29152 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29153 *offsetp += 1;
29154 CARD16(event_sequencenumber);
29155 proto_tree_add_item(t, hf_x11_xv_PortNotify_time, tvb, *offsetp, 4, byte_order);
29156 *offsetp += 4;
29157 proto_tree_add_item(t, hf_x11_xv_PortNotify_port, tvb, *offsetp, 4, byte_order);
29158 *offsetp += 4;
29159 proto_tree_add_item(t, hf_x11_xv_PortNotify_attribute, tvb, *offsetp, 4, byte_order);
29160 *offsetp += 4;
29161 proto_tree_add_item(t, hf_x11_xv_PortNotify_value, tvb, *offsetp, 4, byte_order);
29162 *offsetp += 4;
29163}
29164
29165
29166static void xvQueryExtension(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
29167{
29168}
29169static void xvQueryExtension_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29170{
29171 int sequence_number;
29172
29173 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryExtension");
29174
29175 REPLY(reply);
29176 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29177 *offsetp += 1;
29178 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
29179 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29180 "%d (xv-QueryExtension)", sequence_number);
29181 *offsetp += 2;
29182 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29183 *offsetp += 4;
29184 proto_tree_add_item(t, hf_x11_xv_QueryExtension_reply_major, tvb, *offsetp, 2, byte_order);
29185 *offsetp += 2;
29186 proto_tree_add_item(t, hf_x11_xv_QueryExtension_reply_minor, tvb, *offsetp, 2, byte_order);
29187 *offsetp += 2;
29188}
29189
29190static void xvQueryAdaptors(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29191{
29192 proto_tree_add_item(t, hf_x11_xv_QueryAdaptors_window, tvb, *offsetp, 4, byte_order);
29193 *offsetp += 4;
29194}
29195static void xvQueryAdaptors_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29196{
29197 int sequence_number;
29198 int f_num_adaptors;
29199
29200 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryAdaptors");
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_uint16(tvb, *offsetp, byte_order);
29206 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29207 "%d (xv-QueryAdaptors)", sequence_number);
29208 *offsetp += 2;
29209 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29210 *offsetp += 4;
29211 f_num_adaptors = tvb_get_uint16(tvb, *offsetp, byte_order);
29212 proto_tree_add_item(t, hf_x11_xv_QueryAdaptors_reply_num_adaptors, tvb, *offsetp, 2, byte_order);
29213 *offsetp += 2;
29214 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
29215 *offsetp += 22;
29216 struct_xv_AdaptorInfo(tvb, offsetp, t, byte_order, f_num_adaptors);
29217}
29218
29219static void xvQueryEncodings(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29220{
29221 proto_tree_add_item(t, hf_x11_xv_QueryEncodings_port, tvb, *offsetp, 4, byte_order);
29222 *offsetp += 4;
29223}
29224static void xvQueryEncodings_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29225{
29226 int sequence_number;
29227 int f_num_encodings;
29228
29229 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryEncodings");
29230
29231 REPLY(reply);
29232 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29233 *offsetp += 1;
29234 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
29235 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29236 "%d (xv-QueryEncodings)", sequence_number);
29237 *offsetp += 2;
29238 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29239 *offsetp += 4;
29240 f_num_encodings = tvb_get_uint16(tvb, *offsetp, byte_order);
29241 proto_tree_add_item(t, hf_x11_xv_QueryEncodings_reply_num_encodings, tvb, *offsetp, 2, byte_order);
29242 *offsetp += 2;
29243 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 22, ENC_NA);
29244 *offsetp += 22;
29245 struct_xv_EncodingInfo(tvb, offsetp, t, byte_order, f_num_encodings);
29246}
29247
29248static void xvGrabPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29249{
29250 proto_tree_add_item(t, hf_x11_xv_GrabPort_port, tvb, *offsetp, 4, byte_order);
29251 *offsetp += 4;
29252 field32(tvb, offsetp, t, hf_x11_xv_GrabPort_time, byte_order);
29253}
29254static void xvGrabPort_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29255{
29256 int sequence_number;
29257
29258 col_append_fstr(pinfo->cinfo, COL_INFO, "-GrabPort");
29259
29260 REPLY(reply);
29261 field8(tvb, offsetp, t, hf_x11_xv_GrabPort_reply_result, byte_order);
29262 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
29263 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29264 "%d (xv-GrabPort)", sequence_number);
29265 *offsetp += 2;
29266 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29267 *offsetp += 4;
29268}
29269
29270static void xvUngrabPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29271{
29272 proto_tree_add_item(t, hf_x11_xv_UngrabPort_port, tvb, *offsetp, 4, byte_order);
29273 *offsetp += 4;
29274 field32(tvb, offsetp, t, hf_x11_xv_UngrabPort_time, byte_order);
29275}
29276
29277static void xvPutVideo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29278{
29279 proto_tree_add_item(t, hf_x11_xv_PutVideo_port, tvb, *offsetp, 4, byte_order);
29280 *offsetp += 4;
29281 proto_tree_add_item(t, hf_x11_xv_PutVideo_drawable, tvb, *offsetp, 4, byte_order);
29282 *offsetp += 4;
29283 proto_tree_add_item(t, hf_x11_xv_PutVideo_gc, tvb, *offsetp, 4, byte_order);
29284 *offsetp += 4;
29285 proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_x, tvb, *offsetp, 2, byte_order);
29286 *offsetp += 2;
29287 proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_y, tvb, *offsetp, 2, byte_order);
29288 *offsetp += 2;
29289 proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_w, tvb, *offsetp, 2, byte_order);
29290 *offsetp += 2;
29291 proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_h, tvb, *offsetp, 2, byte_order);
29292 *offsetp += 2;
29293 proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_x, tvb, *offsetp, 2, byte_order);
29294 *offsetp += 2;
29295 proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_y, tvb, *offsetp, 2, byte_order);
29296 *offsetp += 2;
29297 proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_w, tvb, *offsetp, 2, byte_order);
29298 *offsetp += 2;
29299 proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_h, tvb, *offsetp, 2, byte_order);
29300 *offsetp += 2;
29301}
29302
29303static void xvPutStill(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29304{
29305 proto_tree_add_item(t, hf_x11_xv_PutStill_port, tvb, *offsetp, 4, byte_order);
29306 *offsetp += 4;
29307 proto_tree_add_item(t, hf_x11_xv_PutStill_drawable, tvb, *offsetp, 4, byte_order);
29308 *offsetp += 4;
29309 proto_tree_add_item(t, hf_x11_xv_PutStill_gc, tvb, *offsetp, 4, byte_order);
29310 *offsetp += 4;
29311 proto_tree_add_item(t, hf_x11_xv_PutStill_vid_x, tvb, *offsetp, 2, byte_order);
29312 *offsetp += 2;
29313 proto_tree_add_item(t, hf_x11_xv_PutStill_vid_y, tvb, *offsetp, 2, byte_order);
29314 *offsetp += 2;
29315 proto_tree_add_item(t, hf_x11_xv_PutStill_vid_w, tvb, *offsetp, 2, byte_order);
29316 *offsetp += 2;
29317 proto_tree_add_item(t, hf_x11_xv_PutStill_vid_h, tvb, *offsetp, 2, byte_order);
29318 *offsetp += 2;
29319 proto_tree_add_item(t, hf_x11_xv_PutStill_drw_x, tvb, *offsetp, 2, byte_order);
29320 *offsetp += 2;
29321 proto_tree_add_item(t, hf_x11_xv_PutStill_drw_y, tvb, *offsetp, 2, byte_order);
29322 *offsetp += 2;
29323 proto_tree_add_item(t, hf_x11_xv_PutStill_drw_w, tvb, *offsetp, 2, byte_order);
29324 *offsetp += 2;
29325 proto_tree_add_item(t, hf_x11_xv_PutStill_drw_h, tvb, *offsetp, 2, byte_order);
29326 *offsetp += 2;
29327}
29328
29329static void xvGetVideo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29330{
29331 proto_tree_add_item(t, hf_x11_xv_GetVideo_port, tvb, *offsetp, 4, byte_order);
29332 *offsetp += 4;
29333 proto_tree_add_item(t, hf_x11_xv_GetVideo_drawable, tvb, *offsetp, 4, byte_order);
29334 *offsetp += 4;
29335 proto_tree_add_item(t, hf_x11_xv_GetVideo_gc, tvb, *offsetp, 4, byte_order);
29336 *offsetp += 4;
29337 proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_x, tvb, *offsetp, 2, byte_order);
29338 *offsetp += 2;
29339 proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_y, tvb, *offsetp, 2, byte_order);
29340 *offsetp += 2;
29341 proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_w, tvb, *offsetp, 2, byte_order);
29342 *offsetp += 2;
29343 proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_h, tvb, *offsetp, 2, byte_order);
29344 *offsetp += 2;
29345 proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_x, tvb, *offsetp, 2, byte_order);
29346 *offsetp += 2;
29347 proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_y, tvb, *offsetp, 2, byte_order);
29348 *offsetp += 2;
29349 proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_w, tvb, *offsetp, 2, byte_order);
29350 *offsetp += 2;
29351 proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_h, tvb, *offsetp, 2, byte_order);
29352 *offsetp += 2;
29353}
29354
29355static void xvGetStill(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29356{
29357 proto_tree_add_item(t, hf_x11_xv_GetStill_port, tvb, *offsetp, 4, byte_order);
29358 *offsetp += 4;
29359 proto_tree_add_item(t, hf_x11_xv_GetStill_drawable, tvb, *offsetp, 4, byte_order);
29360 *offsetp += 4;
29361 proto_tree_add_item(t, hf_x11_xv_GetStill_gc, tvb, *offsetp, 4, byte_order);
29362 *offsetp += 4;
29363 proto_tree_add_item(t, hf_x11_xv_GetStill_vid_x, tvb, *offsetp, 2, byte_order);
29364 *offsetp += 2;
29365 proto_tree_add_item(t, hf_x11_xv_GetStill_vid_y, tvb, *offsetp, 2, byte_order);
29366 *offsetp += 2;
29367 proto_tree_add_item(t, hf_x11_xv_GetStill_vid_w, tvb, *offsetp, 2, byte_order);
29368 *offsetp += 2;
29369 proto_tree_add_item(t, hf_x11_xv_GetStill_vid_h, tvb, *offsetp, 2, byte_order);
29370 *offsetp += 2;
29371 proto_tree_add_item(t, hf_x11_xv_GetStill_drw_x, tvb, *offsetp, 2, byte_order);
29372 *offsetp += 2;
29373 proto_tree_add_item(t, hf_x11_xv_GetStill_drw_y, tvb, *offsetp, 2, byte_order);
29374 *offsetp += 2;
29375 proto_tree_add_item(t, hf_x11_xv_GetStill_drw_w, tvb, *offsetp, 2, byte_order);
29376 *offsetp += 2;
29377 proto_tree_add_item(t, hf_x11_xv_GetStill_drw_h, tvb, *offsetp, 2, byte_order);
29378 *offsetp += 2;
29379}
29380
29381static void xvStopVideo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29382{
29383 proto_tree_add_item(t, hf_x11_xv_StopVideo_port, tvb, *offsetp, 4, byte_order);
29384 *offsetp += 4;
29385 proto_tree_add_item(t, hf_x11_xv_StopVideo_drawable, tvb, *offsetp, 4, byte_order);
29386 *offsetp += 4;
29387}
29388
29389static void xvSelectVideoNotify(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29390{
29391 proto_tree_add_item(t, hf_x11_xv_SelectVideoNotify_drawable, tvb, *offsetp, 4, byte_order);
29392 *offsetp += 4;
29393 proto_tree_add_item(t, hf_x11_xv_SelectVideoNotify_onoff, tvb, *offsetp, 1, byte_order);
29394 *offsetp += 1;
29395 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
29396 *offsetp += 3;
29397}
29398
29399static void xvSelectPortNotify(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29400{
29401 proto_tree_add_item(t, hf_x11_xv_SelectPortNotify_port, tvb, *offsetp, 4, byte_order);
29402 *offsetp += 4;
29403 proto_tree_add_item(t, hf_x11_xv_SelectPortNotify_onoff, tvb, *offsetp, 1, byte_order);
29404 *offsetp += 1;
29405 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
29406 *offsetp += 3;
29407}
29408
29409static void xvQueryBestSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29410{
29411 proto_tree_add_item(t, hf_x11_xv_QueryBestSize_port, tvb, *offsetp, 4, byte_order);
29412 *offsetp += 4;
29413 proto_tree_add_item(t, hf_x11_xv_QueryBestSize_vid_w, tvb, *offsetp, 2, byte_order);
29414 *offsetp += 2;
29415 proto_tree_add_item(t, hf_x11_xv_QueryBestSize_vid_h, tvb, *offsetp, 2, byte_order);
29416 *offsetp += 2;
29417 proto_tree_add_item(t, hf_x11_xv_QueryBestSize_drw_w, tvb, *offsetp, 2, byte_order);
29418 *offsetp += 2;
29419 proto_tree_add_item(t, hf_x11_xv_QueryBestSize_drw_h, tvb, *offsetp, 2, byte_order);
29420 *offsetp += 2;
29421 proto_tree_add_item(t, hf_x11_xv_QueryBestSize_motion, tvb, *offsetp, 1, byte_order);
29422 *offsetp += 1;
29423 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
29424 *offsetp += 3;
29425}
29426static void xvQueryBestSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29427{
29428 int sequence_number;
29429
29430 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryBestSize");
29431
29432 REPLY(reply);
29433 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29434 *offsetp += 1;
29435 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
29436 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29437 "%d (xv-QueryBestSize)", sequence_number);
29438 *offsetp += 2;
29439 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29440 *offsetp += 4;
29441 proto_tree_add_item(t, hf_x11_xv_QueryBestSize_reply_actual_width, tvb, *offsetp, 2, byte_order);
29442 *offsetp += 2;
29443 proto_tree_add_item(t, hf_x11_xv_QueryBestSize_reply_actual_height, tvb, *offsetp, 2, byte_order);
29444 *offsetp += 2;
29445}
29446
29447static void xvSetPortAttribute(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29448{
29449 proto_tree_add_item(t, hf_x11_xv_SetPortAttribute_port, tvb, *offsetp, 4, byte_order);
29450 *offsetp += 4;
29451 proto_tree_add_item(t, hf_x11_xv_SetPortAttribute_attribute, tvb, *offsetp, 4, byte_order);
29452 *offsetp += 4;
29453 proto_tree_add_item(t, hf_x11_xv_SetPortAttribute_value, tvb, *offsetp, 4, byte_order);
29454 *offsetp += 4;
29455}
29456
29457static void xvGetPortAttribute(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29458{
29459 proto_tree_add_item(t, hf_x11_xv_GetPortAttribute_port, tvb, *offsetp, 4, byte_order);
29460 *offsetp += 4;
29461 proto_tree_add_item(t, hf_x11_xv_GetPortAttribute_attribute, tvb, *offsetp, 4, byte_order);
29462 *offsetp += 4;
29463}
29464static void xvGetPortAttribute_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29465{
29466 int sequence_number;
29467
29468 col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPortAttribute");
29469
29470 REPLY(reply);
29471 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29472 *offsetp += 1;
29473 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
29474 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29475 "%d (xv-GetPortAttribute)", sequence_number);
29476 *offsetp += 2;
29477 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29478 *offsetp += 4;
29479 proto_tree_add_item(t, hf_x11_xv_GetPortAttribute_reply_value, tvb, *offsetp, 4, byte_order);
29480 *offsetp += 4;
29481}
29482
29483static void xvQueryPortAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29484{
29485 proto_tree_add_item(t, hf_x11_xv_QueryPortAttributes_port, tvb, *offsetp, 4, byte_order);
29486 *offsetp += 4;
29487}
29488static void xvQueryPortAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29489{
29490 int sequence_number;
29491 int f_num_attributes;
29492
29493 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryPortAttributes");
29494
29495 REPLY(reply);
29496 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29497 *offsetp += 1;
29498 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
29499 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29500 "%d (xv-QueryPortAttributes)", sequence_number);
29501 *offsetp += 2;
29502 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29503 *offsetp += 4;
29504 f_num_attributes = tvb_get_uint32(tvb, *offsetp, byte_order);
29505 proto_tree_add_item(t, hf_x11_xv_QueryPortAttributes_reply_num_attributes, tvb, *offsetp, 4, byte_order);
29506 *offsetp += 4;
29507 proto_tree_add_item(t, hf_x11_xv_QueryPortAttributes_reply_text_size, tvb, *offsetp, 4, byte_order);
29508 *offsetp += 4;
29509 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 16, ENC_NA);
29510 *offsetp += 16;
29511 struct_xv_AttributeInfo(tvb, offsetp, t, byte_order, f_num_attributes);
29512}
29513
29514static void xvListImageFormats(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29515{
29516 proto_tree_add_item(t, hf_x11_xv_ListImageFormats_port, tvb, *offsetp, 4, byte_order);
29517 *offsetp += 4;
29518}
29519static void xvListImageFormats_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29520{
29521 int sequence_number;
29522 int f_num_formats;
29523
29524 col_append_fstr(pinfo->cinfo, COL_INFO, "-ListImageFormats");
29525
29526 REPLY(reply);
29527 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29528 *offsetp += 1;
29529 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
29530 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29531 "%d (xv-ListImageFormats)", sequence_number);
29532 *offsetp += 2;
29533 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29534 *offsetp += 4;
29535 f_num_formats = tvb_get_uint32(tvb, *offsetp, byte_order);
29536 proto_tree_add_item(t, hf_x11_xv_ListImageFormats_reply_num_formats, tvb, *offsetp, 4, byte_order);
29537 *offsetp += 4;
29538 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
29539 *offsetp += 20;
29540 struct_xv_ImageFormatInfo(tvb, offsetp, t, byte_order, f_num_formats);
29541}
29542
29543static void xvQueryImageAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29544{
29545 proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_port, tvb, *offsetp, 4, byte_order);
29546 *offsetp += 4;
29547 proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_id, tvb, *offsetp, 4, byte_order);
29548 *offsetp += 4;
29549 proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_width, tvb, *offsetp, 2, byte_order);
29550 *offsetp += 2;
29551 proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_height, tvb, *offsetp, 2, byte_order);
29552 *offsetp += 2;
29553}
29554static void xvQueryImageAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29555{
29556 int sequence_number;
29557 int f_num_planes;
29558
29559 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryImageAttributes");
29560
29561 REPLY(reply);
29562 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29563 *offsetp += 1;
29564 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
29565 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29566 "%d (xv-QueryImageAttributes)", sequence_number);
29567 *offsetp += 2;
29568 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29569 *offsetp += 4;
29570 f_num_planes = tvb_get_uint32(tvb, *offsetp, byte_order);
29571 proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_num_planes, tvb, *offsetp, 4, byte_order);
29572 *offsetp += 4;
29573 proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_data_size, tvb, *offsetp, 4, byte_order);
29574 *offsetp += 4;
29575 proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_width, tvb, *offsetp, 2, byte_order);
29576 *offsetp += 2;
29577 proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_height, tvb, *offsetp, 2, byte_order);
29578 *offsetp += 2;
29579 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
29580 *offsetp += 12;
29581 listOfCard32(tvb, offsetp, t, hf_x11_xv_QueryImageAttributes_reply_pitches, hf_x11_xv_QueryImageAttributes_reply_pitches_item, f_num_planes, byte_order);
29582 listOfCard32(tvb, offsetp, t, hf_x11_xv_QueryImageAttributes_reply_offsets, hf_x11_xv_QueryImageAttributes_reply_offsets_item, f_num_planes, byte_order);
29583}
29584
29585static void xvPutImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29586{
29587 proto_tree_add_item(t, hf_x11_xv_PutImage_port, tvb, *offsetp, 4, byte_order);
29588 *offsetp += 4;
29589 proto_tree_add_item(t, hf_x11_xv_PutImage_drawable, tvb, *offsetp, 4, byte_order);
29590 *offsetp += 4;
29591 proto_tree_add_item(t, hf_x11_xv_PutImage_gc, tvb, *offsetp, 4, byte_order);
29592 *offsetp += 4;
29593 proto_tree_add_item(t, hf_x11_xv_PutImage_id, tvb, *offsetp, 4, byte_order);
29594 *offsetp += 4;
29595 proto_tree_add_item(t, hf_x11_xv_PutImage_src_x, tvb, *offsetp, 2, byte_order);
29596 *offsetp += 2;
29597 proto_tree_add_item(t, hf_x11_xv_PutImage_src_y, tvb, *offsetp, 2, byte_order);
29598 *offsetp += 2;
29599 proto_tree_add_item(t, hf_x11_xv_PutImage_src_w, tvb, *offsetp, 2, byte_order);
29600 *offsetp += 2;
29601 proto_tree_add_item(t, hf_x11_xv_PutImage_src_h, tvb, *offsetp, 2, byte_order);
29602 *offsetp += 2;
29603 proto_tree_add_item(t, hf_x11_xv_PutImage_drw_x, tvb, *offsetp, 2, byte_order);
29604 *offsetp += 2;
29605 proto_tree_add_item(t, hf_x11_xv_PutImage_drw_y, tvb, *offsetp, 2, byte_order);
29606 *offsetp += 2;
29607 proto_tree_add_item(t, hf_x11_xv_PutImage_drw_w, tvb, *offsetp, 2, byte_order);
29608 *offsetp += 2;
29609 proto_tree_add_item(t, hf_x11_xv_PutImage_drw_h, tvb, *offsetp, 2, byte_order);
29610 *offsetp += 2;
29611 proto_tree_add_item(t, hf_x11_xv_PutImage_width, tvb, *offsetp, 2, byte_order);
29612 *offsetp += 2;
29613 proto_tree_add_item(t, hf_x11_xv_PutImage_height, tvb, *offsetp, 2, byte_order);
29614 *offsetp += 2;
29615 listOfByte(tvb, offsetp, t, hf_x11_xv_PutImage_data, (length - 40) / 1, byte_order);
29616}
29617
29618static void xvShmPutImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29619{
29620 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_port, tvb, *offsetp, 4, byte_order);
29621 *offsetp += 4;
29622 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drawable, tvb, *offsetp, 4, byte_order);
29623 *offsetp += 4;
29624 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_gc, tvb, *offsetp, 4, byte_order);
29625 *offsetp += 4;
29626 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_shmseg, tvb, *offsetp, 4, byte_order);
29627 *offsetp += 4;
29628 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_id, tvb, *offsetp, 4, byte_order);
29629 *offsetp += 4;
29630 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_offset, tvb, *offsetp, 4, byte_order);
29631 *offsetp += 4;
29632 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_x, tvb, *offsetp, 2, byte_order);
29633 *offsetp += 2;
29634 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_y, tvb, *offsetp, 2, byte_order);
29635 *offsetp += 2;
29636 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_w, tvb, *offsetp, 2, byte_order);
29637 *offsetp += 2;
29638 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_h, tvb, *offsetp, 2, byte_order);
29639 *offsetp += 2;
29640 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_x, tvb, *offsetp, 2, byte_order);
29641 *offsetp += 2;
29642 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_y, tvb, *offsetp, 2, byte_order);
29643 *offsetp += 2;
29644 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_w, tvb, *offsetp, 2, byte_order);
29645 *offsetp += 2;
29646 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_h, tvb, *offsetp, 2, byte_order);
29647 *offsetp += 2;
29648 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_width, tvb, *offsetp, 2, byte_order);
29649 *offsetp += 2;
29650 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_height, tvb, *offsetp, 2, byte_order);
29651 *offsetp += 2;
29652 proto_tree_add_item(t, hf_x11_xv_ShmPutImage_send_event, tvb, *offsetp, 1, byte_order);
29653 *offsetp += 1;
29654 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 3, ENC_NA);
29655 *offsetp += 3;
29656}
29657static const value_string xv_extension_minor[] = {
29658 { 0, "QueryExtension" },
29659 { 1, "QueryAdaptors" },
29660 { 2, "QueryEncodings" },
29661 { 3, "GrabPort" },
29662 { 4, "UngrabPort" },
29663 { 5, "PutVideo" },
29664 { 6, "PutStill" },
29665 { 7, "GetVideo" },
29666 { 8, "GetStill" },
29667 { 9, "StopVideo" },
29668 { 10, "SelectVideoNotify" },
29669 { 11, "SelectPortNotify" },
29670 { 12, "QueryBestSize" },
29671 { 13, "SetPortAttribute" },
29672 { 14, "GetPortAttribute" },
29673 { 15, "QueryPortAttributes" },
29674 { 16, "ListImageFormats" },
29675 { 17, "QueryImageAttributes" },
29676 { 18, "PutImage" },
29677 { 19, "ShmPutImage" },
29678 { 0, NULL }
29679};
29680static const x11_event_info xv_events[] = {
29681 { "xv-PortNotify", xvPortNotify },
29682 { NULL, NULL }
29683};
29684static const x11_reply_info xv_replies[] = {
29685 { 0, xvQueryExtension_Reply },
29686 { 1, xvQueryAdaptors_Reply },
29687 { 2, xvQueryEncodings_Reply },
29688 { 3, xvGrabPort_Reply },
29689 { 12, xvQueryBestSize_Reply },
29690 { 14, xvGetPortAttribute_Reply },
29691 { 15, xvQueryPortAttributes_Reply },
29692 { 16, xvListImageFormats_Reply },
29693 { 17, xvQueryImageAttributes_Reply },
29694 { 0, NULL }
29695};
29696
29697static void dispatch_xv(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29698{
29699 int minor, length;
29700 minor = CARD8(xv_extension_minor);
29701 length = REQUEST_LENGTH();
29702
29703 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
29704 val_to_str(minor, xv_extension_minor,
29705 "<Unknown opcode %d>"));
29706 switch (minor) {
29707 case 0:
29708 xvQueryExtension(tvb, pinfo, offsetp, t, byte_order, length);
29709 break;
29710 case 1:
29711 xvQueryAdaptors(tvb, pinfo, offsetp, t, byte_order, length);
29712 break;
29713 case 2:
29714 xvQueryEncodings(tvb, pinfo, offsetp, t, byte_order, length);
29715 break;
29716 case 3:
29717 xvGrabPort(tvb, pinfo, offsetp, t, byte_order, length);
29718 break;
29719 case 4:
29720 xvUngrabPort(tvb, pinfo, offsetp, t, byte_order, length);
29721 break;
29722 case 5:
29723 xvPutVideo(tvb, pinfo, offsetp, t, byte_order, length);
29724 break;
29725 case 6:
29726 xvPutStill(tvb, pinfo, offsetp, t, byte_order, length);
29727 break;
29728 case 7:
29729 xvGetVideo(tvb, pinfo, offsetp, t, byte_order, length);
29730 break;
29731 case 8:
29732 xvGetStill(tvb, pinfo, offsetp, t, byte_order, length);
29733 break;
29734 case 9:
29735 xvStopVideo(tvb, pinfo, offsetp, t, byte_order, length);
29736 break;
29737 case 10:
29738 xvSelectVideoNotify(tvb, pinfo, offsetp, t, byte_order, length);
29739 break;
29740 case 11:
29741 xvSelectPortNotify(tvb, pinfo, offsetp, t, byte_order, length);
29742 break;
29743 case 12:
29744 xvQueryBestSize(tvb, pinfo, offsetp, t, byte_order, length);
29745 break;
29746 case 13:
29747 xvSetPortAttribute(tvb, pinfo, offsetp, t, byte_order, length);
29748 break;
29749 case 14:
29750 xvGetPortAttribute(tvb, pinfo, offsetp, t, byte_order, length);
29751 break;
29752 case 15:
29753 xvQueryPortAttributes(tvb, pinfo, offsetp, t, byte_order, length);
29754 break;
29755 case 16:
29756 xvListImageFormats(tvb, pinfo, offsetp, t, byte_order, length);
29757 break;
29758 case 17:
29759 xvQueryImageAttributes(tvb, pinfo, offsetp, t, byte_order, length);
29760 break;
29761 case 18:
29762 xvPutImage(tvb, pinfo, offsetp, t, byte_order, length);
29763 break;
29764 case 19:
29765 xvShmPutImage(tvb, pinfo, offsetp, t, byte_order, length);
29766 break;
29767 /* No need for a default case here, since Unknown is printed above,
29768 and UNDECODED() is taken care of by dissect_x11_request */
29769 }
29770}
29771
29772static void register_xv(void)
29773{
29774 set_handler("XVideo", dispatch_xv, xv_errors, xv_events, NULL, xv_replies);
29775}
29776
29777static void struct_xvmc_SurfaceInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, unsigned byte_order _U_, int count)
29778{
29779 int i;
29780 for (i = 0; i < count; i++) {
29781 proto_item *item;
29782 proto_tree *t;
29783
29784 item = proto_tree_add_item(root, hf_x11_struct_xvmc_SurfaceInfo, tvb, *offsetp, 24, ENC_NA);
29785 t = proto_item_add_subtree(item, ett_x11_rectangle);
29786 proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_id, tvb, *offsetp, 4, byte_order);
29787 *offsetp += 4;
29788 proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_chroma_format, tvb, *offsetp, 2, byte_order);
29789 *offsetp += 2;
29790 proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_pad0, tvb, *offsetp, 2, byte_order);
29791 *offsetp += 2;
29792 proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_max_width, tvb, *offsetp, 2, byte_order);
29793 *offsetp += 2;
29794 proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_max_height, tvb, *offsetp, 2, byte_order);
29795 *offsetp += 2;
29796 proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_subpicture_max_width, tvb, *offsetp, 2, byte_order);
29797 *offsetp += 2;
29798 proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_subpicture_max_height, tvb, *offsetp, 2, byte_order);
29799 *offsetp += 2;
29800 proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_mc_type, tvb, *offsetp, 4, byte_order);
29801 *offsetp += 4;
29802 proto_tree_add_item(t, hf_x11_struct_xvmc_SurfaceInfo_flags, tvb, *offsetp, 4, byte_order);
29803 *offsetp += 4;
29804 }
29805}
29806
29807static void xvmcQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, unsigned byte_order _U_, int length _U_)
29808{
29809}
29810static void xvmcQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29811{
29812 int sequence_number;
29813
29814 col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
29815
29816 REPLY(reply);
29817 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29818 *offsetp += 1;
29819 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
29820 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29821 "%d (xvmc-QueryVersion)", sequence_number);
29822 *offsetp += 2;
29823 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29824 *offsetp += 4;
29825 proto_tree_add_item(t, hf_x11_xvmc_QueryVersion_reply_major, tvb, *offsetp, 4, byte_order);
29826 *offsetp += 4;
29827 proto_tree_add_item(t, hf_x11_xvmc_QueryVersion_reply_minor, tvb, *offsetp, 4, byte_order);
29828 *offsetp += 4;
29829}
29830
29831static void xvmcListSurfaceTypes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29832{
29833 proto_tree_add_item(t, hf_x11_xvmc_ListSurfaceTypes_port_id, tvb, *offsetp, 4, byte_order);
29834 *offsetp += 4;
29835}
29836static void xvmcListSurfaceTypes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29837{
29838 int sequence_number;
29839 int f_num;
29840
29841 col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSurfaceTypes");
29842
29843 REPLY(reply);
29844 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29845 *offsetp += 1;
29846 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
29847 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29848 "%d (xvmc-ListSurfaceTypes)", sequence_number);
29849 *offsetp += 2;
29850 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29851 *offsetp += 4;
29852 f_num = tvb_get_uint32(tvb, *offsetp, byte_order);
29853 proto_tree_add_item(t, hf_x11_xvmc_ListSurfaceTypes_reply_num, tvb, *offsetp, 4, byte_order);
29854 *offsetp += 4;
29855 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
29856 *offsetp += 20;
29857 struct_xvmc_SurfaceInfo(tvb, offsetp, t, byte_order, f_num);
29858}
29859
29860static void xvmcCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29861{
29862 proto_tree_add_item(t, hf_x11_xvmc_CreateContext_context_id, tvb, *offsetp, 4, byte_order);
29863 *offsetp += 4;
29864 proto_tree_add_item(t, hf_x11_xvmc_CreateContext_port_id, tvb, *offsetp, 4, byte_order);
29865 *offsetp += 4;
29866 proto_tree_add_item(t, hf_x11_xvmc_CreateContext_surface_id, tvb, *offsetp, 4, byte_order);
29867 *offsetp += 4;
29868 proto_tree_add_item(t, hf_x11_xvmc_CreateContext_width, tvb, *offsetp, 2, byte_order);
29869 *offsetp += 2;
29870 proto_tree_add_item(t, hf_x11_xvmc_CreateContext_height, tvb, *offsetp, 2, byte_order);
29871 *offsetp += 2;
29872 proto_tree_add_item(t, hf_x11_xvmc_CreateContext_flags, tvb, *offsetp, 4, byte_order);
29873 *offsetp += 4;
29874}
29875static void xvmcCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29876{
29877 int sequence_number;
29878 int f_length;
29879
29880 col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateContext");
29881
29882 REPLY(reply);
29883 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29884 *offsetp += 1;
29885 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
29886 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29887 "%d (xvmc-CreateContext)", sequence_number);
29888 *offsetp += 2;
29889 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
29890 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29891 *offsetp += 4;
29892 proto_tree_add_item(t, hf_x11_xvmc_CreateContext_reply_width_actual, tvb, *offsetp, 2, byte_order);
29893 *offsetp += 2;
29894 proto_tree_add_item(t, hf_x11_xvmc_CreateContext_reply_height_actual, tvb, *offsetp, 2, byte_order);
29895 *offsetp += 2;
29896 proto_tree_add_item(t, hf_x11_xvmc_CreateContext_reply_flags_return, tvb, *offsetp, 4, byte_order);
29897 *offsetp += 4;
29898 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
29899 *offsetp += 20;
29900 listOfCard32(tvb, offsetp, t, hf_x11_xvmc_CreateContext_reply_priv_data, hf_x11_xvmc_CreateContext_reply_priv_data_item, f_length, byte_order);
29901}
29902
29903static void xvmcDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29904{
29905 proto_tree_add_item(t, hf_x11_xvmc_DestroyContext_context_id, tvb, *offsetp, 4, byte_order);
29906 *offsetp += 4;
29907}
29908
29909static void xvmcCreateSurface(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29910{
29911 proto_tree_add_item(t, hf_x11_xvmc_CreateSurface_surface_id, tvb, *offsetp, 4, byte_order);
29912 *offsetp += 4;
29913 proto_tree_add_item(t, hf_x11_xvmc_CreateSurface_context_id, tvb, *offsetp, 4, byte_order);
29914 *offsetp += 4;
29915}
29916static void xvmcCreateSurface_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29917{
29918 int sequence_number;
29919 int f_length;
29920
29921 col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateSurface");
29922
29923 REPLY(reply);
29924 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29925 *offsetp += 1;
29926 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
29927 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29928 "%d (xvmc-CreateSurface)", sequence_number);
29929 *offsetp += 2;
29930 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
29931 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29932 *offsetp += 4;
29933 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 24, ENC_NA);
29934 *offsetp += 24;
29935 listOfCard32(tvb, offsetp, t, hf_x11_xvmc_CreateSurface_reply_priv_data, hf_x11_xvmc_CreateSurface_reply_priv_data_item, f_length, byte_order);
29936}
29937
29938static void xvmcDestroySurface(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29939{
29940 proto_tree_add_item(t, hf_x11_xvmc_DestroySurface_surface_id, tvb, *offsetp, 4, byte_order);
29941 *offsetp += 4;
29942}
29943
29944static void xvmcCreateSubpicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29945{
29946 proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_subpicture_id, tvb, *offsetp, 4, byte_order);
29947 *offsetp += 4;
29948 proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_context, tvb, *offsetp, 4, byte_order);
29949 *offsetp += 4;
29950 proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_xvimage_id, tvb, *offsetp, 4, byte_order);
29951 *offsetp += 4;
29952 proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_width, tvb, *offsetp, 2, byte_order);
29953 *offsetp += 2;
29954 proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_height, tvb, *offsetp, 2, byte_order);
29955 *offsetp += 2;
29956}
29957static void xvmcCreateSubpicture_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
29958{
29959 int sequence_number;
29960 int f_length;
29961
29962 col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateSubpicture");
29963
29964 REPLY(reply);
29965 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
29966 *offsetp += 1;
29967 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
29968 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
29969 "%d (xvmc-CreateSubpicture)", sequence_number);
29970 *offsetp += 2;
29971 f_length = tvb_get_uint32(tvb, *offsetp, byte_order);
29972 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
29973 *offsetp += 4;
29974 proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_width_actual, tvb, *offsetp, 2, byte_order);
29975 *offsetp += 2;
29976 proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_height_actual, tvb, *offsetp, 2, byte_order);
29977 *offsetp += 2;
29978 proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_num_palette_entries, tvb, *offsetp, 2, byte_order);
29979 *offsetp += 2;
29980 proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_entry_bytes, tvb, *offsetp, 2, byte_order);
29981 *offsetp += 2;
29982 listOfByte(tvb, offsetp, t, hf_x11_xvmc_CreateSubpicture_reply_component_order, 4, byte_order);
29983 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 12, ENC_NA);
29984 *offsetp += 12;
29985 listOfCard32(tvb, offsetp, t, hf_x11_xvmc_CreateSubpicture_reply_priv_data, hf_x11_xvmc_CreateSubpicture_reply_priv_data_item, f_length, byte_order);
29986}
29987
29988static void xvmcDestroySubpicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29989{
29990 proto_tree_add_item(t, hf_x11_xvmc_DestroySubpicture_subpicture_id, tvb, *offsetp, 4, byte_order);
29991 *offsetp += 4;
29992}
29993
29994static void xvmcListSubpictureTypes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, unsigned byte_order, int length _U_)
29995{
29996 proto_tree_add_item(t, hf_x11_xvmc_ListSubpictureTypes_port_id, tvb, *offsetp, 4, byte_order);
29997 *offsetp += 4;
29998 proto_tree_add_item(t, hf_x11_xvmc_ListSubpictureTypes_surface_id, tvb, *offsetp, 4, byte_order);
29999 *offsetp += 4;
30000}
30001static void xvmcListSubpictureTypes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
30002{
30003 int sequence_number;
30004 int f_num;
30005
30006 col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSubpictureTypes");
30007
30008 REPLY(reply);
30009 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 1, ENC_NA);
30010 *offsetp += 1;
30011 sequence_number = tvb_get_uint16(tvb, *offsetp, byte_order);
30012 proto_tree_add_uint_format_value(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
30013 "%d (xvmc-ListSubpictureTypes)", sequence_number);
30014 *offsetp += 2;
30015 proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, byte_order);
30016 *offsetp += 4;
30017 f_num = tvb_get_uint32(tvb, *offsetp, byte_order);
30018 proto_tree_add_item(t, hf_x11_xvmc_ListSubpictureTypes_reply_num, tvb, *offsetp, 4, byte_order);
30019 *offsetp += 4;
30020 proto_tree_add_item(t, hf_x11_unused, tvb, *offsetp, 20, ENC_NA);
30021 *offsetp += 20;
30022 struct_xv_ImageFormatInfo(tvb, offsetp, t, byte_order, f_num);
30023}
30024static const value_string xvmc_extension_minor[] = {
30025 { 0, "QueryVersion" },
30026 { 1, "ListSurfaceTypes" },
30027 { 2, "CreateContext" },
30028 { 3, "DestroyContext" },
30029 { 4, "CreateSurface" },
30030 { 5, "DestroySurface" },
30031 { 6, "CreateSubpicture" },
30032 { 7, "DestroySubpicture" },
30033 { 8, "ListSubpictureTypes" },
30034 { 0, NULL }
30035};
30036static const x11_event_info xvmc_events[] = {
30037 { NULL, NULL }
30038};
30039static const x11_reply_info xvmc_replies[] = {
30040 { 0, xvmcQueryVersion_Reply },
30041 { 1, xvmcListSurfaceTypes_Reply },
30042 { 2, xvmcCreateContext_Reply },
30043 { 4, xvmcCreateSurface_Reply },
30044 { 6, xvmcCreateSubpicture_Reply },
30045 { 8, xvmcListSubpictureTypes_Reply },
30046 { 0, NULL }
30047};
30048
30049static void dispatch_xvmc(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, unsigned byte_order)
30050{
30051 int minor, length;
30052 minor = CARD8(xvmc_extension_minor);
30053 length = REQUEST_LENGTH();
30054
30055 col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
30056 val_to_str(minor, xvmc_extension_minor,
30057 "<Unknown opcode %d>"));
30058 switch (minor) {
30059 case 0:
30060 xvmcQueryVersion(tvb, pinfo, offsetp, t, byte_order, length);
30061 break;
30062 case 1:
30063 xvmcListSurfaceTypes(tvb, pinfo, offsetp, t, byte_order, length);
30064 break;
30065 case 2:
30066 xvmcCreateContext(tvb, pinfo, offsetp, t, byte_order, length);
30067 break;
30068 case 3:
30069 xvmcDestroyContext(tvb, pinfo, offsetp, t, byte_order, length);
30070 break;
30071 case 4:
30072 xvmcCreateSurface(tvb, pinfo, offsetp, t, byte_order, length);
30073 break;
30074 case 5:
30075 xvmcDestroySurface(tvb, pinfo, offsetp, t, byte_order, length);
30076 break;
30077 case 6:
30078 xvmcCreateSubpicture(tvb, pinfo, offsetp, t, byte_order, length);
30079 break;
30080 case 7:
30081 xvmcDestroySubpicture(tvb, pinfo, offsetp, t, byte_order, length);
30082 break;
30083 case 8:
30084 xvmcListSubpictureTypes(tvb, pinfo, offsetp, t, byte_order, length);
30085 break;
30086 /* No need for a default case here, since Unknown is printed above,
30087 and UNDECODED() is taken care of by dissect_x11_request */
30088 }
30089}
30090
30091static void register_xvmc(void)
30092{
30093 set_handler("XVideo-MotionCompensation", dispatch_xvmc, xvmc_errors, xvmc_events, NULL, xvmc_replies);
30094}
30095static void register_x11_extensions(void)
30096{
30097 register_bigreq();
30098 register_composite();
30099 register_damage();
30100 register_dbe();
30101 register_dpms();
30102 register_dri2();
30103 register_dri3();
30104 register_ge();
30105 register_glx();
30106 register_present();
30107 register_randr();
30108 register_record();
30109 register_render();
30110 register_res();
30111 register_screensaver();
30112 register_shape();
30113 register_shm();
30114 register_sync();
30115 register_xc_misc();
30116 register_xevie();
30117 register_xf86dri();
30118 register_xf86vidmode();
30119 register_xfixes();
30120 register_xinerama();
30121 register_xinput();
30122 register_xkb();
30123 register_xprint();
30124 register_xselinux();
30125 register_xtest();
30126 register_xv();
30127 register_xvmc();
30128}
@ COL_INFO
Definition column-utils.h:88
proto_item * proto_tree_add_uint(proto_tree *tree, int hfindex, tvbuff_t *tvb, int start, int length, uint32_t value)
Definition proto.c:5862
proto_tree * proto_item_add_subtree(proto_item *pi, const int idx)
Definition proto.c:8110
proto_item * proto_tree_add_bitmask(proto_tree *parent_tree, tvbuff_t *tvb, const unsigned offset, const int hf_hdr, const int ett, int *const *fields, const unsigned encoding)
Definition proto.c:13056
Definition packet_info.h:43
Definition proto.h:907
Definition value_string.h:167
Definition value_string.h:27
Definition packet-x11.c:3307
Definition tvbuff-int.h:35
Definition packet-x11.c:3312
Definition packet-x11.c:3302