![Jeff Morriss](/assets/img/avatar_default.png)
The XKEYBOARD extension is a pain in the... so XCB had to grow new ways to describe the protocol. This patch adds support to the Wireshark dissector, so it can successfully process the XCB description of the XKEYBOARD extension. Without this patch, "make x11-dissector" chokes on the current xcbproto from git. Also update the script to deal with the new mesa directory structure. svn path=/trunk/; revision=32520
29762 lines
1.3 MiB
29762 lines
1.3 MiB
/* Do not modify this file. */
|
|
/* It was automatically generated by ../../tools/process-x11-xcb.pl
|
|
using xcbproto version 1.6-4-g2d873a3 */
|
|
/* $Id$ */
|
|
|
|
/*
|
|
* Copyright 2008, 2009 Open Text Corporation <pharris[AT]opentext.com>
|
|
*
|
|
* Wireshark - Network traffic analyzer
|
|
* By Gerald Combs <gerald[AT]wireshark.org>
|
|
* Copyright 1998 Gerald Combs
|
|
*
|
|
* This program is free software; you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License along
|
|
* with this program; if not, write to the Free Software Foundation, Inc.,
|
|
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
|
|
*/
|
|
|
|
#include "x11-glx-render-enum.h"
|
|
|
|
static void mesa_CallList(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CallList_list, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_CallLists(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_CallLists_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CallLists_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_CallLists_lists, (length - 8) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_ListBase(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ListBase_base, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Begin(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Begin_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Bitmap(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Bitmap_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Bitmap_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_Bitmap_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Bitmap_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Bitmap_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Bitmap_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Bitmap_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Bitmap_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Bitmap_xorig, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Bitmap_yorig, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Bitmap_xmove, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Bitmap_ymove, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_Bitmap_bitmap, (length - 44) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_Color3bv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_Color3bv_v, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Color3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Color3dv_v, hf_x11_glx_render_Color3dv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Color3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Color3fv_v, hf_x11_glx_render_Color3fv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Color3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Color3iv_v, hf_x11_glx_render_Color3iv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Color3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Color3sv_v, hf_x11_glx_render_Color3sv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Color3ubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_Color3ubv_v, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Color3uiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_render_Color3uiv_v, hf_x11_glx_render_Color3uiv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Color3usv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfCard16(tvb, offsetp, t, hf_x11_glx_render_Color3usv_v, hf_x11_glx_render_Color3usv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Color4bv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_Color4bv_v, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Color4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Color4dv_v, hf_x11_glx_render_Color4dv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Color4fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Color4fv_v, hf_x11_glx_render_Color4fv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Color4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Color4iv_v, hf_x11_glx_render_Color4iv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Color4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Color4sv_v, hf_x11_glx_render_Color4sv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Color4ubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_Color4ubv_v, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Color4uiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_render_Color4uiv_v, hf_x11_glx_render_Color4uiv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Color4usv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfCard16(tvb, offsetp, t, hf_x11_glx_render_Color4usv_v, hf_x11_glx_render_Color4usv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_EdgeFlagv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_EdgeFlagv_flag, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_End(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
|
|
static void mesa_Indexdv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Indexdv_c, hf_x11_glx_render_Indexdv_c_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_Indexfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Indexfv_c, hf_x11_glx_render_Indexfv_c_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_Indexiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Indexiv_c, hf_x11_glx_render_Indexiv_c_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_Indexsv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Indexsv_c, hf_x11_glx_render_Indexsv_c_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_Normal3bv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_Normal3bv_v, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Normal3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Normal3dv_v, hf_x11_glx_render_Normal3dv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Normal3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Normal3fv_v, hf_x11_glx_render_Normal3fv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Normal3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Normal3iv_v, hf_x11_glx_render_Normal3iv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Normal3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Normal3sv_v, hf_x11_glx_render_Normal3sv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_RasterPos2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_RasterPos2dv_v, hf_x11_glx_render_RasterPos2dv_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_RasterPos2fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_RasterPos2fv_v, hf_x11_glx_render_RasterPos2fv_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_RasterPos2iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_RasterPos2iv_v, hf_x11_glx_render_RasterPos2iv_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_RasterPos2sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_RasterPos2sv_v, hf_x11_glx_render_RasterPos2sv_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_RasterPos3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_RasterPos3dv_v, hf_x11_glx_render_RasterPos3dv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_RasterPos3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_RasterPos3fv_v, hf_x11_glx_render_RasterPos3fv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_RasterPos3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_RasterPos3iv_v, hf_x11_glx_render_RasterPos3iv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_RasterPos3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_RasterPos3sv_v, hf_x11_glx_render_RasterPos3sv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_RasterPos4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_RasterPos4dv_v, hf_x11_glx_render_RasterPos4dv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_RasterPos4fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_RasterPos4fv_v, hf_x11_glx_render_RasterPos4fv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_RasterPos4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_RasterPos4iv_v, hf_x11_glx_render_RasterPos4iv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_RasterPos4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_RasterPos4sv_v, hf_x11_glx_render_RasterPos4sv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Rectdv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Rectdv_v1, hf_x11_glx_render_Rectdv_v1_item, 2, little_endian);
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Rectdv_v2, hf_x11_glx_render_Rectdv_v2_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_Rectfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Rectfv_v1, hf_x11_glx_render_Rectfv_v1_item, 2, little_endian);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Rectfv_v2, hf_x11_glx_render_Rectfv_v2_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_Rectiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Rectiv_v1, hf_x11_glx_render_Rectiv_v1_item, 2, little_endian);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Rectiv_v2, hf_x11_glx_render_Rectiv_v2_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_Rectsv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Rectsv_v1, hf_x11_glx_render_Rectsv_v1_item, 2, little_endian);
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Rectsv_v2, hf_x11_glx_render_Rectsv_v2_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord1dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexCoord1dv_v, hf_x11_glx_render_TexCoord1dv_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord1fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexCoord1fv_v, hf_x11_glx_render_TexCoord1fv_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord1iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexCoord1iv_v, hf_x11_glx_render_TexCoord1iv_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord1sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_TexCoord1sv_v, hf_x11_glx_render_TexCoord1sv_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexCoord2dv_v, hf_x11_glx_render_TexCoord2dv_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord2fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexCoord2fv_v, hf_x11_glx_render_TexCoord2fv_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord2iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexCoord2iv_v, hf_x11_glx_render_TexCoord2iv_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord2sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_TexCoord2sv_v, hf_x11_glx_render_TexCoord2sv_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexCoord3dv_v, hf_x11_glx_render_TexCoord3dv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexCoord3fv_v, hf_x11_glx_render_TexCoord3fv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexCoord3iv_v, hf_x11_glx_render_TexCoord3iv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_TexCoord3sv_v, hf_x11_glx_render_TexCoord3sv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexCoord4dv_v, hf_x11_glx_render_TexCoord4dv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord4fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexCoord4fv_v, hf_x11_glx_render_TexCoord4fv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexCoord4iv_v, hf_x11_glx_render_TexCoord4iv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_TexCoord4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_TexCoord4sv_v, hf_x11_glx_render_TexCoord4sv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Vertex2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Vertex2dv_v, hf_x11_glx_render_Vertex2dv_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_Vertex2fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Vertex2fv_v, hf_x11_glx_render_Vertex2fv_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_Vertex2iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Vertex2iv_v, hf_x11_glx_render_Vertex2iv_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_Vertex2sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Vertex2sv_v, hf_x11_glx_render_Vertex2sv_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_Vertex3dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Vertex3dv_v, hf_x11_glx_render_Vertex3dv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Vertex3fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Vertex3fv_v, hf_x11_glx_render_Vertex3fv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Vertex3iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Vertex3iv_v, hf_x11_glx_render_Vertex3iv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Vertex3sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Vertex3sv_v, hf_x11_glx_render_Vertex3sv_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_Vertex4dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Vertex4dv_v, hf_x11_glx_render_Vertex4dv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Vertex4fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Vertex4fv_v, hf_x11_glx_render_Vertex4fv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Vertex4iv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Vertex4iv_v, hf_x11_glx_render_Vertex4iv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Vertex4sv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_Vertex4sv_v, hf_x11_glx_render_Vertex4sv_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_ClipPlane(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ClipPlane_plane, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ClipPlane_equation, hf_x11_glx_render_ClipPlane_equation_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_ColorMaterial(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorMaterial_face, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorMaterial_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_CullFace(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CullFace_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Fogf(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Fogf_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Fogf_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Fogfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Fogfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Fogfv_params, hf_x11_glx_render_Fogfv_params_item, (length - 4) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Fogi(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Fogi_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Fogi_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Fogiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Fogiv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Fogiv_params, hf_x11_glx_render_Fogiv_params_item, (length - 4) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_FrontFace(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_FrontFace_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Hint(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Hint_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Hint_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Lightf(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Lightf_light, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Lightf_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Lightf_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Lightfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Lightfv_light, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Lightfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Lightfv_params, hf_x11_glx_render_Lightfv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Lighti(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Lighti_light, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Lighti_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Lighti_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Lightiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Lightiv_light, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Lightiv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Lightiv_params, hf_x11_glx_render_Lightiv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_LightModelf(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_LightModelf_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_LightModelf_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_LightModelfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_LightModelfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_LightModelfv_params, hf_x11_glx_render_LightModelfv_params_item, (length - 4) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_LightModeli(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_LightModeli_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_LightModeli_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_LightModeliv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_LightModeliv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_LightModeliv_params, hf_x11_glx_render_LightModeliv_params_item, (length - 4) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_LineStipple(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_LineStipple_factor, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_LineStipple_pattern, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void mesa_LineWidth(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_LineWidth_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Materialf(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Materialf_face, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Materialf_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Materialf_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Materialfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Materialfv_face, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Materialfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Materialfv_params, hf_x11_glx_render_Materialfv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Materiali(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Materiali_face, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Materiali_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Materiali_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Materialiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Materialiv_face, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Materialiv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_Materialiv_params, hf_x11_glx_render_Materialiv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_PointSize(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PointSize_size, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PolygonMode(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PolygonMode_face, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PolygonMode_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PolygonStipple(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PolygonStipple_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_PolygonStipple_mask, (length - 20) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_Scissor(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Scissor_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Scissor_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Scissor_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Scissor_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ShadeModel(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ShadeModel_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_TexParameterf(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexParameterf_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexParameterf_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexParameterf_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_TexParameterfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexParameterfv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexParameterfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexParameterfv_params, hf_x11_glx_render_TexParameterfv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_TexParameteri(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexParameteri_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexParameteri_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexParameteri_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_TexParameteriv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexParameteriv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexParameteriv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexParameteriv_params, hf_x11_glx_render_TexParameteriv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_TexImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_border, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage1D_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexImage1D_pixels, (length - 48) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_TexImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_border, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage2D_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexImage2D_pixels, (length - 52) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_TexEnvf(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexEnvf_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexEnvf_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexEnvf_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_TexEnvfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexEnvfv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexEnvfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexEnvfv_params, hf_x11_glx_render_TexEnvfv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_TexEnvi(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexEnvi_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexEnvi_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexEnvi_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_TexEnviv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexEnviv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexEnviv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexEnviv_params, hf_x11_glx_render_TexEnviv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_TexGend(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGend_coord, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGend_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGend_param, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
}
|
|
|
|
static void mesa_TexGendv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGendv_coord, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGendv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_TexGendv_params, hf_x11_glx_render_TexGendv_params_item, (length - 8) / 8, little_endian);
|
|
}
|
|
|
|
static void mesa_TexGenf(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGenf_coord, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGenf_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGenf_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_TexGenfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGenfv_coord, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGenfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexGenfv_params, hf_x11_glx_render_TexGenfv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_TexGeni(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGeni_coord, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGeni_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGeni_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_TexGeniv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGeniv_coord, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexGeniv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_TexGeniv_params, hf_x11_glx_render_TexGeniv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_InitNames(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
|
|
static void mesa_LoadName(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_LoadName_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PassThrough(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PassThrough_token, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PopName(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
|
|
static void mesa_PushName(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PushName_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_DrawBuffer(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawBuffer_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Clear(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Clear_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ClearAccum(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ClearAccum_red, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ClearAccum_green, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ClearAccum_blue, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ClearAccum_alpha, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ClearIndex(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ClearIndex_c, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ClearColor(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ClearColor_red, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ClearColor_green, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ClearColor_blue, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ClearColor_alpha, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ClearStencil(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ClearStencil_s, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ClearDepth(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ClearDepth_depth, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
}
|
|
|
|
static void mesa_StencilMask(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_StencilMask_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ColorMask(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorMask_red, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorMask_green, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorMask_blue, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorMask_alpha, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void mesa_DepthMask(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_DepthMask_flag, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void mesa_IndexMask(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_IndexMask_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Accum(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Accum_op, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Accum_value, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Disable(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Disable_cap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Enable(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Enable_cap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PopAttrib(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
|
|
static void mesa_PushAttrib(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PushAttrib_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Map1d(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map1d_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map1d_u1, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map1d_u2, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map1d_stride, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map1d_order, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Map1d_points, hf_x11_glx_render_Map1d_points_item, (length - 28) / 8, little_endian);
|
|
}
|
|
|
|
static void mesa_Map1f(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map1f_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map1f_u1, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map1f_u2, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map1f_stride, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map1f_order, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Map1f_points, hf_x11_glx_render_Map1f_points_item, (length - 20) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_Map2d(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2d_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2d_u1, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2d_u2, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2d_ustride, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2d_uorder, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2d_v1, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2d_v2, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2d_vstride, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2d_vorder, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_Map2d_points, hf_x11_glx_render_Map2d_points_item, (length - 52) / 8, little_endian);
|
|
}
|
|
|
|
static void mesa_Map2f(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2f_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2f_u1, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2f_u2, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2f_ustride, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2f_uorder, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2f_v1, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2f_v2, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2f_vstride, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Map2f_vorder, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_Map2f_points, hf_x11_glx_render_Map2f_points_item, (length - 36) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_MapGrid1d(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid1d_un, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid1d_u1, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid1d_u2, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
}
|
|
|
|
static void mesa_MapGrid1f(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid1f_un, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid1f_u1, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid1f_u2, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_MapGrid2d(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_un, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_u1, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_u2, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_vn, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_v1, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid2d_v2, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
}
|
|
|
|
static void mesa_MapGrid2f(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_un, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_u1, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_u2, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_vn, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_v1, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_MapGrid2f_v2, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_EvalCoord1dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_EvalCoord1dv_u, hf_x11_glx_render_EvalCoord1dv_u_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_EvalCoord1fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_EvalCoord1fv_u, hf_x11_glx_render_EvalCoord1fv_u_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_EvalCoord2dv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_EvalCoord2dv_u, hf_x11_glx_render_EvalCoord2dv_u_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_EvalCoord2fv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_EvalCoord2fv_u, hf_x11_glx_render_EvalCoord2fv_u_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_EvalMesh1(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_EvalMesh1_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_EvalMesh1_i1, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_EvalMesh1_i2, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_EvalPoint1(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_EvalPoint1_i, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_EvalMesh2(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_i1, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_i2, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_j1, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_EvalMesh2_j2, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_EvalPoint2(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_EvalPoint2_i, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_EvalPoint2_j, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_AlphaFunc(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_AlphaFunc_func, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_AlphaFunc_ref, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_BlendFunc(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_BlendFunc_sfactor, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_BlendFunc_dfactor, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_LogicOp(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_LogicOp_opcode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_StencilFunc(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_StencilFunc_func, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_StencilFunc_ref, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_StencilFunc_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_StencilOp(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_StencilOp_fail, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_StencilOp_zfail, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_StencilOp_zpass, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_DepthFunc(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_DepthFunc_func, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PixelZoom(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PixelZoom_xfactor, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PixelZoom_yfactor, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PixelTransferf(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PixelTransferf_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PixelTransferf_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PixelTransferi(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PixelTransferi_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PixelTransferi_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PixelMapfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int mapsize;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PixelMapfv_map, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
mapsize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_PixelMapfv_mapsize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_PixelMapfv_values, hf_x11_glx_render_PixelMapfv_values_item, mapsize, little_endian);
|
|
}
|
|
|
|
static void mesa_PixelMapuiv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int mapsize;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PixelMapuiv_map, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
mapsize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_PixelMapuiv_mapsize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_render_PixelMapuiv_values, hf_x11_glx_render_PixelMapuiv_values_item, mapsize, little_endian);
|
|
}
|
|
|
|
static void mesa_PixelMapusv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int mapsize;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PixelMapusv_map, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
mapsize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_PixelMapusv_mapsize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard16(tvb, offsetp, t, hf_x11_glx_render_PixelMapusv_values, hf_x11_glx_render_PixelMapusv_values_item, mapsize, little_endian);
|
|
}
|
|
|
|
static void mesa_ReadBuffer(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ReadBuffer_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_CopyPixels(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyPixels_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_DrawPixels(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawPixels_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_DrawPixels_pixels, (length - 36) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_DepthRange(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_DepthRange_zNear, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_DepthRange_zFar, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
}
|
|
|
|
static void mesa_Frustum(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Frustum_left, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Frustum_right, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Frustum_bottom, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Frustum_top, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Frustum_zNear, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Frustum_zFar, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
}
|
|
|
|
static void mesa_LoadIdentity(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
|
|
static void mesa_LoadMatrixf(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_LoadMatrixf_m, hf_x11_glx_render_LoadMatrixf_m_item, 16, little_endian);
|
|
}
|
|
|
|
static void mesa_LoadMatrixd(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_LoadMatrixd_m, hf_x11_glx_render_LoadMatrixd_m_item, 16, little_endian);
|
|
}
|
|
|
|
static void mesa_MatrixMode(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MatrixMode_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_MultMatrixf(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultMatrixf_m, hf_x11_glx_render_MultMatrixf_m_item, 16, little_endian);
|
|
}
|
|
|
|
static void mesa_MultMatrixd(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultMatrixd_m, hf_x11_glx_render_MultMatrixd_m_item, 16, little_endian);
|
|
}
|
|
|
|
static void mesa_Ortho(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Ortho_left, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Ortho_right, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Ortho_bottom, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Ortho_top, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Ortho_zNear, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Ortho_zFar, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
}
|
|
|
|
static void mesa_PopMatrix(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
|
|
static void mesa_PushMatrix(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
|
|
static void mesa_Rotated(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Rotated_angle, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Rotated_x, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Rotated_y, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Rotated_z, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
}
|
|
|
|
static void mesa_Rotatef(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Rotatef_angle, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Rotatef_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Rotatef_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Rotatef_z, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Scaled(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Scaled_x, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Scaled_y, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Scaled_z, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
}
|
|
|
|
static void mesa_Scalef(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Scalef_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Scalef_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Scalef_z, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Translated(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Translated_x, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Translated_y, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Translated_z, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
}
|
|
|
|
static void mesa_Translatef(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Translatef_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Translatef_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Translatef_z, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_Viewport(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Viewport_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Viewport_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Viewport_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Viewport_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_DrawArrays(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawArrays_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawArrays_first, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawArrays_count, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PolygonOffset(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PolygonOffset_factor, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PolygonOffset_units, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_CopyTexImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage1D_border, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_CopyTexImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexImage2D_border, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_CopyTexSubImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_xoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage1D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_CopyTexSubImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_xoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_yoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage2D_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_TexSubImage1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_xoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage1D_UNUSED, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexSubImage1D_pixels, (length - 48) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_TexSubImage2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_xoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_yoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage2D_UNUSED, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexSubImage2D_pixels, (length - 56) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_BindTexture(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_BindTexture_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_BindTexture_texture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PrioritizeTextures(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_PrioritizeTextures_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_render_PrioritizeTextures_textures, hf_x11_glx_render_PrioritizeTextures_textures_item, n, little_endian);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_PrioritizeTextures_priorities, hf_x11_glx_render_PrioritizeTextures_priorities_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_Indexubv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_Indexubv_c, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_BlendColor(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_BlendColor_red, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_BlendColor_green, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_BlendColor_blue, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_BlendColor_alpha, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_BlendEquation(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_BlendEquation_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ColorTable(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTable_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTable_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTable_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTable_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTable_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTable_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTable_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTable_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTable_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTable_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTable_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_ColorTable_table, (length - 40) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_ColorTableParameterfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTableParameterfv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTableParameterfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ColorTableParameterfv_params, hf_x11_glx_render_ColorTableParameterfv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_ColorTableParameteriv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTableParameteriv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorTableParameteriv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_ColorTableParameteriv_params, hf_x11_glx_render_ColorTableParameteriv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_CopyColorTable(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyColorTable_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ColorSubTable(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_start, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_count, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ColorSubTable_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_ColorSubTable_data, (length - 40) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_CopyColorSubTable(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_start, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyColorSubTable_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ConvolutionFilter1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter1D_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_ConvolutionFilter1D_image, (length - 40) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_ConvolutionFilter2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionFilter2D_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_ConvolutionFilter2D_image, (length - 44) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_ConvolutionParameterf(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterf_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterf_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterf_params, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ConvolutionParameterfv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterfv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameterfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ConvolutionParameterfv_params, hf_x11_glx_render_ConvolutionParameterfv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_ConvolutionParameteri(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteri_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteri_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteri_params, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ConvolutionParameteriv(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteriv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ConvolutionParameteriv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_ConvolutionParameteriv_params, hf_x11_glx_render_ConvolutionParameteriv_params_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_CopyConvolutionFilter1D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter1D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_CopyConvolutionFilter2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyConvolutionFilter2D_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_SeparableFilter2D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_SeparableFilter2D_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_SeparableFilter2D_row, (length - 24) / 1, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_SeparableFilter2D_column, (length - 24) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_Histogram(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Histogram_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Histogram_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Histogram_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Histogram_sink, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void mesa_Minmax(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_Minmax_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Minmax_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_Minmax_sink, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void mesa_ResetHistogram(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ResetHistogram_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ResetMinmax(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ResetMinmax_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_TexImage3D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_depth, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_border, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage3D_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexImage3D_pixels, (length - 56) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_TexSubImage3D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_xoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_yoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_zoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_depth, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage3D_UNUSED, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexSubImage3D_pixels, (length - 64) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_CopyTexSubImage3D(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_xoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_yoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_zoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CopyTexSubImage3D_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ActiveTextureARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ActiveTextureARB_texture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_MultiTexCoord1dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord1dvARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord1dvARB_v, hf_x11_glx_render_MultiTexCoord1dvARB_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord1fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord1fvARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord1fvARB_v, hf_x11_glx_render_MultiTexCoord1fvARB_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord1ivARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord1ivARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord1ivARB_v, hf_x11_glx_render_MultiTexCoord1ivARB_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord1svARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord1svARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord1svARB_v, hf_x11_glx_render_MultiTexCoord1svARB_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord2dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord2dvARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord2dvARB_v, hf_x11_glx_render_MultiTexCoord2dvARB_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord2fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord2fvARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord2fvARB_v, hf_x11_glx_render_MultiTexCoord2fvARB_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord2ivARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord2ivARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord2ivARB_v, hf_x11_glx_render_MultiTexCoord2ivARB_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord2svARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord2svARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord2svARB_v, hf_x11_glx_render_MultiTexCoord2svARB_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord3dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord3dvARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord3dvARB_v, hf_x11_glx_render_MultiTexCoord3dvARB_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord3fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord3fvARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord3fvARB_v, hf_x11_glx_render_MultiTexCoord3fvARB_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord3ivARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord3ivARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord3ivARB_v, hf_x11_glx_render_MultiTexCoord3ivARB_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord3svARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord3svARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord3svARB_v, hf_x11_glx_render_MultiTexCoord3svARB_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord4dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord4dvARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord4dvARB_v, hf_x11_glx_render_MultiTexCoord4dvARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord4fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord4fvARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord4fvARB_v, hf_x11_glx_render_MultiTexCoord4fvARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord4ivARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord4ivARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord4ivARB_v, hf_x11_glx_render_MultiTexCoord4ivARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_MultiTexCoord4svARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_MultiTexCoord4svARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_MultiTexCoord4svARB_v, hf_x11_glx_render_MultiTexCoord4svARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_SampleCoverageARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_SampleCoverageARB_value, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_SampleCoverageARB_invert, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void mesa_CompressedTexImage3DARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int imageSize;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3DARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3DARB_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3DARB_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3DARB_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3DARB_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3DARB_depth, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3DARB_border, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
imageSize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage3DARB_imageSize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexImage3DARB_data, imageSize, little_endian);
|
|
}
|
|
|
|
static void mesa_CompressedTexImage2DARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int imageSize;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2DARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2DARB_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2DARB_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2DARB_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2DARB_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2DARB_border, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
imageSize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage2DARB_imageSize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexImage2DARB_data, imageSize, little_endian);
|
|
}
|
|
|
|
static void mesa_CompressedTexImage1DARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int imageSize;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1DARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1DARB_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1DARB_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1DARB_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1DARB_border, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
imageSize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexImage1DARB_imageSize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexImage1DARB_data, imageSize, little_endian);
|
|
}
|
|
|
|
static void mesa_CompressedTexSubImage3DARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int imageSize;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3DARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3DARB_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3DARB_xoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3DARB_yoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3DARB_zoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3DARB_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3DARB_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3DARB_depth, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3DARB_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
imageSize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage3DARB_imageSize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexSubImage3DARB_data, imageSize, little_endian);
|
|
}
|
|
|
|
static void mesa_CompressedTexSubImage2DARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int imageSize;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2DARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2DARB_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2DARB_xoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2DARB_yoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2DARB_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2DARB_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2DARB_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
imageSize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage2DARB_imageSize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexSubImage2DARB_data, imageSize, little_endian);
|
|
}
|
|
|
|
static void mesa_CompressedTexSubImage1DARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int imageSize;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1DARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1DARB_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1DARB_xoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1DARB_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1DARB_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
imageSize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_CompressedTexSubImage1DARB_imageSize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_CompressedTexSubImage1DARB_data, imageSize, little_endian);
|
|
}
|
|
|
|
static void mesa_CurrentPaletteMatrixARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CurrentPaletteMatrixARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_MatrixIndexubvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int size;
|
|
size = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_MatrixIndexubvARB_size, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_MatrixIndexubvARB_indices, size, little_endian);
|
|
}
|
|
|
|
static void mesa_MatrixIndexusvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int size;
|
|
size = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_MatrixIndexusvARB_size, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard16(tvb, offsetp, t, hf_x11_glx_render_MatrixIndexusvARB_indices, hf_x11_glx_render_MatrixIndexusvARB_indices_item, size, little_endian);
|
|
}
|
|
|
|
static void mesa_MatrixIndexuivARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int size;
|
|
size = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_MatrixIndexuivARB_size, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_render_MatrixIndexuivARB_indices, hf_x11_glx_render_MatrixIndexuivARB_indices_item, size, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib1dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1dvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1dvARB_v, hf_x11_glx_render_VertexAttrib1dvARB_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib1fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1fvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1fvARB_v, hf_x11_glx_render_VertexAttrib1fvARB_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib1svARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1svARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1svARB_v, hf_x11_glx_render_VertexAttrib1svARB_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib2dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2dvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2dvARB_v, hf_x11_glx_render_VertexAttrib2dvARB_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib2fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2fvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2fvARB_v, hf_x11_glx_render_VertexAttrib2fvARB_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib2svARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2svARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2svARB_v, hf_x11_glx_render_VertexAttrib2svARB_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib3dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3dvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3dvARB_v, hf_x11_glx_render_VertexAttrib3dvARB_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib3fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3fvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3fvARB_v, hf_x11_glx_render_VertexAttrib3fvARB_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib3svARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3svARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3svARB_v, hf_x11_glx_render_VertexAttrib3svARB_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4dvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4dvARB_v, hf_x11_glx_render_VertexAttrib4dvARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4fvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4fvARB_v, hf_x11_glx_render_VertexAttrib4fvARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4svARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4svARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4svARB_v, hf_x11_glx_render_VertexAttrib4svARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4NubvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4NubvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4NubvARB_v, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4bvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4bvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4bvARB_v, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4ivARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4ivARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4ivARB_v, hf_x11_glx_render_VertexAttrib4ivARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4ubvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4ubvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4ubvARB_v, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4usvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4usvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4usvARB_v, hf_x11_glx_render_VertexAttrib4usvARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4uivARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4uivARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4uivARB_v, hf_x11_glx_render_VertexAttrib4uivARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4NbvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4NbvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4NbvARB_v, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4NsvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4NsvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4NsvARB_v, hf_x11_glx_render_VertexAttrib4NsvARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4NivARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4NivARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4NivARB_v, hf_x11_glx_render_VertexAttrib4NivARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4NusvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4NusvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4NusvARB_v, hf_x11_glx_render_VertexAttrib4NusvARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4NuivARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4NuivARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4NuivARB_v, hf_x11_glx_render_VertexAttrib4NuivARB_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_ProgramStringARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int len;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramStringARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramStringARB_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramStringARB_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_ProgramStringARB_string, len, little_endian);
|
|
}
|
|
|
|
static void mesa_ProgramEnvParameter4dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramEnvParameter4dvARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramEnvParameter4dvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramEnvParameter4dvARB_params, hf_x11_glx_render_ProgramEnvParameter4dvARB_params_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_ProgramEnvParameter4fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramEnvParameter4fvARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramEnvParameter4fvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramEnvParameter4fvARB_params, hf_x11_glx_render_ProgramEnvParameter4fvARB_params_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_ProgramLocalParameter4dvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramLocalParameter4dvARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramLocalParameter4dvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramLocalParameter4dvARB_params, hf_x11_glx_render_ProgramLocalParameter4dvARB_params_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_ProgramLocalParameter4fvARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramLocalParameter4fvARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramLocalParameter4fvARB_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramLocalParameter4fvARB_params, hf_x11_glx_render_ProgramLocalParameter4fvARB_params_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_BeginQueryARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_BeginQueryARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_BeginQueryARB_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_EndQueryARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_EndQueryARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_DrawBuffersARB(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_DrawBuffersARB_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_render_DrawBuffersARB_bufs, hf_x11_glx_render_DrawBuffersARB_bufs_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_PolygonOffsetEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PolygonOffsetEXT_factor, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PolygonOffsetEXT_bias, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_TexFilterFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexFilterFuncSGIS_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexFilterFuncSGIS_filter, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexFilterFuncSGIS_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_TexFilterFuncSGIS_weights, hf_x11_glx_render_TexFilterFuncSGIS_weights_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_TexImage4DSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_internalformat, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_depth, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_size4d, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_border, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexImage4DSGIS_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexImage4DSGIS_pixels, (length - 60) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_TexSubImage4DSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_swapbytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_lsbfirst, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_rowlength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_skiprows, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_skippixels, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_alignment, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_xoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_yoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_zoffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_woffset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_depth, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_size4d, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TexSubImage4DSGIS_UNUSED, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_TexSubImage4DSGIS_pixels, (length - 72) / 1, little_endian);
|
|
}
|
|
|
|
static void mesa_DetailTexFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_DetailTexFuncSGIS_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_DetailTexFuncSGIS_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_DetailTexFuncSGIS_points, hf_x11_glx_render_DetailTexFuncSGIS_points_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_SharpenTexFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_SharpenTexFuncSGIS_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_SharpenTexFuncSGIS_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_SharpenTexFuncSGIS_points, hf_x11_glx_render_SharpenTexFuncSGIS_points_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_SampleMaskSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_SampleMaskSGIS_value, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_SampleMaskSGIS_invert, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void mesa_SamplePatternSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_SamplePatternSGIS_pattern, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PointParameterfEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PointParameterfEXT_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PointParameterfEXT_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PointParameterfvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PointParameterfvEXT_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_PointParameterfvEXT_params, hf_x11_glx_render_PointParameterfvEXT_params_item, (length - 4) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_FrameZoomSGIX(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_FrameZoomSGIX_factor, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_TagSampleBufferSGIX(tvbuff_t *tvb _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
|
|
static void mesa_ReferencePlaneSGIX(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ReferencePlaneSGIX_equation, hf_x11_glx_render_ReferencePlaneSGIX_equation_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_FogFuncSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_FogFuncSGIS_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_FogFuncSGIS_points, hf_x11_glx_render_FogFuncSGIS_points_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_SecondaryColor3bvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3bvEXT_v, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_SecondaryColor3dvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3dvEXT_v, hf_x11_glx_render_SecondaryColor3dvEXT_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_SecondaryColor3fvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3fvEXT_v, hf_x11_glx_render_SecondaryColor3fvEXT_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_SecondaryColor3ivEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3ivEXT_v, hf_x11_glx_render_SecondaryColor3ivEXT_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_SecondaryColor3svEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3svEXT_v, hf_x11_glx_render_SecondaryColor3svEXT_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_SecondaryColor3ubvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3ubvEXT_v, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_SecondaryColor3uivEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3uivEXT_v, hf_x11_glx_render_SecondaryColor3uivEXT_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_SecondaryColor3usvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfCard16(tvb, offsetp, t, hf_x11_glx_render_SecondaryColor3usvEXT_v, hf_x11_glx_render_SecondaryColor3usvEXT_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_FogCoordfvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_FogCoordfvEXT_coord, hf_x11_glx_render_FogCoordfvEXT_coord_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_FogCoorddvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_FogCoorddvEXT_coord, hf_x11_glx_render_FogCoorddvEXT_coord_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_PixelTexGenSGIX(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PixelTexGenSGIX_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_BlendFuncSeparateEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_BlendFuncSeparateEXT_sfactorRGB, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_BlendFuncSeparateEXT_dfactorRGB, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_BlendFuncSeparateEXT_sfactorAlpha, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_BlendFuncSeparateEXT_dfactorAlpha, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_VertexWeightfvEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexWeightfvEXT_weight, hf_x11_glx_render_VertexWeightfvEXT_weight_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_CombinerParameterfvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterfvNV_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_CombinerParameterfvNV_params, hf_x11_glx_render_CombinerParameterfvNV_params_item, (length - 4) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_CombinerParameterfNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterfNV_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterfNV_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_CombinerParameterivNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerParameterivNV_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_CombinerParameterivNV_params, hf_x11_glx_render_CombinerParameterivNV_params_item, (length - 4) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_CombinerParameteriNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerParameteriNV_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerParameteriNV_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_CombinerInputNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_stage, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_portion, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_variable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_input, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_mapping, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerInputNV_componentUsage, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_CombinerOutputNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_stage, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_portion, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_abOutput, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_cdOutput, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_sumOutput, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_scale, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_bias, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_abDotProduct, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_cdDotProduct, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_CombinerOutputNV_muxSum, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void mesa_FinalCombinerInputNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_variable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_input, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_mapping, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_FinalCombinerInputNV_componentUsage, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_WindowPos3fvMESA(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_WindowPos3fvMESA_v, hf_x11_glx_render_WindowPos3fvMESA_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_TextureColorMaskSGIS(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_red, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_green, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_blue, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TextureColorMaskSGIS_alpha, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void mesa_BindProgramNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_BindProgramNV_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_BindProgramNV_program, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ExecuteProgramNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ExecuteProgramNV_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ExecuteProgramNV_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ExecuteProgramNV_params, hf_x11_glx_render_ExecuteProgramNV_params_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_LoadProgramNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int len;
|
|
proto_tree_add_item(t, hf_x11_glx_render_LoadProgramNV_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_LoadProgramNV_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_LoadProgramNV_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_LoadProgramNV_program, len, little_endian);
|
|
}
|
|
|
|
static void mesa_ProgramParameters4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int num;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4dvNV_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4dvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
num = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4dvNV_num, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramParameters4dvNV_params, hf_x11_glx_render_ProgramParameters4dvNV_params_item, num, little_endian);
|
|
}
|
|
|
|
static void mesa_ProgramParameters4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int num;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4fvNV_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4fvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
num = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramParameters4fvNV_num, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramParameters4fvNV_params, hf_x11_glx_render_ProgramParameters4fvNV_params_item, num, little_endian);
|
|
}
|
|
|
|
static void mesa_RequestResidentProgramsNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_RequestResidentProgramsNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_render_RequestResidentProgramsNV_ids, hf_x11_glx_render_RequestResidentProgramsNV_ids_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_TrackMatrixNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_address, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_matrix, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_TrackMatrixNV_transform, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_VertexAttrib1svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1svNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1svNV_v, hf_x11_glx_render_VertexAttrib1svNV_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib2svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2svNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2svNV_v, hf_x11_glx_render_VertexAttrib2svNV_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib3svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3svNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3svNV_v, hf_x11_glx_render_VertexAttrib3svNV_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4svNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4svNV_v, hf_x11_glx_render_VertexAttrib4svNV_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib1fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1fvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1fvNV_v, hf_x11_glx_render_VertexAttrib1fvNV_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib2fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2fvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2fvNV_v, hf_x11_glx_render_VertexAttrib2fvNV_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib3fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3fvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3fvNV_v, hf_x11_glx_render_VertexAttrib3fvNV_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4fvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4fvNV_v, hf_x11_glx_render_VertexAttrib4fvNV_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib1dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib1dvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib1dvNV_v, hf_x11_glx_render_VertexAttrib1dvNV_v_item, 1, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib2dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib2dvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib2dvNV_v, hf_x11_glx_render_VertexAttrib2dvNV_v_item, 2, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib3dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib3dvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib3dvNV_v, hf_x11_glx_render_VertexAttrib3dvNV_v_item, 3, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4dvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4dvNV_v, hf_x11_glx_render_VertexAttrib4dvNV_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttrib4ubvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttrib4ubvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttrib4ubvNV_v, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttribs1svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1svNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1svNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs1svNV_v, hf_x11_glx_render_VertexAttribs1svNV_v_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttribs2svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2svNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2svNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs2svNV_v, hf_x11_glx_render_VertexAttribs2svNV_v_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttribs3svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3svNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3svNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs3svNV_v, hf_x11_glx_render_VertexAttribs3svNV_v_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttribs4svNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4svNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4svNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt16(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4svNV_v, hf_x11_glx_render_VertexAttribs4svNV_v_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttribs1fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1fvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1fvNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs1fvNV_v, hf_x11_glx_render_VertexAttribs1fvNV_v_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttribs2fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2fvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2fvNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs2fvNV_v, hf_x11_glx_render_VertexAttribs2fvNV_v_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttribs3fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3fvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3fvNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs3fvNV_v, hf_x11_glx_render_VertexAttribs3fvNV_v_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttribs4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4fvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4fvNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4fvNV_v, hf_x11_glx_render_VertexAttribs4fvNV_v_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttribs1dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1dvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs1dvNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs1dvNV_v, hf_x11_glx_render_VertexAttribs1dvNV_v_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttribs2dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2dvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs2dvNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs2dvNV_v, hf_x11_glx_render_VertexAttribs2dvNV_v_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttribs3dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3dvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs3dvNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs3dvNV_v, hf_x11_glx_render_VertexAttribs3dvNV_v_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttribs4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4dvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4dvNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4dvNV_v, hf_x11_glx_render_VertexAttribs4dvNV_v_item, n, little_endian);
|
|
}
|
|
|
|
static void mesa_VertexAttribs4ubvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int n;
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4ubvNV_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_VertexAttribs4ubvNV_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_VertexAttribs4ubvNV_v, n, little_endian);
|
|
}
|
|
|
|
static void mesa_PointParameteriNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PointParameteriNV_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_PointParameteriNV_param, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_PointParameterivNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_PointParameterivNV_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_render_PointParameterivNV_params, hf_x11_glx_render_PointParameterivNV_params_item, (length - 4) / 4, little_endian);
|
|
}
|
|
|
|
static void mesa_ActiveStencilFaceEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_ActiveStencilFaceEXT_face, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void mesa_ProgramNamedParameter4fvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int len;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4fvNV_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4fvNV_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4fvNV_name, len, little_endian);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4fvNV_v, hf_x11_glx_render_ProgramNamedParameter4fvNV_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_ProgramNamedParameter4dvNV(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int len;
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4dvNV_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_render_ProgramNamedParameter4dvNV_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4dvNV_name, len, little_endian);
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_render_ProgramNamedParameter4dvNV_v, hf_x11_glx_render_ProgramNamedParameter4dvNV_v_item, 4, little_endian);
|
|
}
|
|
|
|
static void mesa_DepthBoundsEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_DepthBoundsEXT_zmin, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
proto_tree_add_item(t, hf_x11_glx_render_DepthBoundsEXT_zmax, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
}
|
|
|
|
static void mesa_BlendEquationSeparateEXT(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
proto_tree_add_item(t, hf_x11_glx_render_BlendEquationSeparateEXT_modeRGB, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
proto_tree_add_item(t, hf_x11_glx_render_BlendEquationSeparateEXT_modeA, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static const value_string glx_render_op_name[] = {
|
|
{ 1, "glCallList" },
|
|
{ 2, "glCallLists" },
|
|
{ 3, "glListBase" },
|
|
{ 4, "glBegin" },
|
|
{ 5, "glBitmap" },
|
|
{ 6, "glColor3bv" },
|
|
{ 7, "glColor3dv" },
|
|
{ 8, "glColor3fv" },
|
|
{ 9, "glColor3iv" },
|
|
{ 10, "glColor3sv" },
|
|
{ 11, "glColor3ubv" },
|
|
{ 12, "glColor3uiv" },
|
|
{ 13, "glColor3usv" },
|
|
{ 14, "glColor4bv" },
|
|
{ 15, "glColor4dv" },
|
|
{ 16, "glColor4fv" },
|
|
{ 17, "glColor4iv" },
|
|
{ 18, "glColor4sv" },
|
|
{ 19, "glColor4ubv" },
|
|
{ 20, "glColor4uiv" },
|
|
{ 21, "glColor4usv" },
|
|
{ 22, "glEdgeFlagv" },
|
|
{ 23, "glEnd" },
|
|
{ 24, "glIndexdv" },
|
|
{ 25, "glIndexfv" },
|
|
{ 26, "glIndexiv" },
|
|
{ 27, "glIndexsv" },
|
|
{ 28, "glNormal3bv" },
|
|
{ 29, "glNormal3dv" },
|
|
{ 30, "glNormal3fv" },
|
|
{ 31, "glNormal3iv" },
|
|
{ 32, "glNormal3sv" },
|
|
{ 33, "glRasterPos2dv" },
|
|
{ 34, "glRasterPos2fv" },
|
|
{ 35, "glRasterPos2iv" },
|
|
{ 36, "glRasterPos2sv" },
|
|
{ 37, "glRasterPos3dv" },
|
|
{ 38, "glRasterPos3fv" },
|
|
{ 39, "glRasterPos3iv" },
|
|
{ 40, "glRasterPos3sv" },
|
|
{ 41, "glRasterPos4dv" },
|
|
{ 42, "glRasterPos4fv" },
|
|
{ 43, "glRasterPos4iv" },
|
|
{ 44, "glRasterPos4sv" },
|
|
{ 45, "glRectdv" },
|
|
{ 46, "glRectfv" },
|
|
{ 47, "glRectiv" },
|
|
{ 48, "glRectsv" },
|
|
{ 49, "glTexCoord1dv" },
|
|
{ 50, "glTexCoord1fv" },
|
|
{ 51, "glTexCoord1iv" },
|
|
{ 52, "glTexCoord1sv" },
|
|
{ 53, "glTexCoord2dv" },
|
|
{ 54, "glTexCoord2fv" },
|
|
{ 55, "glTexCoord2iv" },
|
|
{ 56, "glTexCoord2sv" },
|
|
{ 57, "glTexCoord3dv" },
|
|
{ 58, "glTexCoord3fv" },
|
|
{ 59, "glTexCoord3iv" },
|
|
{ 60, "glTexCoord3sv" },
|
|
{ 61, "glTexCoord4dv" },
|
|
{ 62, "glTexCoord4fv" },
|
|
{ 63, "glTexCoord4iv" },
|
|
{ 64, "glTexCoord4sv" },
|
|
{ 65, "glVertex2dv" },
|
|
{ 66, "glVertex2fv" },
|
|
{ 67, "glVertex2iv" },
|
|
{ 68, "glVertex2sv" },
|
|
{ 69, "glVertex3dv" },
|
|
{ 70, "glVertex3fv" },
|
|
{ 71, "glVertex3iv" },
|
|
{ 72, "glVertex3sv" },
|
|
{ 73, "glVertex4dv" },
|
|
{ 74, "glVertex4fv" },
|
|
{ 75, "glVertex4iv" },
|
|
{ 76, "glVertex4sv" },
|
|
{ 77, "glClipPlane" },
|
|
{ 78, "glColorMaterial" },
|
|
{ 79, "glCullFace" },
|
|
{ 80, "glFogf" },
|
|
{ 81, "glFogfv" },
|
|
{ 82, "glFogi" },
|
|
{ 83, "glFogiv" },
|
|
{ 84, "glFrontFace" },
|
|
{ 85, "glHint" },
|
|
{ 86, "glLightf" },
|
|
{ 87, "glLightfv" },
|
|
{ 88, "glLighti" },
|
|
{ 89, "glLightiv" },
|
|
{ 90, "glLightModelf" },
|
|
{ 91, "glLightModelfv" },
|
|
{ 92, "glLightModeli" },
|
|
{ 93, "glLightModeliv" },
|
|
{ 94, "glLineStipple" },
|
|
{ 95, "glLineWidth" },
|
|
{ 96, "glMaterialf" },
|
|
{ 97, "glMaterialfv" },
|
|
{ 98, "glMateriali" },
|
|
{ 99, "glMaterialiv" },
|
|
{ 100, "glPointSize" },
|
|
{ 101, "glPolygonMode" },
|
|
{ 102, "glPolygonStipple" },
|
|
{ 103, "glScissor" },
|
|
{ 104, "glShadeModel" },
|
|
{ 105, "glTexParameterf" },
|
|
{ 106, "glTexParameterfv" },
|
|
{ 107, "glTexParameteri" },
|
|
{ 108, "glTexParameteriv" },
|
|
{ 109, "glTexImage1D" },
|
|
{ 110, "glTexImage2D" },
|
|
{ 111, "glTexEnvf" },
|
|
{ 112, "glTexEnvfv" },
|
|
{ 113, "glTexEnvi" },
|
|
{ 114, "glTexEnviv" },
|
|
{ 115, "glTexGend" },
|
|
{ 116, "glTexGendv" },
|
|
{ 117, "glTexGenf" },
|
|
{ 118, "glTexGenfv" },
|
|
{ 119, "glTexGeni" },
|
|
{ 120, "glTexGeniv" },
|
|
{ 121, "glInitNames" },
|
|
{ 122, "glLoadName" },
|
|
{ 123, "glPassThrough" },
|
|
{ 124, "glPopName" },
|
|
{ 125, "glPushName" },
|
|
{ 126, "glDrawBuffer" },
|
|
{ 127, "glClear" },
|
|
{ 128, "glClearAccum" },
|
|
{ 129, "glClearIndex" },
|
|
{ 130, "glClearColor" },
|
|
{ 131, "glClearStencil" },
|
|
{ 132, "glClearDepth" },
|
|
{ 133, "glStencilMask" },
|
|
{ 134, "glColorMask" },
|
|
{ 135, "glDepthMask" },
|
|
{ 136, "glIndexMask" },
|
|
{ 137, "glAccum" },
|
|
{ 138, "glDisable" },
|
|
{ 139, "glEnable" },
|
|
{ 141, "glPopAttrib" },
|
|
{ 142, "glPushAttrib" },
|
|
{ 143, "glMap1d" },
|
|
{ 144, "glMap1f" },
|
|
{ 145, "glMap2d" },
|
|
{ 146, "glMap2f" },
|
|
{ 147, "glMapGrid1d" },
|
|
{ 148, "glMapGrid1f" },
|
|
{ 149, "glMapGrid2d" },
|
|
{ 150, "glMapGrid2f" },
|
|
{ 151, "glEvalCoord1dv" },
|
|
{ 152, "glEvalCoord1fv" },
|
|
{ 153, "glEvalCoord2dv" },
|
|
{ 154, "glEvalCoord2fv" },
|
|
{ 155, "glEvalMesh1" },
|
|
{ 156, "glEvalPoint1" },
|
|
{ 157, "glEvalMesh2" },
|
|
{ 158, "glEvalPoint2" },
|
|
{ 159, "glAlphaFunc" },
|
|
{ 160, "glBlendFunc" },
|
|
{ 161, "glLogicOp" },
|
|
{ 162, "glStencilFunc" },
|
|
{ 163, "glStencilOp" },
|
|
{ 164, "glDepthFunc" },
|
|
{ 165, "glPixelZoom" },
|
|
{ 166, "glPixelTransferf" },
|
|
{ 167, "glPixelTransferi" },
|
|
{ 168, "glPixelMapfv" },
|
|
{ 169, "glPixelMapuiv" },
|
|
{ 170, "glPixelMapusv" },
|
|
{ 171, "glReadBuffer" },
|
|
{ 172, "glCopyPixels" },
|
|
{ 173, "glDrawPixels" },
|
|
{ 174, "glDepthRange" },
|
|
{ 175, "glFrustum" },
|
|
{ 176, "glLoadIdentity" },
|
|
{ 177, "glLoadMatrixf" },
|
|
{ 178, "glLoadMatrixd" },
|
|
{ 179, "glMatrixMode" },
|
|
{ 180, "glMultMatrixf" },
|
|
{ 181, "glMultMatrixd" },
|
|
{ 182, "glOrtho" },
|
|
{ 183, "glPopMatrix" },
|
|
{ 184, "glPushMatrix" },
|
|
{ 185, "glRotated" },
|
|
{ 186, "glRotatef" },
|
|
{ 187, "glScaled" },
|
|
{ 188, "glScalef" },
|
|
{ 189, "glTranslated" },
|
|
{ 190, "glTranslatef" },
|
|
{ 191, "glViewport" },
|
|
{ 192, "glPolygonOffset" },
|
|
{ 193, "glDrawArrays" },
|
|
{ 194, "glIndexubv" },
|
|
{ 195, "glColorSubTable" },
|
|
{ 196, "glCopyColorSubTable" },
|
|
{ 197, "glActiveTextureARB" },
|
|
{ 198, "glMultiTexCoord1dvARB" },
|
|
{ 199, "glMultiTexCoord1fvARB" },
|
|
{ 200, "glMultiTexCoord1ivARB" },
|
|
{ 201, "glMultiTexCoord1svARB" },
|
|
{ 202, "glMultiTexCoord2dvARB" },
|
|
{ 203, "glMultiTexCoord2fvARB" },
|
|
{ 204, "glMultiTexCoord2ivARB" },
|
|
{ 205, "glMultiTexCoord2svARB" },
|
|
{ 206, "glMultiTexCoord3dvARB" },
|
|
{ 207, "glMultiTexCoord3fvARB" },
|
|
{ 208, "glMultiTexCoord3ivARB" },
|
|
{ 209, "glMultiTexCoord3svARB" },
|
|
{ 210, "glMultiTexCoord4dvARB" },
|
|
{ 211, "glMultiTexCoord4fvARB" },
|
|
{ 212, "glMultiTexCoord4ivARB" },
|
|
{ 213, "glMultiTexCoord4svARB" },
|
|
{ 214, "glCompressedTexImage1DARB" },
|
|
{ 215, "glCompressedTexImage2DARB" },
|
|
{ 216, "glCompressedTexImage3DARB" },
|
|
{ 217, "glCompressedTexSubImage1DARB" },
|
|
{ 218, "glCompressedTexSubImage2DARB" },
|
|
{ 219, "glCompressedTexSubImage3DARB" },
|
|
{ 229, "glSampleCoverageARB" },
|
|
{ 230, "glWindowPos3fvMESA" },
|
|
{ 231, "glBeginQueryARB" },
|
|
{ 232, "glEndQueryARB" },
|
|
{ 233, "glDrawBuffersARB" },
|
|
{ 2048, "glSampleMaskSGIS" },
|
|
{ 2049, "glSamplePatternSGIS" },
|
|
{ 2050, "glTagSampleBufferSGIX" },
|
|
{ 2051, "glDetailTexFuncSGIS" },
|
|
{ 2052, "glSharpenTexFuncSGIS" },
|
|
{ 2053, "glColorTable" },
|
|
{ 2054, "glColorTableParameterfv" },
|
|
{ 2055, "glColorTableParameteriv" },
|
|
{ 2056, "glCopyColorTable" },
|
|
{ 2057, "glTexImage4DSGIS" },
|
|
{ 2058, "glTexSubImage4DSGIS" },
|
|
{ 2059, "glPixelTexGenSGIX" },
|
|
{ 2064, "glTexFilterFuncSGIS" },
|
|
{ 2065, "glPointParameterfEXT" },
|
|
{ 2066, "glPointParameterfvEXT" },
|
|
{ 2067, "glFogFuncSGIS" },
|
|
{ 2071, "glReferencePlaneSGIX" },
|
|
{ 2072, "glFrameZoomSGIX" },
|
|
{ 2082, "glTextureColorMaskSGIS" },
|
|
{ 4096, "glBlendColor" },
|
|
{ 4097, "glBlendEquation" },
|
|
{ 4098, "glPolygonOffsetEXT" },
|
|
{ 4099, "glTexSubImage1D" },
|
|
{ 4100, "glTexSubImage2D" },
|
|
{ 4101, "glConvolutionFilter1D" },
|
|
{ 4102, "glConvolutionFilter2D" },
|
|
{ 4103, "glConvolutionParameterf" },
|
|
{ 4104, "glConvolutionParameterfv" },
|
|
{ 4105, "glConvolutionParameteri" },
|
|
{ 4106, "glConvolutionParameteriv" },
|
|
{ 4107, "glCopyConvolutionFilter1D" },
|
|
{ 4108, "glCopyConvolutionFilter2D" },
|
|
{ 4109, "glSeparableFilter2D" },
|
|
{ 4110, "glHistogram" },
|
|
{ 4111, "glMinmax" },
|
|
{ 4112, "glResetHistogram" },
|
|
{ 4113, "glResetMinmax" },
|
|
{ 4114, "glTexImage3D" },
|
|
{ 4115, "glTexSubImage3D" },
|
|
{ 4117, "glBindTexture" },
|
|
{ 4118, "glPrioritizeTextures" },
|
|
{ 4119, "glCopyTexImage1D" },
|
|
{ 4120, "glCopyTexImage2D" },
|
|
{ 4121, "glCopyTexSubImage1D" },
|
|
{ 4122, "glCopyTexSubImage2D" },
|
|
{ 4123, "glCopyTexSubImage3D" },
|
|
{ 4124, "glFogCoordfvEXT" },
|
|
{ 4125, "glFogCoorddvEXT" },
|
|
{ 4126, "glSecondaryColor3bvEXT" },
|
|
{ 4127, "glSecondaryColor3svEXT" },
|
|
{ 4128, "glSecondaryColor3ivEXT" },
|
|
{ 4129, "glSecondaryColor3fvEXT" },
|
|
{ 4130, "glSecondaryColor3dvEXT" },
|
|
{ 4131, "glSecondaryColor3ubvEXT" },
|
|
{ 4132, "glSecondaryColor3usvEXT" },
|
|
{ 4133, "glSecondaryColor3uivEXT" },
|
|
{ 4134, "glBlendFuncSeparateEXT" },
|
|
{ 4135, "glVertexWeightfvEXT" },
|
|
{ 4136, "glCombinerParameterfNV" },
|
|
{ 4137, "glCombinerParameterfvNV" },
|
|
{ 4138, "glCombinerParameteriNV" },
|
|
{ 4139, "glCombinerParameterivNV" },
|
|
{ 4140, "glCombinerInputNV" },
|
|
{ 4141, "glCombinerOutputNV" },
|
|
{ 4142, "glFinalCombinerInputNV" },
|
|
{ 4180, "glBindProgramNV" },
|
|
{ 4181, "glExecuteProgramNV" },
|
|
{ 4182, "glRequestResidentProgramsNV" },
|
|
{ 4183, "glLoadProgramNV" },
|
|
{ 4184, "glProgramEnvParameter4fvARB" },
|
|
{ 4185, "glProgramEnvParameter4dvARB" },
|
|
{ 4186, "glProgramParameters4fvNV" },
|
|
{ 4187, "glProgramParameters4dvNV" },
|
|
{ 4188, "glTrackMatrixNV" },
|
|
{ 4189, "glVertexAttrib1svARB" },
|
|
{ 4190, "glVertexAttrib2svARB" },
|
|
{ 4191, "glVertexAttrib3svARB" },
|
|
{ 4192, "glVertexAttrib4svARB" },
|
|
{ 4193, "glVertexAttrib1fvARB" },
|
|
{ 4194, "glVertexAttrib2fvARB" },
|
|
{ 4195, "glVertexAttrib3fvARB" },
|
|
{ 4196, "glVertexAttrib4fvARB" },
|
|
{ 4197, "glVertexAttrib1dvARB" },
|
|
{ 4198, "glVertexAttrib2dvARB" },
|
|
{ 4199, "glVertexAttrib3dvARB" },
|
|
{ 4200, "glVertexAttrib4dvARB" },
|
|
{ 4201, "glVertexAttrib4NubvARB" },
|
|
{ 4202, "glVertexAttribs1svNV" },
|
|
{ 4203, "glVertexAttribs2svNV" },
|
|
{ 4204, "glVertexAttribs3svNV" },
|
|
{ 4205, "glVertexAttribs4svNV" },
|
|
{ 4206, "glVertexAttribs1fvNV" },
|
|
{ 4207, "glVertexAttribs2fvNV" },
|
|
{ 4208, "glVertexAttribs3fvNV" },
|
|
{ 4209, "glVertexAttribs4fvNV" },
|
|
{ 4210, "glVertexAttribs1dvNV" },
|
|
{ 4211, "glVertexAttribs2dvNV" },
|
|
{ 4212, "glVertexAttribs3dvNV" },
|
|
{ 4213, "glVertexAttribs4dvNV" },
|
|
{ 4214, "glVertexAttribs4ubvNV" },
|
|
{ 4215, "glProgramLocalParameter4fvARB" },
|
|
{ 4216, "glProgramLocalParameter4dvARB" },
|
|
{ 4217, "glProgramStringARB" },
|
|
{ 4218, "glProgramNamedParameter4fvNV" },
|
|
{ 4219, "glProgramNamedParameter4dvNV" },
|
|
{ 4220, "glActiveStencilFaceEXT" },
|
|
{ 4221, "glPointParameteriNV" },
|
|
{ 4222, "glPointParameterivNV" },
|
|
{ 4228, "glBlendEquationSeparateEXT" },
|
|
{ 4229, "glDepthBoundsEXT" },
|
|
{ 4230, "glVertexAttrib4bvARB" },
|
|
{ 4231, "glVertexAttrib4ivARB" },
|
|
{ 4232, "glVertexAttrib4ubvARB" },
|
|
{ 4233, "glVertexAttrib4usvARB" },
|
|
{ 4234, "glVertexAttrib4uivARB" },
|
|
{ 4235, "glVertexAttrib4NbvARB" },
|
|
{ 4236, "glVertexAttrib4NsvARB" },
|
|
{ 4237, "glVertexAttrib4NivARB" },
|
|
{ 4238, "glVertexAttrib4NusvARB" },
|
|
{ 4239, "glVertexAttrib4NuivARB" },
|
|
{ 4265, "glVertexAttrib1svNV" },
|
|
{ 4266, "glVertexAttrib2svNV" },
|
|
{ 4267, "glVertexAttrib3svNV" },
|
|
{ 4268, "glVertexAttrib4svNV" },
|
|
{ 4269, "glVertexAttrib1fvNV" },
|
|
{ 4270, "glVertexAttrib2fvNV" },
|
|
{ 4271, "glVertexAttrib3fvNV" },
|
|
{ 4272, "glVertexAttrib4fvNV" },
|
|
{ 4273, "glVertexAttrib1dvNV" },
|
|
{ 4274, "glVertexAttrib2dvNV" },
|
|
{ 4275, "glVertexAttrib3dvNV" },
|
|
{ 4276, "glVertexAttrib4dvNV" },
|
|
{ 4277, "glVertexAttrib4ubvNV" },
|
|
{ 4326, "glMatrixIndexubvARB" },
|
|
{ 4327, "glMatrixIndexusvARB" },
|
|
{ 4328, "glMatrixIndexuivARB" },
|
|
{ 4329, "glCurrentPaletteMatrixARB" },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_glx_render(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian, int length)
|
|
{
|
|
while (length >= 4) {
|
|
guint32 op, len;
|
|
int next;
|
|
proto_item *ti;
|
|
proto_tree *tt;
|
|
|
|
len = VALUE16(tvb, *offsetp);
|
|
|
|
op = VALUE16(tvb, *offsetp + 2);
|
|
ti = proto_tree_add_uint(t, hf_x11_glx_render_op_name, tvb, *offsetp, len, op);
|
|
|
|
tt = proto_item_add_subtree(ti, ett_x11_list_of_rectangle);
|
|
|
|
ti = proto_tree_add_item(tt, hf_x11_request_length, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
proto_tree_add_item(tt, hf_x11_glx_render_op_name, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
|
|
if (len < 4) {
|
|
expert_add_info_format(pinfo, ti, PI_MALFORMED, PI_ERROR, "Invalid Length");
|
|
/* Eat the rest of the packet, mark it undecoded */
|
|
len = length;
|
|
op = -1;
|
|
}
|
|
len -= 4;
|
|
|
|
next = *offsetp + len;
|
|
|
|
switch (op) {
|
|
case 1:
|
|
mesa_CallList(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2:
|
|
mesa_CallLists(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 3:
|
|
mesa_ListBase(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4:
|
|
mesa_Begin(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 5:
|
|
mesa_Bitmap(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 6:
|
|
mesa_Color3bv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 7:
|
|
mesa_Color3dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 8:
|
|
mesa_Color3fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 9:
|
|
mesa_Color3iv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 10:
|
|
mesa_Color3sv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 11:
|
|
mesa_Color3ubv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 12:
|
|
mesa_Color3uiv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 13:
|
|
mesa_Color3usv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 14:
|
|
mesa_Color4bv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 15:
|
|
mesa_Color4dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 16:
|
|
mesa_Color4fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 17:
|
|
mesa_Color4iv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 18:
|
|
mesa_Color4sv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 19:
|
|
mesa_Color4ubv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 20:
|
|
mesa_Color4uiv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 21:
|
|
mesa_Color4usv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 22:
|
|
mesa_EdgeFlagv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 23:
|
|
mesa_End(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 24:
|
|
mesa_Indexdv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 25:
|
|
mesa_Indexfv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 26:
|
|
mesa_Indexiv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 27:
|
|
mesa_Indexsv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 28:
|
|
mesa_Normal3bv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 29:
|
|
mesa_Normal3dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 30:
|
|
mesa_Normal3fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 31:
|
|
mesa_Normal3iv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 32:
|
|
mesa_Normal3sv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 33:
|
|
mesa_RasterPos2dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 34:
|
|
mesa_RasterPos2fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 35:
|
|
mesa_RasterPos2iv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 36:
|
|
mesa_RasterPos2sv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 37:
|
|
mesa_RasterPos3dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 38:
|
|
mesa_RasterPos3fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 39:
|
|
mesa_RasterPos3iv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 40:
|
|
mesa_RasterPos3sv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 41:
|
|
mesa_RasterPos4dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 42:
|
|
mesa_RasterPos4fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 43:
|
|
mesa_RasterPos4iv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 44:
|
|
mesa_RasterPos4sv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 45:
|
|
mesa_Rectdv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 46:
|
|
mesa_Rectfv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 47:
|
|
mesa_Rectiv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 48:
|
|
mesa_Rectsv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 49:
|
|
mesa_TexCoord1dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 50:
|
|
mesa_TexCoord1fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 51:
|
|
mesa_TexCoord1iv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 52:
|
|
mesa_TexCoord1sv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 53:
|
|
mesa_TexCoord2dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 54:
|
|
mesa_TexCoord2fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 55:
|
|
mesa_TexCoord2iv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 56:
|
|
mesa_TexCoord2sv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 57:
|
|
mesa_TexCoord3dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 58:
|
|
mesa_TexCoord3fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 59:
|
|
mesa_TexCoord3iv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 60:
|
|
mesa_TexCoord3sv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 61:
|
|
mesa_TexCoord4dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 62:
|
|
mesa_TexCoord4fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 63:
|
|
mesa_TexCoord4iv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 64:
|
|
mesa_TexCoord4sv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 65:
|
|
mesa_Vertex2dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 66:
|
|
mesa_Vertex2fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 67:
|
|
mesa_Vertex2iv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 68:
|
|
mesa_Vertex2sv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 69:
|
|
mesa_Vertex3dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 70:
|
|
mesa_Vertex3fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 71:
|
|
mesa_Vertex3iv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 72:
|
|
mesa_Vertex3sv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 73:
|
|
mesa_Vertex4dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 74:
|
|
mesa_Vertex4fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 75:
|
|
mesa_Vertex4iv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 76:
|
|
mesa_Vertex4sv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 77:
|
|
mesa_ClipPlane(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 78:
|
|
mesa_ColorMaterial(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 79:
|
|
mesa_CullFace(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 80:
|
|
mesa_Fogf(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 81:
|
|
mesa_Fogfv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 82:
|
|
mesa_Fogi(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 83:
|
|
mesa_Fogiv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 84:
|
|
mesa_FrontFace(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 85:
|
|
mesa_Hint(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 86:
|
|
mesa_Lightf(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 87:
|
|
mesa_Lightfv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 88:
|
|
mesa_Lighti(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 89:
|
|
mesa_Lightiv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 90:
|
|
mesa_LightModelf(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 91:
|
|
mesa_LightModelfv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 92:
|
|
mesa_LightModeli(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 93:
|
|
mesa_LightModeliv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 94:
|
|
mesa_LineStipple(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 95:
|
|
mesa_LineWidth(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 96:
|
|
mesa_Materialf(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 97:
|
|
mesa_Materialfv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 98:
|
|
mesa_Materiali(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 99:
|
|
mesa_Materialiv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 100:
|
|
mesa_PointSize(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 101:
|
|
mesa_PolygonMode(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 102:
|
|
mesa_PolygonStipple(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 103:
|
|
mesa_Scissor(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 104:
|
|
mesa_ShadeModel(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 105:
|
|
mesa_TexParameterf(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 106:
|
|
mesa_TexParameterfv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 107:
|
|
mesa_TexParameteri(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 108:
|
|
mesa_TexParameteriv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 109:
|
|
mesa_TexImage1D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 110:
|
|
mesa_TexImage2D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 111:
|
|
mesa_TexEnvf(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 112:
|
|
mesa_TexEnvfv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 113:
|
|
mesa_TexEnvi(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 114:
|
|
mesa_TexEnviv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 115:
|
|
mesa_TexGend(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 116:
|
|
mesa_TexGendv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 117:
|
|
mesa_TexGenf(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 118:
|
|
mesa_TexGenfv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 119:
|
|
mesa_TexGeni(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 120:
|
|
mesa_TexGeniv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 121:
|
|
mesa_InitNames(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 122:
|
|
mesa_LoadName(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 123:
|
|
mesa_PassThrough(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 124:
|
|
mesa_PopName(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 125:
|
|
mesa_PushName(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 126:
|
|
mesa_DrawBuffer(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 127:
|
|
mesa_Clear(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 128:
|
|
mesa_ClearAccum(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 129:
|
|
mesa_ClearIndex(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 130:
|
|
mesa_ClearColor(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 131:
|
|
mesa_ClearStencil(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 132:
|
|
mesa_ClearDepth(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 133:
|
|
mesa_StencilMask(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 134:
|
|
mesa_ColorMask(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 135:
|
|
mesa_DepthMask(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 136:
|
|
mesa_IndexMask(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 137:
|
|
mesa_Accum(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 138:
|
|
mesa_Disable(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 139:
|
|
mesa_Enable(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 141:
|
|
mesa_PopAttrib(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 142:
|
|
mesa_PushAttrib(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 143:
|
|
mesa_Map1d(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 144:
|
|
mesa_Map1f(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 145:
|
|
mesa_Map2d(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 146:
|
|
mesa_Map2f(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 147:
|
|
mesa_MapGrid1d(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 148:
|
|
mesa_MapGrid1f(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 149:
|
|
mesa_MapGrid2d(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 150:
|
|
mesa_MapGrid2f(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 151:
|
|
mesa_EvalCoord1dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 152:
|
|
mesa_EvalCoord1fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 153:
|
|
mesa_EvalCoord2dv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 154:
|
|
mesa_EvalCoord2fv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 155:
|
|
mesa_EvalMesh1(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 156:
|
|
mesa_EvalPoint1(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 157:
|
|
mesa_EvalMesh2(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 158:
|
|
mesa_EvalPoint2(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 159:
|
|
mesa_AlphaFunc(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 160:
|
|
mesa_BlendFunc(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 161:
|
|
mesa_LogicOp(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 162:
|
|
mesa_StencilFunc(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 163:
|
|
mesa_StencilOp(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 164:
|
|
mesa_DepthFunc(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 165:
|
|
mesa_PixelZoom(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 166:
|
|
mesa_PixelTransferf(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 167:
|
|
mesa_PixelTransferi(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 168:
|
|
mesa_PixelMapfv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 169:
|
|
mesa_PixelMapuiv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 170:
|
|
mesa_PixelMapusv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 171:
|
|
mesa_ReadBuffer(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 172:
|
|
mesa_CopyPixels(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 173:
|
|
mesa_DrawPixels(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 174:
|
|
mesa_DepthRange(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 175:
|
|
mesa_Frustum(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 176:
|
|
mesa_LoadIdentity(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 177:
|
|
mesa_LoadMatrixf(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 178:
|
|
mesa_LoadMatrixd(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 179:
|
|
mesa_MatrixMode(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 180:
|
|
mesa_MultMatrixf(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 181:
|
|
mesa_MultMatrixd(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 182:
|
|
mesa_Ortho(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 183:
|
|
mesa_PopMatrix(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 184:
|
|
mesa_PushMatrix(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 185:
|
|
mesa_Rotated(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 186:
|
|
mesa_Rotatef(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 187:
|
|
mesa_Scaled(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 188:
|
|
mesa_Scalef(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 189:
|
|
mesa_Translated(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 190:
|
|
mesa_Translatef(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 191:
|
|
mesa_Viewport(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 192:
|
|
mesa_PolygonOffset(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 193:
|
|
mesa_DrawArrays(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 194:
|
|
mesa_Indexubv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 195:
|
|
mesa_ColorSubTable(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 196:
|
|
mesa_CopyColorSubTable(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 197:
|
|
mesa_ActiveTextureARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 198:
|
|
mesa_MultiTexCoord1dvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 199:
|
|
mesa_MultiTexCoord1fvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 200:
|
|
mesa_MultiTexCoord1ivARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 201:
|
|
mesa_MultiTexCoord1svARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 202:
|
|
mesa_MultiTexCoord2dvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 203:
|
|
mesa_MultiTexCoord2fvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 204:
|
|
mesa_MultiTexCoord2ivARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 205:
|
|
mesa_MultiTexCoord2svARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 206:
|
|
mesa_MultiTexCoord3dvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 207:
|
|
mesa_MultiTexCoord3fvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 208:
|
|
mesa_MultiTexCoord3ivARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 209:
|
|
mesa_MultiTexCoord3svARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 210:
|
|
mesa_MultiTexCoord4dvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 211:
|
|
mesa_MultiTexCoord4fvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 212:
|
|
mesa_MultiTexCoord4ivARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 213:
|
|
mesa_MultiTexCoord4svARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 214:
|
|
mesa_CompressedTexImage1DARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 215:
|
|
mesa_CompressedTexImage2DARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 216:
|
|
mesa_CompressedTexImage3DARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 217:
|
|
mesa_CompressedTexSubImage1DARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 218:
|
|
mesa_CompressedTexSubImage2DARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 219:
|
|
mesa_CompressedTexSubImage3DARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 229:
|
|
mesa_SampleCoverageARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 230:
|
|
mesa_WindowPos3fvMESA(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 231:
|
|
mesa_BeginQueryARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 232:
|
|
mesa_EndQueryARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 233:
|
|
mesa_DrawBuffersARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2048:
|
|
mesa_SampleMaskSGIS(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2049:
|
|
mesa_SamplePatternSGIS(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2050:
|
|
mesa_TagSampleBufferSGIX(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2051:
|
|
mesa_DetailTexFuncSGIS(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2052:
|
|
mesa_SharpenTexFuncSGIS(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2053:
|
|
mesa_ColorTable(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2054:
|
|
mesa_ColorTableParameterfv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2055:
|
|
mesa_ColorTableParameteriv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2056:
|
|
mesa_CopyColorTable(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2057:
|
|
mesa_TexImage4DSGIS(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2058:
|
|
mesa_TexSubImage4DSGIS(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2059:
|
|
mesa_PixelTexGenSGIX(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2064:
|
|
mesa_TexFilterFuncSGIS(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2065:
|
|
mesa_PointParameterfEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2066:
|
|
mesa_PointParameterfvEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2067:
|
|
mesa_FogFuncSGIS(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2071:
|
|
mesa_ReferencePlaneSGIX(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2072:
|
|
mesa_FrameZoomSGIX(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 2082:
|
|
mesa_TextureColorMaskSGIS(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4096:
|
|
mesa_BlendColor(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4097:
|
|
mesa_BlendEquation(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4098:
|
|
mesa_PolygonOffsetEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4099:
|
|
mesa_TexSubImage1D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4100:
|
|
mesa_TexSubImage2D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4101:
|
|
mesa_ConvolutionFilter1D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4102:
|
|
mesa_ConvolutionFilter2D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4103:
|
|
mesa_ConvolutionParameterf(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4104:
|
|
mesa_ConvolutionParameterfv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4105:
|
|
mesa_ConvolutionParameteri(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4106:
|
|
mesa_ConvolutionParameteriv(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4107:
|
|
mesa_CopyConvolutionFilter1D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4108:
|
|
mesa_CopyConvolutionFilter2D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4109:
|
|
mesa_SeparableFilter2D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4110:
|
|
mesa_Histogram(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4111:
|
|
mesa_Minmax(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4112:
|
|
mesa_ResetHistogram(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4113:
|
|
mesa_ResetMinmax(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4114:
|
|
mesa_TexImage3D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4115:
|
|
mesa_TexSubImage3D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4117:
|
|
mesa_BindTexture(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4118:
|
|
mesa_PrioritizeTextures(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4119:
|
|
mesa_CopyTexImage1D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4120:
|
|
mesa_CopyTexImage2D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4121:
|
|
mesa_CopyTexSubImage1D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4122:
|
|
mesa_CopyTexSubImage2D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4123:
|
|
mesa_CopyTexSubImage3D(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4124:
|
|
mesa_FogCoordfvEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4125:
|
|
mesa_FogCoorddvEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4126:
|
|
mesa_SecondaryColor3bvEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4127:
|
|
mesa_SecondaryColor3svEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4128:
|
|
mesa_SecondaryColor3ivEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4129:
|
|
mesa_SecondaryColor3fvEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4130:
|
|
mesa_SecondaryColor3dvEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4131:
|
|
mesa_SecondaryColor3ubvEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4132:
|
|
mesa_SecondaryColor3usvEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4133:
|
|
mesa_SecondaryColor3uivEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4134:
|
|
mesa_BlendFuncSeparateEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4135:
|
|
mesa_VertexWeightfvEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4136:
|
|
mesa_CombinerParameterfNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4137:
|
|
mesa_CombinerParameterfvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4138:
|
|
mesa_CombinerParameteriNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4139:
|
|
mesa_CombinerParameterivNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4140:
|
|
mesa_CombinerInputNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4141:
|
|
mesa_CombinerOutputNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4142:
|
|
mesa_FinalCombinerInputNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4180:
|
|
mesa_BindProgramNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4181:
|
|
mesa_ExecuteProgramNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4182:
|
|
mesa_RequestResidentProgramsNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4183:
|
|
mesa_LoadProgramNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4184:
|
|
mesa_ProgramEnvParameter4fvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4185:
|
|
mesa_ProgramEnvParameter4dvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4186:
|
|
mesa_ProgramParameters4fvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4187:
|
|
mesa_ProgramParameters4dvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4188:
|
|
mesa_TrackMatrixNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4189:
|
|
mesa_VertexAttrib1svARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4190:
|
|
mesa_VertexAttrib2svARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4191:
|
|
mesa_VertexAttrib3svARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4192:
|
|
mesa_VertexAttrib4svARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4193:
|
|
mesa_VertexAttrib1fvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4194:
|
|
mesa_VertexAttrib2fvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4195:
|
|
mesa_VertexAttrib3fvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4196:
|
|
mesa_VertexAttrib4fvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4197:
|
|
mesa_VertexAttrib1dvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4198:
|
|
mesa_VertexAttrib2dvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4199:
|
|
mesa_VertexAttrib3dvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4200:
|
|
mesa_VertexAttrib4dvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4201:
|
|
mesa_VertexAttrib4NubvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4202:
|
|
mesa_VertexAttribs1svNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4203:
|
|
mesa_VertexAttribs2svNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4204:
|
|
mesa_VertexAttribs3svNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4205:
|
|
mesa_VertexAttribs4svNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4206:
|
|
mesa_VertexAttribs1fvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4207:
|
|
mesa_VertexAttribs2fvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4208:
|
|
mesa_VertexAttribs3fvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4209:
|
|
mesa_VertexAttribs4fvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4210:
|
|
mesa_VertexAttribs1dvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4211:
|
|
mesa_VertexAttribs2dvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4212:
|
|
mesa_VertexAttribs3dvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4213:
|
|
mesa_VertexAttribs4dvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4214:
|
|
mesa_VertexAttribs4ubvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4215:
|
|
mesa_ProgramLocalParameter4fvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4216:
|
|
mesa_ProgramLocalParameter4dvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4217:
|
|
mesa_ProgramStringARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4218:
|
|
mesa_ProgramNamedParameter4fvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4219:
|
|
mesa_ProgramNamedParameter4dvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4220:
|
|
mesa_ActiveStencilFaceEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4221:
|
|
mesa_PointParameteriNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4222:
|
|
mesa_PointParameterivNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4228:
|
|
mesa_BlendEquationSeparateEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4229:
|
|
mesa_DepthBoundsEXT(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4230:
|
|
mesa_VertexAttrib4bvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4231:
|
|
mesa_VertexAttrib4ivARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4232:
|
|
mesa_VertexAttrib4ubvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4233:
|
|
mesa_VertexAttrib4usvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4234:
|
|
mesa_VertexAttrib4uivARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4235:
|
|
mesa_VertexAttrib4NbvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4236:
|
|
mesa_VertexAttrib4NsvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4237:
|
|
mesa_VertexAttrib4NivARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4238:
|
|
mesa_VertexAttrib4NusvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4239:
|
|
mesa_VertexAttrib4NuivARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4265:
|
|
mesa_VertexAttrib1svNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4266:
|
|
mesa_VertexAttrib2svNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4267:
|
|
mesa_VertexAttrib3svNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4268:
|
|
mesa_VertexAttrib4svNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4269:
|
|
mesa_VertexAttrib1fvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4270:
|
|
mesa_VertexAttrib2fvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4271:
|
|
mesa_VertexAttrib3fvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4272:
|
|
mesa_VertexAttrib4fvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4273:
|
|
mesa_VertexAttrib1dvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4274:
|
|
mesa_VertexAttrib2dvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4275:
|
|
mesa_VertexAttrib3dvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4276:
|
|
mesa_VertexAttrib4dvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4277:
|
|
mesa_VertexAttrib4ubvNV(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4326:
|
|
mesa_MatrixIndexubvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4327:
|
|
mesa_MatrixIndexusvARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4328:
|
|
mesa_MatrixIndexuivARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
case 4329:
|
|
mesa_CurrentPaletteMatrixARB(tvb, offsetp, tt, little_endian, len);
|
|
break;
|
|
default:
|
|
proto_tree_add_item(tt, hf_x11_undecoded, tvb, *offsetp, len, little_endian);
|
|
*offsetp += len;
|
|
}
|
|
if (*offsetp < next) {
|
|
proto_tree_add_item(tt, hf_x11_unused, tvb, *offsetp, next - *offsetp, little_endian);
|
|
*offsetp = next;
|
|
}
|
|
length -= (len + 4);
|
|
}
|
|
}
|
|
#include "x11-enum.h"
|
|
|
|
|
|
static void bigreqEnable(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void bigreqEnable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_maximum_request_length;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-Enable");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (bigreq-Enable)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_maximum_request_length = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_bigreq_Enable_reply_maximum_request_length, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static const value_string bigreq_extension_minor[] = {
|
|
{ 0, "Enable" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info bigreq_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info bigreq_replies[] = {
|
|
{ 0, bigreqEnable_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_bigreq(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(bigreq_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, bigreq_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
bigreqEnable(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_bigreq(void)
|
|
{
|
|
set_handler("BIG-REQUESTS", dispatch_bigreq, bigreq_errors, bigreq_events, bigreq_replies);
|
|
}
|
|
|
|
static void struct_POINT(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_x;
|
|
int f_y;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_POINT, tvb, *offsetp, 4, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_POINT_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_POINT_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static void struct_RECTANGLE(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_x;
|
|
int f_y;
|
|
int f_width;
|
|
int f_height;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_RECTANGLE, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_RECTANGLE_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_RECTANGLE_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_RECTANGLE_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_RECTANGLE_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static int struct_size_STR(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_name_len;
|
|
f_name_len = VALUE8(tvb, *offsetp + size + 0);
|
|
size += f_name_len * 1;
|
|
return size + 1;
|
|
}
|
|
|
|
static void struct_STR(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_name_len;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_STR, tvb, *offsetp, struct_size_STR(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_name_len = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_STR_name_len, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_STR_name, f_name_len, little_endian);
|
|
}
|
|
}
|
|
|
|
static void struct_DIRECTFORMAT(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_red_shift;
|
|
int f_red_mask;
|
|
int f_green_shift;
|
|
int f_green_mask;
|
|
int f_blue_shift;
|
|
int f_blue_mask;
|
|
int f_alpha_shift;
|
|
int f_alpha_mask;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_DIRECTFORMAT, tvb, *offsetp, 16, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_red_shift = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DIRECTFORMAT_red_shift, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_red_mask = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DIRECTFORMAT_red_mask, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_green_shift = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DIRECTFORMAT_green_shift, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_green_mask = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DIRECTFORMAT_green_mask, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_blue_shift = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DIRECTFORMAT_blue_shift, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_blue_mask = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DIRECTFORMAT_blue_mask, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_alpha_shift = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DIRECTFORMAT_alpha_shift, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_alpha_mask = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DIRECTFORMAT_alpha_mask, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static void struct_PICTFORMINFO(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_id;
|
|
int f_type;
|
|
int f_depth;
|
|
int f_colormap;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_PICTFORMINFO, tvb, *offsetp, 28, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_PICTFORMINFO_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_PICTFORMINFO_type, little_endian);
|
|
f_depth = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_PICTFORMINFO_depth, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
struct_DIRECTFORMAT(tvb, offsetp, t, little_endian, 1);
|
|
f_colormap = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_PICTFORMINFO_colormap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static void struct_PICTVISUAL(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_visual;
|
|
int f_format;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_PICTVISUAL, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_visual = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_PICTVISUAL_visual, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_PICTVISUAL_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static int struct_size_PICTDEPTH(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_num_visuals;
|
|
f_num_visuals = VALUE16(tvb, *offsetp + size + 2);
|
|
size += f_num_visuals * 8;
|
|
return size + 8;
|
|
}
|
|
|
|
static void struct_PICTDEPTH(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_depth;
|
|
int f_num_visuals;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_PICTDEPTH, tvb, *offsetp, struct_size_PICTDEPTH(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_depth = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_PICTDEPTH_depth, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_num_visuals = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_PICTDEPTH_num_visuals, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(4);
|
|
struct_PICTVISUAL(tvb, offsetp, t, little_endian, f_num_visuals);
|
|
}
|
|
}
|
|
|
|
static int struct_size_PICTSCREEN(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int i, off;
|
|
int f_num_depths;
|
|
f_num_depths = VALUE32(tvb, *offsetp + size + 0);
|
|
for (i = 0; i < f_num_depths; i++) {
|
|
off = (*offsetp) + size + 8;
|
|
size += struct_size_PICTDEPTH(tvb, &off, little_endian);
|
|
}
|
|
return size + 8;
|
|
}
|
|
|
|
static void struct_PICTSCREEN(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_num_depths;
|
|
int f_fallback;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_PICTSCREEN, tvb, *offsetp, struct_size_PICTSCREEN(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_num_depths = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_PICTSCREEN_num_depths, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_fallback = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_PICTSCREEN_fallback, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_PICTDEPTH(tvb, offsetp, t, little_endian, f_num_depths);
|
|
}
|
|
}
|
|
|
|
static void struct_INDEXVALUE(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_pixel;
|
|
int f_red;
|
|
int f_green;
|
|
int f_blue;
|
|
int f_alpha;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_INDEXVALUE, tvb, *offsetp, 12, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_pixel = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_INDEXVALUE_pixel, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_red = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_INDEXVALUE_red, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_green = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_INDEXVALUE_green, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_blue = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_INDEXVALUE_blue, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_alpha = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_INDEXVALUE_alpha, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static void struct_COLOR(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_red;
|
|
int f_green;
|
|
int f_blue;
|
|
int f_alpha;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_COLOR, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_red = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_COLOR_red, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_green = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_COLOR_green, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_blue = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_COLOR_blue, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_alpha = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_COLOR_alpha, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static void struct_POINTFIX(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_x;
|
|
int f_y;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_POINTFIX, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_x = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_POINTFIX_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_y = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_POINTFIX_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static void struct_LINEFIX(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_LINEFIX, tvb, *offsetp, 16, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
struct_POINTFIX(tvb, offsetp, t, little_endian, 1);
|
|
struct_POINTFIX(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
}
|
|
|
|
static void struct_TRIANGLE(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_TRIANGLE, tvb, *offsetp, 24, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
struct_POINTFIX(tvb, offsetp, t, little_endian, 1);
|
|
struct_POINTFIX(tvb, offsetp, t, little_endian, 1);
|
|
struct_POINTFIX(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
}
|
|
|
|
static void struct_TRAPEZOID(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_top;
|
|
int f_bottom;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_TRAPEZOID, tvb, *offsetp, 40, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_top = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRAPEZOID_top, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_bottom = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRAPEZOID_bottom, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_LINEFIX(tvb, offsetp, t, little_endian, 1);
|
|
struct_LINEFIX(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
}
|
|
|
|
static void struct_GLYPHINFO(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_width;
|
|
int f_height;
|
|
int f_x;
|
|
int f_y;
|
|
int f_x_off;
|
|
int f_y_off;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_GLYPHINFO, tvb, *offsetp, 12, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_GLYPHINFO_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_GLYPHINFO_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_GLYPHINFO_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_GLYPHINFO_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_x_off = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_GLYPHINFO_x_off, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y_off = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_GLYPHINFO_y_off, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static void struct_TRANSFORM(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_matrix11;
|
|
int f_matrix12;
|
|
int f_matrix13;
|
|
int f_matrix21;
|
|
int f_matrix22;
|
|
int f_matrix23;
|
|
int f_matrix31;
|
|
int f_matrix32;
|
|
int f_matrix33;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_TRANSFORM, tvb, *offsetp, 36, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_matrix11 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRANSFORM_matrix11, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_matrix12 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRANSFORM_matrix12, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_matrix13 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRANSFORM_matrix13, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_matrix21 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRANSFORM_matrix21, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_matrix22 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRANSFORM_matrix22, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_matrix23 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRANSFORM_matrix23, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_matrix31 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRANSFORM_matrix31, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_matrix32 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRANSFORM_matrix32, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_matrix33 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRANSFORM_matrix33, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static void struct_ANIMCURSORELT(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_cursor;
|
|
int f_delay;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_ANIMCURSORELT, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_cursor = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ANIMCURSORELT_cursor, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_delay = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ANIMCURSORELT_delay, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static void struct_SPANFIX(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_l;
|
|
int f_r;
|
|
int f_y;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SPANFIX, tvb, *offsetp, 12, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_l = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SPANFIX_l, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_r = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SPANFIX_r, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_y = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SPANFIX_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static void struct_TRAP(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_TRAP, tvb, *offsetp, 24, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
struct_SPANFIX(tvb, offsetp, t, little_endian, 1);
|
|
struct_SPANFIX(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
}
|
|
|
|
static void compositeQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_client_major_version;
|
|
int f_client_minor_version;
|
|
f_client_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_QueryVersion_client_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_client_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_QueryVersion_client_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void compositeQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (composite-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_QueryVersion_reply_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_QueryVersion_reply_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
}
|
|
|
|
static void compositeRedirectWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_update;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_RedirectWindow_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_update = field8(tvb, offsetp, t, hf_x11_composite_RedirectWindow_update, little_endian);
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void compositeRedirectSubwindows(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_update;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_RedirectSubwindows_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_update = field8(tvb, offsetp, t, hf_x11_composite_RedirectSubwindows_update, little_endian);
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void compositeUnredirectWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_update;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_UnredirectWindow_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_update = field8(tvb, offsetp, t, hf_x11_composite_UnredirectWindow_update, little_endian);
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void compositeUnredirectSubwindows(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_update;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_UnredirectSubwindows_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_update = field8(tvb, offsetp, t, hf_x11_composite_UnredirectSubwindows_update, little_endian);
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void compositeCreateRegionFromBorderClip(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_region;
|
|
int f_window;
|
|
f_region = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_CreateRegionFromBorderClip_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_CreateRegionFromBorderClip_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void compositeNameWindowPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_pixmap;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_NameWindowPixmap_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pixmap = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_NameWindowPixmap_pixmap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void compositeGetOverlayWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_GetOverlayWindow_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void compositeGetOverlayWindow_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_overlay_win;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOverlayWindow");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (composite-GetOverlayWindow)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_overlay_win = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_GetOverlayWindow_reply_overlay_win, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
}
|
|
|
|
static void compositeReleaseOverlayWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_ReleaseOverlayWindow_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static const value_string composite_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "RedirectWindow" },
|
|
{ 2, "RedirectSubwindows" },
|
|
{ 3, "UnredirectWindow" },
|
|
{ 4, "UnredirectSubwindows" },
|
|
{ 5, "CreateRegionFromBorderClip" },
|
|
{ 6, "NameWindowPixmap" },
|
|
{ 7, "GetOverlayWindow" },
|
|
{ 8, "ReleaseOverlayWindow" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info composite_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info composite_replies[] = {
|
|
{ 0, compositeQueryVersion_Reply },
|
|
{ 7, compositeGetOverlayWindow_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_composite(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(composite_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, composite_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
compositeQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
compositeRedirectWindow(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
compositeRedirectSubwindows(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
compositeUnredirectWindow(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
compositeUnredirectSubwindows(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
compositeCreateRegionFromBorderClip(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
compositeNameWindowPixmap(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
compositeGetOverlayWindow(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
compositeReleaseOverlayWindow(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_composite(void)
|
|
{
|
|
set_handler("Composite", dispatch_composite, composite_errors, composite_events, composite_replies);
|
|
}
|
|
|
|
static void damageQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_client_major_version;
|
|
int f_client_minor_version;
|
|
f_client_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_QueryVersion_client_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_client_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_QueryVersion_client_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void damageQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (damage-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_QueryVersion_reply_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_QueryVersion_reply_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
}
|
|
|
|
static void damageCreate(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_damage;
|
|
int f_drawable;
|
|
int f_level;
|
|
f_damage = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_Create_damage, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_Create_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_level = field8(tvb, offsetp, t, hf_x11_damage_Create_level, little_endian);
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void damageDestroy(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_damage;
|
|
f_damage = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_Destroy_damage, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void damageSubtract(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_damage;
|
|
int f_repair;
|
|
int f_parts;
|
|
f_damage = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_Subtract_damage, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_repair = field32(tvb, offsetp, t, hf_x11_damage_Subtract_repair, little_endian);
|
|
f_parts = field32(tvb, offsetp, t, hf_x11_damage_Subtract_parts, little_endian);
|
|
}
|
|
|
|
static void damageAdd(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
int f_region;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_Add_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_region = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_Add_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void damageNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_level;
|
|
int f_drawable;
|
|
int f_damage;
|
|
int f_timestamp;
|
|
f_level = field8(tvb, offsetp, t, hf_x11_damage_Notify_level, little_endian);
|
|
CARD16(event_sequencenumber);
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_Notify_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_damage = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_Notify_damage, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_Notify_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_RECTANGLE(tvb, offsetp, t, little_endian, 1);
|
|
struct_RECTANGLE(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
static const value_string damage_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "Create" },
|
|
{ 2, "Destroy" },
|
|
{ 3, "Subtract" },
|
|
{ 4, "Add" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info damage_events[] = {
|
|
{ "damage-Notify", damageNotify },
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info damage_replies[] = {
|
|
{ 0, damageQueryVersion_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_damage(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(damage_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, damage_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
damageQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
damageCreate(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
damageDestroy(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
damageSubtract(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
damageAdd(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_damage(void)
|
|
{
|
|
set_handler("DAMAGE", dispatch_damage, damage_errors, damage_events, damage_replies);
|
|
}
|
|
|
|
static void dpmsGetVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_client_major_version;
|
|
int f_client_minor_version;
|
|
f_client_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_GetVersion_client_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_client_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_GetVersion_client_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
static void dpmsGetVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_server_major_version;
|
|
int f_server_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (dpms-GetVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_server_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_GetVersion_reply_server_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_server_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_GetVersion_reply_server_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void dpmsCapable(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void dpmsCapable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_capable;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-Capable");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (dpms-Capable)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_capable = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_Capable_reply_capable, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(23);
|
|
}
|
|
|
|
static void dpmsGetTimeouts(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void dpmsGetTimeouts_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_standby_timeout;
|
|
int f_suspend_timeout;
|
|
int f_off_timeout;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTimeouts");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (dpms-GetTimeouts)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_standby_timeout = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_GetTimeouts_reply_standby_timeout, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_suspend_timeout = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_GetTimeouts_reply_suspend_timeout, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_off_timeout = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_GetTimeouts_reply_off_timeout, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(18);
|
|
}
|
|
|
|
static void dpmsSetTimeouts(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_standby_timeout;
|
|
int f_suspend_timeout;
|
|
int f_off_timeout;
|
|
f_standby_timeout = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_SetTimeouts_standby_timeout, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_suspend_timeout = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_SetTimeouts_suspend_timeout, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_off_timeout = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_SetTimeouts_off_timeout, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void dpmsEnable(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
|
|
static void dpmsDisable(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
|
|
static void dpmsForceLevel(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_power_level;
|
|
f_power_level = field16(tvb, offsetp, t, hf_x11_dpms_ForceLevel_power_level, little_endian);
|
|
}
|
|
|
|
static void dpmsInfo(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void dpmsInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_power_level;
|
|
int f_state;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-Info");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (dpms-Info)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_power_level = field16(tvb, offsetp, t, hf_x11_dpms_Info_reply_power_level, little_endian);
|
|
f_state = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_Info_reply_state, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(21);
|
|
}
|
|
static const value_string dpms_extension_minor[] = {
|
|
{ 0, "GetVersion" },
|
|
{ 1, "Capable" },
|
|
{ 2, "GetTimeouts" },
|
|
{ 3, "SetTimeouts" },
|
|
{ 4, "Enable" },
|
|
{ 5, "Disable" },
|
|
{ 6, "ForceLevel" },
|
|
{ 7, "Info" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info dpms_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info dpms_replies[] = {
|
|
{ 0, dpmsGetVersion_Reply },
|
|
{ 1, dpmsCapable_Reply },
|
|
{ 2, dpmsGetTimeouts_Reply },
|
|
{ 7, dpmsInfo_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_dpms(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(dpms_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, dpms_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
dpmsGetVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
dpmsCapable(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
dpmsGetTimeouts(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
dpmsSetTimeouts(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
dpmsEnable(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
dpmsDisable(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
dpmsForceLevel(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
dpmsInfo(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_dpms(void)
|
|
{
|
|
set_handler("DPMS", dispatch_dpms, dpms_errors, dpms_events, dpms_replies);
|
|
}
|
|
|
|
static void struct_DRI2Buffer(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_attachment;
|
|
int f_name;
|
|
int f_pitch;
|
|
int f_cpp;
|
|
int f_flags;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_DRI2Buffer, tvb, *offsetp, 20, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_attachment = field32(tvb, offsetp, t, hf_x11_struct_DRI2Buffer_attachment, little_endian);
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DRI2Buffer_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pitch = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DRI2Buffer_pitch, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_cpp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DRI2Buffer_cpp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_flags = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DRI2Buffer_flags, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static void struct_AttachFormat(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_attachment;
|
|
int f_format;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_AttachFormat, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_attachment = field32(tvb, offsetp, t, hf_x11_struct_AttachFormat_attachment, little_endian);
|
|
f_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_AttachFormat_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static void dri2QueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
f_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_QueryVersion_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_QueryVersion_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void dri2QueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (dri2-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_QueryVersion_reply_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_QueryVersion_reply_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void dri2Connect(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_driver_type;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_Connect_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_driver_type = field32(tvb, offsetp, t, hf_x11_dri2_Connect_driver_type, little_endian);
|
|
}
|
|
static void dri2Connect_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_driver_name_length;
|
|
int f_device_name_length;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-Connect");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (dri2-Connect)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_driver_name_length = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_Connect_reply_driver_name_length, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_device_name_length = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_Connect_reply_device_name_length, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
listOfByte(tvb, offsetp, t, hf_x11_dri2_Connect_reply_driver_name, f_driver_name_length, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_dri2_Connect_reply_device_name, f_device_name_length, little_endian);
|
|
}
|
|
|
|
static void dri2Authenticate(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_magic;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_Authenticate_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_magic = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_Authenticate_magic, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void dri2Authenticate_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_authenticated;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-Authenticate");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (dri2-Authenticate)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_authenticated = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_Authenticate_reply_authenticated, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void dri2CreateDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_CreateDrawable_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void dri2DestroyDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_DestroyDrawable_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void dri2GetBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
int f_count;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_GetBuffers_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_count = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_GetBuffers_count, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_dri2_GetBuffers_attachments, hf_x11_dri2_GetBuffers_attachments_item, (length - 12) / 4, little_endian);
|
|
}
|
|
static void dri2GetBuffers_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_width;
|
|
int f_height;
|
|
int f_count;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetBuffers");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (dri2-GetBuffers)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_GetBuffers_reply_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_height = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_GetBuffers_reply_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_count = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_GetBuffers_reply_count, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
struct_DRI2Buffer(tvb, offsetp, t, little_endian, f_count);
|
|
}
|
|
|
|
static void dri2CopyRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
int f_region;
|
|
int f_dest;
|
|
int f_src;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_CopyRegion_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_region = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_CopyRegion_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dest = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_CopyRegion_dest, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_src = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_CopyRegion_src, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void dri2CopyRegion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-CopyRegion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (dri2-CopyRegion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void dri2GetBuffersWithFormat(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
int f_count;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_count = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_count, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_AttachFormat(tvb, offsetp, t, little_endian, (length - 12) / 8);
|
|
}
|
|
static void dri2GetBuffersWithFormat_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_width;
|
|
int f_height;
|
|
int f_count;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetBuffersWithFormat");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (dri2-GetBuffersWithFormat)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_reply_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_height = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_reply_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_count = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dri2_GetBuffersWithFormat_reply_count, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
struct_DRI2Buffer(tvb, offsetp, t, little_endian, f_count);
|
|
}
|
|
static const value_string dri2_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "Connect" },
|
|
{ 2, "Authenticate" },
|
|
{ 3, "CreateDrawable" },
|
|
{ 4, "DestroyDrawable" },
|
|
{ 5, "GetBuffers" },
|
|
{ 6, "CopyRegion" },
|
|
{ 7, "GetBuffersWithFormat" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info dri2_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info dri2_replies[] = {
|
|
{ 0, dri2QueryVersion_Reply },
|
|
{ 1, dri2Connect_Reply },
|
|
{ 2, dri2Authenticate_Reply },
|
|
{ 5, dri2GetBuffers_Reply },
|
|
{ 6, dri2CopyRegion_Reply },
|
|
{ 7, dri2GetBuffersWithFormat_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_dri2(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(dri2_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, dri2_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
dri2QueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
dri2Connect(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
dri2Authenticate(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
dri2CreateDrawable(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
dri2DestroyDrawable(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
dri2GetBuffers(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
dri2CopyRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
dri2GetBuffersWithFormat(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_dri2(void)
|
|
{
|
|
set_handler("DRI2", dispatch_dri2, dri2_errors, dri2_events, dri2_replies);
|
|
}
|
|
|
|
static void geQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_client_major_version;
|
|
int f_client_minor_version;
|
|
f_client_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_ge_QueryVersion_client_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_client_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_ge_QueryVersion_client_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
static void geQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (ge-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_ge_QueryVersion_reply_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_ge_QueryVersion_reply_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(20);
|
|
}
|
|
static const value_string ge_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info ge_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info ge_replies[] = {
|
|
{ 0, geQueryVersion_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_ge(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(ge_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, ge_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
geQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_ge(void)
|
|
{
|
|
set_handler("Generic Event Extension", dispatch_ge, ge_errors, ge_events, ge_replies);
|
|
}
|
|
|
|
static void glxPbufferClobber(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_event_type;
|
|
int f_draw_type;
|
|
int f_drawable;
|
|
int f_b_mask;
|
|
int f_aux_buffer;
|
|
int f_x;
|
|
int f_y;
|
|
int f_width;
|
|
int f_height;
|
|
int f_count;
|
|
UNUSED(1);
|
|
CARD16(event_sequencenumber);
|
|
f_event_type = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PbufferClobber_event_type, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_draw_type = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PbufferClobber_draw_type, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PbufferClobber_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_b_mask = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PbufferClobber_b_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_aux_buffer = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PbufferClobber_aux_buffer, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PbufferClobber_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PbufferClobber_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PbufferClobber_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PbufferClobber_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_count = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PbufferClobber_count, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(4);
|
|
}
|
|
|
|
static void glxRender(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_Render_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
dispatch_glx_render(tvb, pinfo, offsetp, t, little_endian, (length - 8));
|
|
}
|
|
|
|
static void glxRenderLarge(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_request_num;
|
|
int f_request_total;
|
|
int f_data_len;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_RenderLarge_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_request_num = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_RenderLarge_request_num, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_request_total = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_RenderLarge_request_total, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_data_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_RenderLarge_data_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_RenderLarge_data, f_data_len, little_endian);
|
|
length -= f_data_len * 1;
|
|
}
|
|
|
|
static void glxCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
int f_visual;
|
|
int f_screen;
|
|
int f_share_list;
|
|
int f_is_direct;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateContext_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_visual = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateContext_visual, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateContext_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_share_list = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateContext_share_list, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_is_direct = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateContext_is_direct, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void glxDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_DestroyContext_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxMakeCurrent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
int f_context;
|
|
int f_old_context_tag;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_MakeCurrent_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_MakeCurrent_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_old_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_MakeCurrent_old_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxMakeCurrent_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_tag;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-MakeCurrent");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-MakeCurrent)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_MakeCurrent_reply_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
}
|
|
|
|
static void glxIsDirect(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_IsDirect_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxIsDirect_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_is_direct;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-IsDirect");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-IsDirect)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_is_direct = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_IsDirect_reply_is_direct, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(23);
|
|
}
|
|
|
|
static void glxQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
f_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_QueryVersion_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_QueryVersion_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_QueryVersion_reply_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_QueryVersion_reply_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
}
|
|
|
|
static void glxWaitGL(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_WaitGL_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxWaitX(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_WaitX_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxCopyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_src;
|
|
int f_dest;
|
|
int f_mask;
|
|
int f_src_context_tag;
|
|
f_src = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CopyContext_src, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dest = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CopyContext_dest, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mask = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CopyContext_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_src_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CopyContext_src_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxSwapBuffers(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_drawable;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_SwapBuffers_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_SwapBuffers_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxUseXFont(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_font;
|
|
int f_first;
|
|
int f_count;
|
|
int f_list_base;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_UseXFont_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_font = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_UseXFont_font, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_first = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_UseXFont_first, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_count = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_UseXFont_count, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_list_base = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_UseXFont_list_base, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxCreateGLXPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_visual;
|
|
int f_pixmap;
|
|
int f_glx_pixmap;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_visual = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_visual, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pixmap = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_pixmap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_glx_pixmap = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateGLXPixmap_glx_pixmap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxGetVisualConfigs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetVisualConfigs_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetVisualConfigs_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_visuals;
|
|
int f_num_properties;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVisualConfigs");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetVisualConfigs)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_visuals = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetVisualConfigs_reply_num_visuals, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_properties = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetVisualConfigs_reply_num_properties, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_GetVisualConfigs_reply_property_list, hf_x11_glx_GetVisualConfigs_reply_property_list_item, f_length, little_endian);
|
|
}
|
|
|
|
static void glxDestroyGLXPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_glx_pixmap;
|
|
f_glx_pixmap = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_DestroyGLXPixmap_glx_pixmap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxVendorPrivate(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_vendor_code;
|
|
int f_context_tag;
|
|
f_vendor_code = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_VendorPrivate_vendor_code, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_VendorPrivate_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivate_data, (length - 12) / 1, little_endian);
|
|
}
|
|
|
|
static void glxVendorPrivateWithReply(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_vendor_code;
|
|
int f_context_tag;
|
|
f_vendor_code = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_VendorPrivateWithReply_vendor_code, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_VendorPrivateWithReply_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivateWithReply_data, (length - 12) / 1, little_endian);
|
|
}
|
|
static void glxVendorPrivateWithReply_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_retval;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-VendorPrivateWithReply");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-VendorPrivateWithReply)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_retval = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_VendorPrivateWithReply_reply_retval, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivateWithReply_reply_data1, 24, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_VendorPrivateWithReply_reply_data2, (f_length * 4), little_endian);
|
|
}
|
|
|
|
static void glxQueryExtensionsString(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_QueryExtensionsString_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxQueryExtensionsString_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryExtensionsString");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-QueryExtensionsString)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_QueryExtensionsString_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
}
|
|
|
|
static void glxQueryServerString(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_name;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_QueryServerString_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_QueryServerString_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxQueryServerString_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_str_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryServerString");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-QueryServerString)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_str_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_QueryServerString_reply_str_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_QueryServerString_reply_string, f_str_len, little_endian);
|
|
}
|
|
|
|
static void glxClientInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
int f_str_len;
|
|
f_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ClientInfo_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ClientInfo_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_str_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ClientInfo_str_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_ClientInfo_string, f_str_len, little_endian);
|
|
length -= f_str_len * 1;
|
|
}
|
|
|
|
static void glxGetFBConfigs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetFBConfigs_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetFBConfigs_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_FB_configs;
|
|
int f_num_properties;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetFBConfigs");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetFBConfigs)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_FB_configs = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetFBConfigs_reply_num_FB_configs, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_properties = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetFBConfigs_reply_num_properties, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_GetFBConfigs_reply_property_list, hf_x11_glx_GetFBConfigs_reply_property_list_item, f_length, little_endian);
|
|
}
|
|
|
|
static void glxCreatePixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_fbconfig;
|
|
int f_pixmap;
|
|
int f_glx_pixmap;
|
|
int f_num_attribs;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreatePixmap_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_fbconfig = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreatePixmap_fbconfig, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pixmap = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreatePixmap_pixmap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_glx_pixmap = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreatePixmap_glx_pixmap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_attribs = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreatePixmap_num_attribs, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_CreatePixmap_attribs, hf_x11_glx_CreatePixmap_attribs_item, (f_num_attribs * 2), little_endian);
|
|
length -= (f_num_attribs * 2) * 4;
|
|
}
|
|
|
|
static void glxDestroyPixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_glx_pixmap;
|
|
f_glx_pixmap = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_DestroyPixmap_glx_pixmap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxCreateNewContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
int f_fbconfig;
|
|
int f_screen;
|
|
int f_render_type;
|
|
int f_share_list;
|
|
int f_is_direct;
|
|
int f_reserved1;
|
|
int f_reserved2;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateNewContext_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_fbconfig = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateNewContext_fbconfig, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateNewContext_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_render_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateNewContext_render_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_share_list = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateNewContext_share_list, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_is_direct = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateNewContext_is_direct, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_reserved1 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateNewContext_reserved1, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_reserved2 = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateNewContext_reserved2, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void glxQueryContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_QueryContext_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxQueryContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_attribs;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-QueryContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_attribs = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_QueryContext_reply_num_attribs, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_QueryContext_reply_attribs, hf_x11_glx_QueryContext_reply_attribs_item, (f_num_attribs * 2), little_endian);
|
|
}
|
|
|
|
static void glxMakeContextCurrent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_old_context_tag;
|
|
int f_drawable;
|
|
int f_read_drawable;
|
|
int f_context;
|
|
f_old_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_old_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_read_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_read_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxMakeContextCurrent_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_tag;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-MakeContextCurrent");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-MakeContextCurrent)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_MakeContextCurrent_reply_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
}
|
|
|
|
static void glxCreatePbuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_fbconfig;
|
|
int f_pbuffer;
|
|
int f_num_attribs;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_fbconfig = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_fbconfig, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pbuffer = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_pbuffer, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_attribs = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreatePbuffer_num_attribs, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_CreatePbuffer_attribs, hf_x11_glx_CreatePbuffer_attribs_item, (f_num_attribs * 2), little_endian);
|
|
length -= (f_num_attribs * 2) * 4;
|
|
}
|
|
|
|
static void glxDestroyPbuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_pbuffer;
|
|
f_pbuffer = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_DestroyPbuffer_pbuffer, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxGetDrawableAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetDrawableAttributes_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetDrawableAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_attribs;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDrawableAttributes");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetDrawableAttributes)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_attribs = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetDrawableAttributes_reply_num_attribs, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_GetDrawableAttributes_reply_attribs, hf_x11_glx_GetDrawableAttributes_reply_attribs_item, (f_num_attribs * 2), little_endian);
|
|
}
|
|
|
|
static void glxChangeDrawableAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
int f_num_attribs;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ChangeDrawableAttributes_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_attribs = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ChangeDrawableAttributes_num_attribs, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_ChangeDrawableAttributes_attribs, hf_x11_glx_ChangeDrawableAttributes_attribs_item, (f_num_attribs * 2), little_endian);
|
|
length -= (f_num_attribs * 2) * 4;
|
|
}
|
|
|
|
static void glxCreateWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_fbconfig;
|
|
int f_window;
|
|
int f_glx_window;
|
|
int f_num_attribs;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateWindow_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_fbconfig = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateWindow_fbconfig, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateWindow_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_glx_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateWindow_glx_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_attribs = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_CreateWindow_num_attribs, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_CreateWindow_attribs, hf_x11_glx_CreateWindow_attribs_item, (f_num_attribs * 2), little_endian);
|
|
length -= (f_num_attribs * 2) * 4;
|
|
}
|
|
|
|
static void glxDeleteWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_glxwindow;
|
|
f_glxwindow = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_DeleteWindow_glxwindow, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxNewList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_list;
|
|
int f_mode;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_NewList_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_list = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_NewList_list, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mode = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_NewList_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxEndList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_EndList_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxDeleteLists(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_list;
|
|
int f_range;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_DeleteLists_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_list = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_DeleteLists_list, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_range = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_DeleteLists_range, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxGenLists(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_range;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GenLists_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_range = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GenLists_range, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGenLists_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_ret_val;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GenLists");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GenLists)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_ret_val = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GenLists_reply_ret_val, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxFeedbackBuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_size;
|
|
int f_type;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_FeedbackBuffer_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_size = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_FeedbackBuffer_size, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_FeedbackBuffer_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxSelectBuffer(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_size;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_SelectBuffer_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_size = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_SelectBuffer_size, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxRenderMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_mode;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_RenderMode_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mode = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_RenderMode_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxRenderMode_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_ret_val;
|
|
int f_n;
|
|
int f_new_mode;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-RenderMode");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-RenderMode)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_ret_val = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_RenderMode_reply_ret_val, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_RenderMode_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_new_mode = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_RenderMode_reply_new_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_RenderMode_reply_data, hf_x11_glx_RenderMode_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxFinish(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_Finish_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxFinish_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-Finish");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-Finish)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxPixelStoref(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_pname;
|
|
gfloat f_datum;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PixelStoref_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PixelStoref_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PixelStoref_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxPixelStorei(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_pname;
|
|
int f_datum;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PixelStorei_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PixelStorei_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_PixelStorei_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxReadPixels(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_x;
|
|
int f_y;
|
|
int f_width;
|
|
int f_height;
|
|
int f_format;
|
|
int f_type;
|
|
int f_swap_bytes;
|
|
int f_lsb_first;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ReadPixels_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ReadPixels_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_y = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ReadPixels_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ReadPixels_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_height = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ReadPixels_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ReadPixels_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ReadPixels_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_swap_bytes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ReadPixels_swap_bytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_lsb_first = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_ReadPixels_lsb_first, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void glxReadPixels_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-ReadPixels");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-ReadPixels)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(24);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_ReadPixels_reply_data, (f_length * 4), little_endian);
|
|
}
|
|
|
|
static void glxGetBooleanv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetBooleanv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetBooleanv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetBooleanv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetBooleanv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetBooleanv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetBooleanv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetBooleanv_reply_datum, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(15);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_GetBooleanv_reply_data, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetClipPlane(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_plane;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetClipPlane_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_plane = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetClipPlane_plane, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetClipPlane_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetClipPlane");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetClipPlane)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(24);
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_GetClipPlane_reply_data, hf_x11_glx_GetClipPlane_reply_data_item, (f_length / 2), little_endian);
|
|
}
|
|
|
|
static void glxGetDoublev(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetDoublev_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetDoublev_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetDoublev_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gdouble f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDoublev");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetDoublev)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetDoublev_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = DOUBLE(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetDoublev_reply_datum, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
UNUSED(8);
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_GetDoublev_reply_data, hf_x11_glx_GetDoublev_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetError(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetError_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetError_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_error;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetError");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetError)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_error = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetError_reply_error, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxGetFloatv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetFloatv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetFloatv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetFloatv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gfloat f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetFloatv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetFloatv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetFloatv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetFloatv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_GetFloatv_reply_data, hf_x11_glx_GetFloatv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetIntegerv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetIntegerv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetIntegerv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetIntegerv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetIntegerv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetIntegerv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetIntegerv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetIntegerv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetIntegerv_reply_data, hf_x11_glx_GetIntegerv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetLightfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_light;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetLightfv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_light = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetLightfv_light, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetLightfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetLightfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gfloat f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetLightfv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetLightfv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetLightfv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetLightfv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_GetLightfv_reply_data, hf_x11_glx_GetLightfv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetLightiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_light;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetLightiv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_light = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetLightiv_light, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetLightiv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetLightiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetLightiv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetLightiv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetLightiv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetLightiv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetLightiv_reply_data, hf_x11_glx_GetLightiv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetMapdv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_query;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapdv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapdv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_query = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapdv_query, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetMapdv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gdouble f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMapdv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetMapdv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapdv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = DOUBLE(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapdv_reply_datum, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
UNUSED(8);
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_GetMapdv_reply_data, hf_x11_glx_GetMapdv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetMapfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_query;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapfv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapfv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_query = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapfv_query, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetMapfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gfloat f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMapfv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetMapfv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapfv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapfv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_GetMapfv_reply_data, hf_x11_glx_GetMapfv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetMapiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_query;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapiv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapiv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_query = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapiv_query, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetMapiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMapiv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetMapiv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapiv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMapiv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetMapiv_reply_data, hf_x11_glx_GetMapiv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetMaterialfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_face;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_face = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_face, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetMaterialfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gfloat f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMaterialfv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetMaterialfv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMaterialfv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_GetMaterialfv_reply_data, hf_x11_glx_GetMaterialfv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetMaterialiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_face;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_face = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_face, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetMaterialiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMaterialiv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetMaterialiv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMaterialiv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetMaterialiv_reply_data, hf_x11_glx_GetMaterialiv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetPixelMapfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_map;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_map = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_map, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetPixelMapfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gfloat f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPixelMapfv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetPixelMapfv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPixelMapfv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_GetPixelMapfv_reply_data, hf_x11_glx_GetPixelMapfv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetPixelMapuiv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_map;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_map = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_map, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetPixelMapuiv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPixelMapuiv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetPixelMapuiv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPixelMapuiv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_GetPixelMapuiv_reply_data, hf_x11_glx_GetPixelMapuiv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetPixelMapusv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_map;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_map = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_map, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetPixelMapusv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPixelMapusv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetPixelMapusv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPixelMapusv_reply_datum, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(16);
|
|
listOfCard16(tvb, offsetp, t, hf_x11_glx_GetPixelMapusv_reply_data, hf_x11_glx_GetPixelMapusv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetPolygonStipple(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_lsb_first;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPolygonStipple_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_lsb_first = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetPolygonStipple_lsb_first, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void glxGetPolygonStipple_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPolygonStipple");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetPolygonStipple)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(24);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_GetPolygonStipple_reply_data, (f_length * 4), little_endian);
|
|
}
|
|
|
|
static void glxGetString(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_name;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetString_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetString_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetString_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetString");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetString)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetString_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_GetString_reply_string, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetTexEnvfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetTexEnvfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gfloat f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexEnvfv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetTexEnvfv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexEnvfv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexEnvfv_reply_data, hf_x11_glx_GetTexEnvfv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetTexEnviv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetTexEnviv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexEnviv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetTexEnviv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexEnviv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexEnviv_reply_data, hf_x11_glx_GetTexEnviv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetTexGendv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_coord;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGendv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_coord = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGendv_coord, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGendv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetTexGendv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gdouble f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexGendv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetTexGendv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGendv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = DOUBLE(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGendv_reply_datum, tvb, *offsetp, 8, little_endian);
|
|
*offsetp += 8;
|
|
UNUSED(8);
|
|
listOfDouble(tvb, offsetp, t, hf_x11_glx_GetTexGendv_reply_data, hf_x11_glx_GetTexGendv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetTexGenfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_coord;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_coord = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_coord, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetTexGenfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gfloat f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexGenfv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetTexGenfv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGenfv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexGenfv_reply_data, hf_x11_glx_GetTexGenfv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetTexGeniv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_coord;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_coord = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_coord, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetTexGeniv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexGeniv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetTexGeniv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexGeniv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexGeniv_reply_data, hf_x11_glx_GetTexGeniv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetTexImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_level;
|
|
int f_format;
|
|
int f_type;
|
|
int f_swap_bytes;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexImage_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexImage_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_level = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexImage_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexImage_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexImage_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_swap_bytes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexImage_swap_bytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void glxGetTexImage_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_width;
|
|
int f_height;
|
|
int f_depth;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexImage");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetTexImage)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
f_width = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexImage_reply_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_height = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexImage_reply_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_depth = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexImage_reply_depth, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_GetTexImage_reply_data, (f_length * 4), little_endian);
|
|
}
|
|
|
|
static void glxGetTexParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetTexParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gfloat f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexParameterfv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetTexParameterfv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexParameterfv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexParameterfv_reply_data, hf_x11_glx_GetTexParameterfv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetTexParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetTexParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexParameteriv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetTexParameteriv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexParameteriv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexParameteriv_reply_data, hf_x11_glx_GetTexParameteriv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetTexLevelParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_level;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_level = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetTexLevelParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gfloat f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexLevelParameterfv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetTexLevelParameterfv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameterfv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_GetTexLevelParameterfv_reply_data, hf_x11_glx_GetTexLevelParameterfv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetTexLevelParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_level;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_level = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetTexLevelParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetTexLevelParameteriv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetTexLevelParameteriv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetTexLevelParameteriv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetTexLevelParameteriv_reply_data, hf_x11_glx_GetTexLevelParameteriv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxIsList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_list;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_IsList_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_list = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_IsList_list, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxIsList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_ret_val;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-IsList");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-IsList)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_ret_val = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_IsList_reply_ret_val, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxFlush(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_Flush_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxAreTexturesResident(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_n;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_AreTexturesResident_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_AreTexturesResident_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_AreTexturesResident_textures, hf_x11_glx_AreTexturesResident_textures_item, f_n, little_endian);
|
|
length -= f_n * 4;
|
|
}
|
|
static void glxAreTexturesResident_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_ret_val;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-AreTexturesResident");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-AreTexturesResident)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_ret_val = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_AreTexturesResident_reply_ret_val, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_AreTexturesResident_reply_data, (f_length * 4), little_endian);
|
|
}
|
|
|
|
static void glxDeleteTextures(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_n;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_DeleteTextures_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_DeleteTextures_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_DeleteTextures_textures, hf_x11_glx_DeleteTextures_textures_item, f_n, little_endian);
|
|
length -= f_n * 4;
|
|
}
|
|
|
|
static void glxGenTextures(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_n;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GenTextures_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GenTextures_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGenTextures_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GenTextures");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GenTextures)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(24);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_GenTextures_reply_data, hf_x11_glx_GenTextures_reply_data_item, f_length, little_endian);
|
|
}
|
|
|
|
static void glxIsTexture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_texture;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_IsTexture_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_texture = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_IsTexture_texture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxIsTexture_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_ret_val;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-IsTexture");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-IsTexture)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_ret_val = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_IsTexture_reply_ret_val, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxGetColorTable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_format;
|
|
int f_type;
|
|
int f_swap_bytes;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTable_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTable_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTable_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTable_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_swap_bytes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTable_swap_bytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void glxGetColorTable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_width;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetColorTable");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetColorTable)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
f_width = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTable_reply_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_GetColorTable_reply_data, (f_length * 4), little_endian);
|
|
}
|
|
|
|
static void glxGetColorTableParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetColorTableParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gfloat f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetColorTableParameterfv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetColorTableParameterfv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTableParameterfv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_GetColorTableParameterfv_reply_data, hf_x11_glx_GetColorTableParameterfv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetColorTableParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetColorTableParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetColorTableParameteriv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetColorTableParameteriv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetColorTableParameteriv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetColorTableParameteriv_reply_data, hf_x11_glx_GetColorTableParameteriv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetConvolutionFilter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_format;
|
|
int f_type;
|
|
int f_swap_bytes;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_swap_bytes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_swap_bytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void glxGetConvolutionFilter_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_width;
|
|
int f_height;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetConvolutionFilter");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetConvolutionFilter)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
f_width = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_reply_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_height = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionFilter_reply_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_GetConvolutionFilter_reply_data, (f_length * 4), little_endian);
|
|
}
|
|
|
|
static void glxGetConvolutionParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetConvolutionParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gfloat f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetConvolutionParameterfv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetConvolutionParameterfv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameterfv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_GetConvolutionParameterfv_reply_data, hf_x11_glx_GetConvolutionParameterfv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetConvolutionParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetConvolutionParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetConvolutionParameteriv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetConvolutionParameteriv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetConvolutionParameteriv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetConvolutionParameteriv_reply_data, hf_x11_glx_GetConvolutionParameteriv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetSeparableFilter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_format;
|
|
int f_type;
|
|
int f_swap_bytes;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_swap_bytes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_swap_bytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void glxGetSeparableFilter_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_row_w;
|
|
int f_col_h;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSeparableFilter");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetSeparableFilter)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
f_row_w = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_reply_row_w, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_col_h = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetSeparableFilter_reply_col_h, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_GetSeparableFilter_reply_rows_and_cols, (f_length * 4), little_endian);
|
|
}
|
|
|
|
static void glxGetHistogram(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_format;
|
|
int f_type;
|
|
int f_swap_bytes;
|
|
int f_reset;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogram_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogram_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogram_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogram_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_swap_bytes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogram_swap_bytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_reset = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogram_reset, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void glxGetHistogram_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_width;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetHistogram");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetHistogram)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
f_width = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogram_reply_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_GetHistogram_reply_data, (f_length * 4), little_endian);
|
|
}
|
|
|
|
static void glxGetHistogramParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetHistogramParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gfloat f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetHistogramParameterfv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetHistogramParameterfv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogramParameterfv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_GetHistogramParameterfv_reply_data, hf_x11_glx_GetHistogramParameterfv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetHistogramParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetHistogramParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetHistogramParameteriv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetHistogramParameteriv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetHistogramParameteriv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetHistogramParameteriv_reply_data, hf_x11_glx_GetHistogramParameteriv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetMinmax(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_format;
|
|
int f_type;
|
|
int f_swap_bytes;
|
|
int f_reset;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmax_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmax_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmax_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmax_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_swap_bytes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmax_swap_bytes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_reset = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmax_reset, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void glxGetMinmax_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMinmax");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetMinmax)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(24);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_GetMinmax_reply_data, (f_length * 4), little_endian);
|
|
}
|
|
|
|
static void glxGetMinmaxParameterfv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetMinmaxParameterfv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
gfloat f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMinmaxParameterfv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetMinmaxParameterfv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = FLOAT(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameterfv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfFloat(tvb, offsetp, t, hf_x11_glx_GetMinmaxParameterfv_reply_data, hf_x11_glx_GetMinmaxParameterfv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetMinmaxParameteriv(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetMinmaxParameteriv_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMinmaxParameteriv");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetMinmaxParameteriv)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetMinmaxParameteriv_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetMinmaxParameteriv_reply_data, hf_x11_glx_GetMinmaxParameteriv_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetCompressedTexImageARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_level;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_level = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_level, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetCompressedTexImageARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_size;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCompressedTexImageARB");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetCompressedTexImageARB)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
f_size = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetCompressedTexImageARB_reply_size, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfByte(tvb, offsetp, t, hf_x11_glx_GetCompressedTexImageARB_reply_data, (f_length * 4), little_endian);
|
|
}
|
|
|
|
static void glxDeleteQueriesARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_n;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_DeleteQueriesARB_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_DeleteQueriesARB_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_DeleteQueriesARB_ids, hf_x11_glx_DeleteQueriesARB_ids_item, f_n, little_endian);
|
|
length -= f_n * 4;
|
|
}
|
|
|
|
static void glxGenQueriesARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_n;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GenQueriesARB_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GenQueriesARB_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGenQueriesARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GenQueriesARB");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GenQueriesARB)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(24);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_GenQueriesARB_reply_data, hf_x11_glx_GenQueriesARB_reply_data_item, f_length, little_endian);
|
|
}
|
|
|
|
static void glxIsQueryARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_id;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_IsQueryARB_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_IsQueryARB_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxIsQueryARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_ret_val;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-IsQueryARB");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-IsQueryARB)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_ret_val = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_IsQueryARB_reply_ret_val, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void glxGetQueryivARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_target;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_target = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_target, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetQueryivARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetQueryivARB");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetQueryivARB)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryivARB_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetQueryivARB_reply_data, hf_x11_glx_GetQueryivARB_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetQueryObjectivARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_id;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetQueryObjectivARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetQueryObjectivARB");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetQueryObjectivARB)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryObjectivARB_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_glx_GetQueryObjectivARB_reply_data, hf_x11_glx_GetQueryObjectivARB_reply_data_item, f_n, little_endian);
|
|
}
|
|
|
|
static void glxGetQueryObjectuivARB(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_tag;
|
|
int f_id;
|
|
int f_pname;
|
|
f_context_tag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_context_tag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pname = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_pname, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void glxGetQueryObjectuivARB_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_n;
|
|
int f_datum;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetQueryObjectuivARB");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (glx-GetQueryObjectuivARB)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
f_n = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_reply_n, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_datum = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_glx_GetQueryObjectuivARB_reply_datum, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_glx_GetQueryObjectuivARB_reply_data, hf_x11_glx_GetQueryObjectuivARB_reply_data_item, f_n, little_endian);
|
|
}
|
|
static const value_string glx_extension_minor[] = {
|
|
{ 1, "Render" },
|
|
{ 2, "RenderLarge" },
|
|
{ 3, "CreateContext" },
|
|
{ 4, "DestroyContext" },
|
|
{ 5, "MakeCurrent" },
|
|
{ 6, "IsDirect" },
|
|
{ 7, "QueryVersion" },
|
|
{ 8, "WaitGL" },
|
|
{ 9, "WaitX" },
|
|
{ 10, "CopyContext" },
|
|
{ 11, "SwapBuffers" },
|
|
{ 12, "UseXFont" },
|
|
{ 13, "CreateGLXPixmap" },
|
|
{ 14, "GetVisualConfigs" },
|
|
{ 15, "DestroyGLXPixmap" },
|
|
{ 16, "VendorPrivate" },
|
|
{ 17, "VendorPrivateWithReply" },
|
|
{ 18, "QueryExtensionsString" },
|
|
{ 19, "QueryServerString" },
|
|
{ 20, "ClientInfo" },
|
|
{ 21, "GetFBConfigs" },
|
|
{ 22, "CreatePixmap" },
|
|
{ 23, "DestroyPixmap" },
|
|
{ 24, "CreateNewContext" },
|
|
{ 25, "QueryContext" },
|
|
{ 26, "MakeContextCurrent" },
|
|
{ 27, "CreatePbuffer" },
|
|
{ 28, "DestroyPbuffer" },
|
|
{ 29, "GetDrawableAttributes" },
|
|
{ 30, "ChangeDrawableAttributes" },
|
|
{ 31, "CreateWindow" },
|
|
{ 32, "DeleteWindow" },
|
|
{ 101, "NewList" },
|
|
{ 102, "EndList" },
|
|
{ 103, "DeleteLists" },
|
|
{ 104, "GenLists" },
|
|
{ 105, "FeedbackBuffer" },
|
|
{ 106, "SelectBuffer" },
|
|
{ 107, "RenderMode" },
|
|
{ 108, "Finish" },
|
|
{ 109, "PixelStoref" },
|
|
{ 110, "PixelStorei" },
|
|
{ 111, "ReadPixels" },
|
|
{ 112, "GetBooleanv" },
|
|
{ 113, "GetClipPlane" },
|
|
{ 114, "GetDoublev" },
|
|
{ 115, "GetError" },
|
|
{ 116, "GetFloatv" },
|
|
{ 117, "GetIntegerv" },
|
|
{ 118, "GetLightfv" },
|
|
{ 119, "GetLightiv" },
|
|
{ 120, "GetMapdv" },
|
|
{ 121, "GetMapfv" },
|
|
{ 122, "GetMapiv" },
|
|
{ 123, "GetMaterialfv" },
|
|
{ 124, "GetMaterialiv" },
|
|
{ 125, "GetPixelMapfv" },
|
|
{ 126, "GetPixelMapuiv" },
|
|
{ 127, "GetPixelMapusv" },
|
|
{ 128, "GetPolygonStipple" },
|
|
{ 129, "GetString" },
|
|
{ 130, "GetTexEnvfv" },
|
|
{ 131, "GetTexEnviv" },
|
|
{ 132, "GetTexGendv" },
|
|
{ 133, "GetTexGenfv" },
|
|
{ 134, "GetTexGeniv" },
|
|
{ 135, "GetTexImage" },
|
|
{ 136, "GetTexParameterfv" },
|
|
{ 137, "GetTexParameteriv" },
|
|
{ 138, "GetTexLevelParameterfv" },
|
|
{ 139, "GetTexLevelParameteriv" },
|
|
{ 141, "IsList" },
|
|
{ 142, "Flush" },
|
|
{ 143, "AreTexturesResident" },
|
|
{ 144, "DeleteTextures" },
|
|
{ 145, "GenTextures" },
|
|
{ 146, "IsTexture" },
|
|
{ 147, "GetColorTable" },
|
|
{ 148, "GetColorTableParameterfv" },
|
|
{ 149, "GetColorTableParameteriv" },
|
|
{ 150, "GetConvolutionFilter" },
|
|
{ 151, "GetConvolutionParameterfv" },
|
|
{ 152, "GetConvolutionParameteriv" },
|
|
{ 153, "GetSeparableFilter" },
|
|
{ 154, "GetHistogram" },
|
|
{ 155, "GetHistogramParameterfv" },
|
|
{ 156, "GetHistogramParameteriv" },
|
|
{ 157, "GetMinmax" },
|
|
{ 158, "GetMinmaxParameterfv" },
|
|
{ 159, "GetMinmaxParameteriv" },
|
|
{ 160, "GetCompressedTexImageARB" },
|
|
{ 161, "DeleteQueriesARB" },
|
|
{ 162, "GenQueriesARB" },
|
|
{ 163, "IsQueryARB" },
|
|
{ 164, "GetQueryivARB" },
|
|
{ 165, "GetQueryObjectivARB" },
|
|
{ 166, "GetQueryObjectuivARB" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info glx_events[] = {
|
|
{ "glx-PbufferClobber", glxPbufferClobber },
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info glx_replies[] = {
|
|
{ 5, glxMakeCurrent_Reply },
|
|
{ 6, glxIsDirect_Reply },
|
|
{ 7, glxQueryVersion_Reply },
|
|
{ 14, glxGetVisualConfigs_Reply },
|
|
{ 17, glxVendorPrivateWithReply_Reply },
|
|
{ 18, glxQueryExtensionsString_Reply },
|
|
{ 19, glxQueryServerString_Reply },
|
|
{ 21, glxGetFBConfigs_Reply },
|
|
{ 25, glxQueryContext_Reply },
|
|
{ 26, glxMakeContextCurrent_Reply },
|
|
{ 29, glxGetDrawableAttributes_Reply },
|
|
{ 104, glxGenLists_Reply },
|
|
{ 107, glxRenderMode_Reply },
|
|
{ 108, glxFinish_Reply },
|
|
{ 111, glxReadPixels_Reply },
|
|
{ 112, glxGetBooleanv_Reply },
|
|
{ 113, glxGetClipPlane_Reply },
|
|
{ 114, glxGetDoublev_Reply },
|
|
{ 115, glxGetError_Reply },
|
|
{ 116, glxGetFloatv_Reply },
|
|
{ 117, glxGetIntegerv_Reply },
|
|
{ 118, glxGetLightfv_Reply },
|
|
{ 119, glxGetLightiv_Reply },
|
|
{ 120, glxGetMapdv_Reply },
|
|
{ 121, glxGetMapfv_Reply },
|
|
{ 122, glxGetMapiv_Reply },
|
|
{ 123, glxGetMaterialfv_Reply },
|
|
{ 124, glxGetMaterialiv_Reply },
|
|
{ 125, glxGetPixelMapfv_Reply },
|
|
{ 126, glxGetPixelMapuiv_Reply },
|
|
{ 127, glxGetPixelMapusv_Reply },
|
|
{ 128, glxGetPolygonStipple_Reply },
|
|
{ 129, glxGetString_Reply },
|
|
{ 130, glxGetTexEnvfv_Reply },
|
|
{ 131, glxGetTexEnviv_Reply },
|
|
{ 132, glxGetTexGendv_Reply },
|
|
{ 133, glxGetTexGenfv_Reply },
|
|
{ 134, glxGetTexGeniv_Reply },
|
|
{ 135, glxGetTexImage_Reply },
|
|
{ 136, glxGetTexParameterfv_Reply },
|
|
{ 137, glxGetTexParameteriv_Reply },
|
|
{ 138, glxGetTexLevelParameterfv_Reply },
|
|
{ 139, glxGetTexLevelParameteriv_Reply },
|
|
{ 141, glxIsList_Reply },
|
|
{ 143, glxAreTexturesResident_Reply },
|
|
{ 145, glxGenTextures_Reply },
|
|
{ 146, glxIsTexture_Reply },
|
|
{ 147, glxGetColorTable_Reply },
|
|
{ 148, glxGetColorTableParameterfv_Reply },
|
|
{ 149, glxGetColorTableParameteriv_Reply },
|
|
{ 150, glxGetConvolutionFilter_Reply },
|
|
{ 151, glxGetConvolutionParameterfv_Reply },
|
|
{ 152, glxGetConvolutionParameteriv_Reply },
|
|
{ 153, glxGetSeparableFilter_Reply },
|
|
{ 154, glxGetHistogram_Reply },
|
|
{ 155, glxGetHistogramParameterfv_Reply },
|
|
{ 156, glxGetHistogramParameteriv_Reply },
|
|
{ 157, glxGetMinmax_Reply },
|
|
{ 158, glxGetMinmaxParameterfv_Reply },
|
|
{ 159, glxGetMinmaxParameteriv_Reply },
|
|
{ 160, glxGetCompressedTexImageARB_Reply },
|
|
{ 162, glxGenQueriesARB_Reply },
|
|
{ 163, glxIsQueryARB_Reply },
|
|
{ 164, glxGetQueryivARB_Reply },
|
|
{ 165, glxGetQueryObjectivARB_Reply },
|
|
{ 166, glxGetQueryObjectuivARB_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_glx(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(glx_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, glx_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 1:
|
|
glxRender(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
glxRenderLarge(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
glxCreateContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
glxDestroyContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
glxMakeCurrent(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
glxIsDirect(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
glxQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
glxWaitGL(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 9:
|
|
glxWaitX(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 10:
|
|
glxCopyContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 11:
|
|
glxSwapBuffers(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 12:
|
|
glxUseXFont(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 13:
|
|
glxCreateGLXPixmap(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 14:
|
|
glxGetVisualConfigs(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 15:
|
|
glxDestroyGLXPixmap(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 16:
|
|
glxVendorPrivate(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 17:
|
|
glxVendorPrivateWithReply(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 18:
|
|
glxQueryExtensionsString(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 19:
|
|
glxQueryServerString(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 20:
|
|
glxClientInfo(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 21:
|
|
glxGetFBConfigs(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 22:
|
|
glxCreatePixmap(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 23:
|
|
glxDestroyPixmap(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 24:
|
|
glxCreateNewContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 25:
|
|
glxQueryContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 26:
|
|
glxMakeContextCurrent(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 27:
|
|
glxCreatePbuffer(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 28:
|
|
glxDestroyPbuffer(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 29:
|
|
glxGetDrawableAttributes(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 30:
|
|
glxChangeDrawableAttributes(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 31:
|
|
glxCreateWindow(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 32:
|
|
glxDeleteWindow(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 101:
|
|
glxNewList(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 102:
|
|
glxEndList(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 103:
|
|
glxDeleteLists(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 104:
|
|
glxGenLists(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 105:
|
|
glxFeedbackBuffer(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 106:
|
|
glxSelectBuffer(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 107:
|
|
glxRenderMode(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 108:
|
|
glxFinish(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 109:
|
|
glxPixelStoref(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 110:
|
|
glxPixelStorei(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 111:
|
|
glxReadPixels(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 112:
|
|
glxGetBooleanv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 113:
|
|
glxGetClipPlane(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 114:
|
|
glxGetDoublev(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 115:
|
|
glxGetError(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 116:
|
|
glxGetFloatv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 117:
|
|
glxGetIntegerv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 118:
|
|
glxGetLightfv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 119:
|
|
glxGetLightiv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 120:
|
|
glxGetMapdv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 121:
|
|
glxGetMapfv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 122:
|
|
glxGetMapiv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 123:
|
|
glxGetMaterialfv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 124:
|
|
glxGetMaterialiv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 125:
|
|
glxGetPixelMapfv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 126:
|
|
glxGetPixelMapuiv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 127:
|
|
glxGetPixelMapusv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 128:
|
|
glxGetPolygonStipple(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 129:
|
|
glxGetString(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 130:
|
|
glxGetTexEnvfv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 131:
|
|
glxGetTexEnviv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 132:
|
|
glxGetTexGendv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 133:
|
|
glxGetTexGenfv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 134:
|
|
glxGetTexGeniv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 135:
|
|
glxGetTexImage(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 136:
|
|
glxGetTexParameterfv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 137:
|
|
glxGetTexParameteriv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 138:
|
|
glxGetTexLevelParameterfv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 139:
|
|
glxGetTexLevelParameteriv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 141:
|
|
glxIsList(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 142:
|
|
glxFlush(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 143:
|
|
glxAreTexturesResident(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 144:
|
|
glxDeleteTextures(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 145:
|
|
glxGenTextures(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 146:
|
|
glxIsTexture(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 147:
|
|
glxGetColorTable(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 148:
|
|
glxGetColorTableParameterfv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 149:
|
|
glxGetColorTableParameteriv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 150:
|
|
glxGetConvolutionFilter(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 151:
|
|
glxGetConvolutionParameterfv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 152:
|
|
glxGetConvolutionParameteriv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 153:
|
|
glxGetSeparableFilter(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 154:
|
|
glxGetHistogram(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 155:
|
|
glxGetHistogramParameterfv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 156:
|
|
glxGetHistogramParameteriv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 157:
|
|
glxGetMinmax(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 158:
|
|
glxGetMinmaxParameterfv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 159:
|
|
glxGetMinmaxParameteriv(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 160:
|
|
glxGetCompressedTexImageARB(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 161:
|
|
glxDeleteQueriesARB(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 162:
|
|
glxGenQueriesARB(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 163:
|
|
glxIsQueryARB(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 164:
|
|
glxGetQueryivARB(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 165:
|
|
glxGetQueryObjectivARB(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 166:
|
|
glxGetQueryObjectuivARB(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_glx(void)
|
|
{
|
|
set_handler("GLX", dispatch_glx, glx_errors, glx_events, glx_replies);
|
|
}
|
|
|
|
static void struct_ScreenSize(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_width;
|
|
int f_height;
|
|
int f_mwidth;
|
|
int f_mheight;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_ScreenSize, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ScreenSize_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ScreenSize_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mwidth = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ScreenSize_mwidth, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mheight = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ScreenSize_mheight, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static int struct_size_RefreshRates(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_nRates;
|
|
f_nRates = VALUE16(tvb, *offsetp + size + 0);
|
|
size += f_nRates * 2;
|
|
return size + 2;
|
|
}
|
|
|
|
static void struct_RefreshRates(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_nRates;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_RefreshRates, tvb, *offsetp, struct_size_RefreshRates(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_nRates = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_RefreshRates_nRates, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfCard16(tvb, offsetp, t, hf_x11_struct_RefreshRates_rates, hf_x11_struct_RefreshRates_rates_item, f_nRates, little_endian);
|
|
}
|
|
}
|
|
|
|
static void randrQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
f_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_QueryVersion_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_QueryVersion_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_QueryVersion_reply_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_QueryVersion_reply_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
}
|
|
|
|
static void randrSetScreenConfig(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_timestamp;
|
|
int f_config_timestamp;
|
|
int f_sizeID;
|
|
int f_rotation;
|
|
int f_rate;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_config_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_config_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_sizeID = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_sizeID, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_rotation = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_rotation, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_90, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_180, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SetScreenConfig_rotation_mask_Rotate_270, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SetScreenConfig_rotation_mask_Reflect_X, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SetScreenConfig_rotation_mask_Reflect_Y, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_rate = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_rate, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
static void randrSetScreenConfig_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
int f_new_timestamp;
|
|
int f_config_timestamp;
|
|
int f_root;
|
|
int f_subpixel_order;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-SetScreenConfig");
|
|
|
|
REPLY(reply);
|
|
f_status = field8(tvb, offsetp, t, hf_x11_randr_SetScreenConfig_reply_status, little_endian);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-SetScreenConfig)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_new_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_reply_new_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_config_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_reply_config_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_root = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_reply_root, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_subpixel_order = field16(tvb, offsetp, t, hf_x11_randr_SetScreenConfig_reply_subpixel_order, little_endian);
|
|
UNUSED(10);
|
|
}
|
|
|
|
static void randrSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_enable;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SelectInput_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_enable = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_randr_SelectInput_enable, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SelectInput_enable_mask_ScreenChange, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SelectInput_enable_mask_CrtcChange, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SelectInput_enable_mask_OutputChange, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SelectInput_enable_mask_OutputProperty, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
|
|
static void randrGetScreenInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrGetScreenInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_rotations;
|
|
int f_root;
|
|
int f_timestamp;
|
|
int f_config_timestamp;
|
|
int f_nSizes;
|
|
int f_sizeID;
|
|
int f_rotation;
|
|
int f_rate;
|
|
int f_nInfo;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenInfo");
|
|
|
|
REPLY(reply);
|
|
f_rotations = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_rotations, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_0, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_90, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_180, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetScreenInfo_reply_rotations_mask_Rotate_270, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetScreenInfo_reply_rotations_mask_Reflect_X, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetScreenInfo_reply_rotations_mask_Reflect_Y, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-GetScreenInfo)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_root = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_root, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_config_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_config_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_nSizes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_nSizes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_sizeID = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_sizeID, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_rotation = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_rotation, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_90, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_180, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetScreenInfo_reply_rotation_mask_Rotate_270, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetScreenInfo_reply_rotation_mask_Reflect_X, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetScreenInfo_reply_rotation_mask_Reflect_Y, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_rate = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_rate, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nInfo = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_nInfo, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
struct_ScreenSize(tvb, offsetp, t, little_endian, f_nSizes);
|
|
struct_RefreshRates(tvb, offsetp, t, little_endian, (f_nInfo - f_nSizes));
|
|
}
|
|
|
|
static void randrGetScreenSizeRange(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrGetScreenSizeRange_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_min_width;
|
|
int f_min_height;
|
|
int f_max_width;
|
|
int f_max_height;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenSizeRange");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-GetScreenSizeRange)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_min_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_min_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_min_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_min_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_max_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_max_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_max_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenSizeRange_reply_max_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(16);
|
|
}
|
|
|
|
static void randrSetScreenSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_width;
|
|
int f_height;
|
|
int f_mm_width;
|
|
int f_mm_height;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenSize_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenSize_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenSize_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mm_width = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenSize_mm_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mm_height = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenSize_mm_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void struct_ModeInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_id;
|
|
int f_width;
|
|
int f_height;
|
|
int f_dot_clock;
|
|
int f_hsync_start;
|
|
int f_hsync_end;
|
|
int f_htotal;
|
|
int f_hskew;
|
|
int f_vsync_start;
|
|
int f_vsync_end;
|
|
int f_vtotal;
|
|
int f_name_len;
|
|
int f_mode_flags;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_ModeInfo, tvb, *offsetp, 32, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ModeInfo_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ModeInfo_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ModeInfo_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_dot_clock = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ModeInfo_dot_clock, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_hsync_start = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ModeInfo_hsync_start, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hsync_end = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ModeInfo_hsync_end, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_htotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ModeInfo_htotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hskew = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ModeInfo_hskew, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsync_start = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ModeInfo_vsync_start, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsync_end = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ModeInfo_vsync_end, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vtotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ModeInfo_vtotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_name_len = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ModeInfo_name_len, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mode_flags = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_ModeInfo_mode_flags, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_HsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_HsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_VsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_VsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_Interlace, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_DoubleScan, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_Csync, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_CsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_CsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_HskewPresent, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_Bcast, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_PixelMultiplex, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_DoubleClock, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModeInfo_mode_flags_mask_HalveClock, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static void randrGetScreenResources(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResources_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrGetScreenResources_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_timestamp;
|
|
int f_config_timestamp;
|
|
int f_num_crtcs;
|
|
int f_num_outputs;
|
|
int f_num_modes;
|
|
int f_names_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenResources");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-GetScreenResources)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_config_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_config_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_crtcs = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_num_crtcs, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_outputs = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_num_outputs, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_modes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_num_modes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_names_len = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResources_reply_names_len, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(8);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResources_reply_crtcs, hf_x11_randr_GetScreenResources_reply_crtcs_item, f_num_crtcs, little_endian);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResources_reply_outputs, hf_x11_randr_GetScreenResources_reply_outputs_item, f_num_outputs, little_endian);
|
|
struct_ModeInfo(tvb, offsetp, t, little_endian, f_num_modes);
|
|
listOfByte(tvb, offsetp, t, hf_x11_randr_GetScreenResources_reply_names, f_names_len, little_endian);
|
|
}
|
|
|
|
static void randrGetOutputInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_output;
|
|
int f_config_timestamp;
|
|
f_output = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_output, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_config_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_config_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrGetOutputInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
int f_timestamp;
|
|
int f_crtc;
|
|
int f_mm_width;
|
|
int f_mm_height;
|
|
int f_connection;
|
|
int f_subpixel_order;
|
|
int f_num_crtcs;
|
|
int f_num_modes;
|
|
int f_num_preferred;
|
|
int f_num_clones;
|
|
int f_name_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOutputInfo");
|
|
|
|
REPLY(reply);
|
|
f_status = field8(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_status, little_endian);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-GetOutputInfo)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_crtc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_crtc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mm_width = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_mm_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mm_height = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_mm_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_connection = field8(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_connection, little_endian);
|
|
f_subpixel_order = field8(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_subpixel_order, little_endian);
|
|
f_num_crtcs = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_crtcs, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_modes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_modes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_preferred = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_preferred, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_clones = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_num_clones, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_name_len = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_name_len, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_crtcs, hf_x11_randr_GetOutputInfo_reply_crtcs_item, f_num_crtcs, little_endian);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_modes, hf_x11_randr_GetOutputInfo_reply_modes_item, f_num_modes, little_endian);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_clones, hf_x11_randr_GetOutputInfo_reply_clones_item, f_num_clones, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_randr_GetOutputInfo_reply_name, f_name_len, little_endian);
|
|
}
|
|
|
|
static void randrListOutputProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_output;
|
|
f_output = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ListOutputProperties_output, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrListOutputProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_atoms;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-ListOutputProperties");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-ListOutputProperties)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_atoms = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ListOutputProperties_reply_num_atoms, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(22);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_randr_ListOutputProperties_reply_atoms, hf_x11_randr_ListOutputProperties_reply_atoms_item, f_num_atoms, little_endian);
|
|
}
|
|
|
|
static void randrQueryOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_output;
|
|
int f_property;
|
|
f_output = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_output, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_property = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_property, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrQueryOutputProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_pending;
|
|
int f_range;
|
|
int f_immutable;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryOutputProperty");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-QueryOutputProperty)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pending = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_reply_pending, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_range = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_reply_range, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_immutable = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_QueryOutputProperty_reply_immutable, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(21);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_randr_QueryOutputProperty_reply_validValues, hf_x11_randr_QueryOutputProperty_reply_validValues_item, f_length, little_endian);
|
|
}
|
|
|
|
static void randrConfigureOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_output;
|
|
int f_property;
|
|
int f_pending;
|
|
int f_range;
|
|
f_output = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_output, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_property = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_property, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pending = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_pending, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_range = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ConfigureOutputProperty_range, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_randr_ConfigureOutputProperty_values, hf_x11_randr_ConfigureOutputProperty_values_item, (length - 16) / 4, little_endian);
|
|
}
|
|
|
|
static void randrChangeOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_output;
|
|
int f_property;
|
|
int f_type;
|
|
int f_format;
|
|
int f_mode;
|
|
int f_num_units;
|
|
f_output = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_output, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_property = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_property, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_format = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_format, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_mode = field8(tvb, offsetp, t, hf_x11_randr_ChangeOutputProperty_mode, little_endian);
|
|
UNUSED(2);
|
|
f_num_units = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_num_units, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_randr_ChangeOutputProperty_data, ((f_num_units * f_format) / 8), little_endian);
|
|
length -= ((f_num_units * f_format) / 8) * 1;
|
|
}
|
|
|
|
static void randrDeleteOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_output;
|
|
int f_property;
|
|
f_output = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_DeleteOutputProperty_output, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_property = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_DeleteOutputProperty_property, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void randrGetOutputProperty(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_output;
|
|
int f_property;
|
|
int f_type;
|
|
int f_long_offset;
|
|
int f_long_length;
|
|
int f_delete;
|
|
int f_pending;
|
|
f_output = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_output, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_property = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_property, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = field32(tvb, offsetp, t, hf_x11_randr_GetOutputProperty_type, little_endian);
|
|
f_long_offset = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_long_offset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_long_length = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_long_length, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_delete = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_delete, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_pending = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_pending, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
}
|
|
static void randrGetOutputProperty_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_format;
|
|
int f_type;
|
|
int f_bytes_after;
|
|
int f_num_items;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOutputProperty");
|
|
|
|
REPLY(reply);
|
|
f_format = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_reply_format, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-GetOutputProperty)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = field32(tvb, offsetp, t, hf_x11_randr_GetOutputProperty_reply_type, little_endian);
|
|
f_bytes_after = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_reply_bytes_after, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_items = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_reply_num_items, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfByte(tvb, offsetp, t, hf_x11_randr_GetOutputProperty_reply_data, (f_num_items * (f_format / 8)), little_endian);
|
|
}
|
|
|
|
static void randrCreateMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_CreateMode_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_ModeInfo(tvb, offsetp, t, little_endian, 1);
|
|
listOfByte(tvb, offsetp, t, hf_x11_randr_CreateMode_name, (length - 40) / 1, little_endian);
|
|
}
|
|
static void randrCreateMode_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_mode;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateMode");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-CreateMode)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mode = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_CreateMode_reply_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
}
|
|
|
|
static void randrDestroyMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_mode;
|
|
f_mode = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_DestroyMode_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void randrAddOutputMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_output;
|
|
int f_mode;
|
|
f_output = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_AddOutputMode_output, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mode = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_AddOutputMode_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void randrDeleteOutputMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_output;
|
|
int f_mode;
|
|
f_output = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_DeleteOutputMode_output, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mode = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_DeleteOutputMode_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void randrGetCrtcInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_crtc;
|
|
int f_config_timestamp;
|
|
f_crtc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_crtc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_config_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_config_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrGetCrtcInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
int f_timestamp;
|
|
int f_x;
|
|
int f_y;
|
|
int f_width;
|
|
int f_height;
|
|
int f_mode;
|
|
int f_rotation;
|
|
int f_rotations;
|
|
int f_num_outputs;
|
|
int f_num_possible_outputs;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcInfo");
|
|
|
|
REPLY(reply);
|
|
f_status = field8(tvb, offsetp, t, hf_x11_randr_GetCrtcInfo_reply_status, little_endian);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-GetCrtcInfo)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mode = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_rotation = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_rotation, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_90, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_180, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Rotate_270, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Reflect_X, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetCrtcInfo_reply_rotation_mask_Reflect_Y, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_rotations = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_rotations, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_90, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_180, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Rotate_270, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Reflect_X, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_GetCrtcInfo_reply_rotations_mask_Reflect_Y, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_num_outputs = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_num_outputs, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_possible_outputs = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_num_possible_outputs, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_randr_GetCrtcInfo_reply_outputs, hf_x11_randr_GetCrtcInfo_reply_outputs_item, f_num_outputs, little_endian);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_randr_GetCrtcInfo_reply_possible, hf_x11_randr_GetCrtcInfo_reply_possible_item, f_num_possible_outputs, little_endian);
|
|
}
|
|
|
|
static void randrSetCrtcConfig(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_crtc;
|
|
int f_timestamp;
|
|
int f_config_timestamp;
|
|
int f_x;
|
|
int f_y;
|
|
int f_mode;
|
|
int f_rotation;
|
|
f_crtc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_crtc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_config_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_config_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mode = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_rotation = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_rotation, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_90, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_180, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SetCrtcConfig_rotation_mask_Rotate_270, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SetCrtcConfig_rotation_mask_Reflect_X, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_SetCrtcConfig_rotation_mask_Reflect_Y, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_randr_SetCrtcConfig_outputs, hf_x11_randr_SetCrtcConfig_outputs_item, (length - 28) / 4, little_endian);
|
|
}
|
|
static void randrSetCrtcConfig_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
int f_timestamp;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-SetCrtcConfig");
|
|
|
|
REPLY(reply);
|
|
f_status = field8(tvb, offsetp, t, hf_x11_randr_SetCrtcConfig_reply_status, little_endian);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-SetCrtcConfig)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_reply_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
}
|
|
|
|
static void randrGetCrtcGammaSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_crtc;
|
|
f_crtc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcGammaSize_crtc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrGetCrtcGammaSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_size;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcGammaSize");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-GetCrtcGammaSize)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_size = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcGammaSize_reply_size, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(22);
|
|
}
|
|
|
|
static void randrGetCrtcGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_crtc;
|
|
f_crtc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcGamma_crtc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrGetCrtcGamma_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_size;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcGamma");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-GetCrtcGamma)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_size = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcGamma_reply_size, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(22);
|
|
listOfCard16(tvb, offsetp, t, hf_x11_randr_GetCrtcGamma_reply_red, hf_x11_randr_GetCrtcGamma_reply_red_item, f_size, little_endian);
|
|
listOfCard16(tvb, offsetp, t, hf_x11_randr_GetCrtcGamma_reply_green, hf_x11_randr_GetCrtcGamma_reply_green_item, f_size, little_endian);
|
|
listOfCard16(tvb, offsetp, t, hf_x11_randr_GetCrtcGamma_reply_blue, hf_x11_randr_GetCrtcGamma_reply_blue_item, f_size, little_endian);
|
|
}
|
|
|
|
static void randrSetCrtcGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_crtc;
|
|
int f_size;
|
|
f_crtc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetCrtcGamma_crtc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_size = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetCrtcGamma_size, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
listOfCard16(tvb, offsetp, t, hf_x11_randr_SetCrtcGamma_red, hf_x11_randr_SetCrtcGamma_red_item, f_size, little_endian);
|
|
length -= f_size * 2;
|
|
listOfCard16(tvb, offsetp, t, hf_x11_randr_SetCrtcGamma_green, hf_x11_randr_SetCrtcGamma_green_item, f_size, little_endian);
|
|
length -= f_size * 2;
|
|
listOfCard16(tvb, offsetp, t, hf_x11_randr_SetCrtcGamma_blue, hf_x11_randr_SetCrtcGamma_blue_item, f_size, little_endian);
|
|
length -= f_size * 2;
|
|
}
|
|
|
|
static void randrGetScreenResourcesCurrent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrGetScreenResourcesCurrent_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_timestamp;
|
|
int f_config_timestamp;
|
|
int f_num_crtcs;
|
|
int f_num_outputs;
|
|
int f_num_modes;
|
|
int f_names_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenResourcesCurrent");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-GetScreenResourcesCurrent)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_config_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_config_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_crtcs = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_num_crtcs, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_outputs = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_num_outputs, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_modes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_num_modes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_names_len = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetScreenResourcesCurrent_reply_names_len, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(8);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResourcesCurrent_reply_crtcs, hf_x11_randr_GetScreenResourcesCurrent_reply_crtcs_item, f_num_crtcs, little_endian);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_randr_GetScreenResourcesCurrent_reply_outputs, hf_x11_randr_GetScreenResourcesCurrent_reply_outputs_item, f_num_outputs, little_endian);
|
|
struct_ModeInfo(tvb, offsetp, t, little_endian, f_num_modes);
|
|
listOfByte(tvb, offsetp, t, hf_x11_randr_GetScreenResourcesCurrent_reply_names, f_names_len, little_endian);
|
|
}
|
|
|
|
static void randrSetCrtcTransform(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_crtc;
|
|
int f_filter_len;
|
|
f_crtc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetCrtcTransform_crtc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_TRANSFORM(tvb, offsetp, t, little_endian, 1);
|
|
f_filter_len = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetCrtcTransform_filter_len, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
listOfByte(tvb, offsetp, t, hf_x11_randr_SetCrtcTransform_filter_name, f_filter_len, little_endian);
|
|
length -= f_filter_len * 1;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_randr_SetCrtcTransform_filter_params, hf_x11_randr_SetCrtcTransform_filter_params_item, (length - 48) / 4, little_endian);
|
|
}
|
|
|
|
static void randrGetCrtcTransform(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_crtc;
|
|
f_crtc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_crtc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrGetCrtcTransform_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_has_transforms;
|
|
int f_pending_len;
|
|
int f_pending_nparams;
|
|
int f_current_len;
|
|
int f_current_nparams;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCrtcTransform");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-GetCrtcTransform)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_TRANSFORM(tvb, offsetp, t, little_endian, 1);
|
|
f_has_transforms = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_has_transforms, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
struct_TRANSFORM(tvb, offsetp, t, little_endian, 1);
|
|
UNUSED(4);
|
|
f_pending_len = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_pending_len, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_pending_nparams = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_pending_nparams, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_current_len = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_current_len, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_current_nparams = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcTransform_reply_current_nparams, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfByte(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_pending_filter_name, f_pending_len, little_endian);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_pending_params, hf_x11_randr_GetCrtcTransform_reply_pending_params_item, f_pending_nparams, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_current_filter_name, f_current_len, little_endian);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_randr_GetCrtcTransform_reply_current_params, hf_x11_randr_GetCrtcTransform_reply_current_params_item, f_current_nparams, little_endian);
|
|
}
|
|
|
|
static void randrGetPanning(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_crtc;
|
|
f_crtc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_crtc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrGetPanning_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
int f_timestamp;
|
|
int f_left;
|
|
int f_top;
|
|
int f_width;
|
|
int f_height;
|
|
int f_track_left;
|
|
int f_track_top;
|
|
int f_track_width;
|
|
int f_track_height;
|
|
int f_border_left;
|
|
int f_border_top;
|
|
int f_border_right;
|
|
int f_border_bottom;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPanning");
|
|
|
|
REPLY(reply);
|
|
f_status = field8(tvb, offsetp, t, hf_x11_randr_GetPanning_reply_status, little_endian);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-GetPanning)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_track_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_track_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_track_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_track_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_track_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_border_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_border_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_border_right = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_right, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_border_bottom = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_reply_border_bottom, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void randrSetPanning(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_crtc;
|
|
int f_timestamp;
|
|
int f_left;
|
|
int f_top;
|
|
int f_width;
|
|
int f_height;
|
|
int f_track_left;
|
|
int f_track_top;
|
|
int f_track_width;
|
|
int f_track_height;
|
|
int f_border_left;
|
|
int f_border_top;
|
|
int f_border_right;
|
|
int f_border_bottom;
|
|
f_crtc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_crtc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_track_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_track_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_track_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_track_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_track_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_track_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_track_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_track_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_border_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_border_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_border_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_border_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_border_right = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_border_right, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_border_bottom = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_border_bottom, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
static void randrSetPanning_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
int f_timestamp;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-SetPanning");
|
|
|
|
REPLY(reply);
|
|
f_status = field8(tvb, offsetp, t, hf_x11_randr_SetPanning_reply_status, little_endian);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-SetPanning)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_reply_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void randrSetOutputPrimary(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_output;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetOutputPrimary_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_output = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetOutputPrimary_output, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void randrGetOutputPrimary(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputPrimary_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void randrGetOutputPrimary_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_output;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetOutputPrimary");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (randr-GetOutputPrimary)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_output = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputPrimary_reply_output, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void randrScreenChangeNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_rotation;
|
|
int f_timestamp;
|
|
int f_config_timestamp;
|
|
int f_root;
|
|
int f_request_window;
|
|
int f_sizeID;
|
|
int f_subpixel_order;
|
|
int f_width;
|
|
int f_height;
|
|
int f_mwidth;
|
|
int f_mheight;
|
|
f_rotation = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_randr_ScreenChangeNotify_rotation, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_ScreenChangeNotify_rotation_mask_Rotate_0, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_ScreenChangeNotify_rotation_mask_Rotate_90, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_ScreenChangeNotify_rotation_mask_Rotate_180, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_ScreenChangeNotify_rotation_mask_Rotate_270, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_ScreenChangeNotify_rotation_mask_Reflect_X, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_randr_ScreenChangeNotify_rotation_mask_Reflect_Y, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
CARD16(event_sequencenumber);
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ScreenChangeNotify_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_config_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ScreenChangeNotify_config_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_root = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ScreenChangeNotify_root, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_request_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ScreenChangeNotify_request_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_sizeID = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ScreenChangeNotify_sizeID, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_subpixel_order = field16(tvb, offsetp, t, hf_x11_randr_ScreenChangeNotify_subpixel_order, little_endian);
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ScreenChangeNotify_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ScreenChangeNotify_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mwidth = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ScreenChangeNotify_mwidth, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mheight = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ScreenChangeNotify_mheight, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void struct_CrtcChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_timestamp;
|
|
int f_window;
|
|
int f_crtc;
|
|
int f_mode;
|
|
int f_rotation;
|
|
int f_x;
|
|
int f_y;
|
|
int f_width;
|
|
int f_height;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_CrtcChange, tvb, *offsetp, 28, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CrtcChange_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CrtcChange_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_crtc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CrtcChange_crtc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mode = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CrtcChange_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_rotation = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_CrtcChange_rotation, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_CrtcChange_rotation_mask_Rotate_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_CrtcChange_rotation_mask_Rotate_90, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_CrtcChange_rotation_mask_Rotate_180, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_CrtcChange_rotation_mask_Rotate_270, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_CrtcChange_rotation_mask_Reflect_X, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_CrtcChange_rotation_mask_Reflect_Y, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CrtcChange_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CrtcChange_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CrtcChange_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CrtcChange_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static void struct_OutputChange(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_timestamp;
|
|
int f_config_timestamp;
|
|
int f_window;
|
|
int f_output;
|
|
int f_crtc;
|
|
int f_mode;
|
|
int f_rotation;
|
|
int f_connection;
|
|
int f_subpixel_order;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_OutputChange, tvb, *offsetp, 28, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OutputChange_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_config_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OutputChange_config_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OutputChange_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_output = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OutputChange_output, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_crtc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OutputChange_crtc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mode = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OutputChange_mode, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_rotation = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_OutputChange_rotation, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_OutputChange_rotation_mask_Rotate_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_OutputChange_rotation_mask_Rotate_90, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_OutputChange_rotation_mask_Rotate_180, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_OutputChange_rotation_mask_Rotate_270, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_OutputChange_rotation_mask_Reflect_X, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_OutputChange_rotation_mask_Reflect_Y, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_connection = field8(tvb, offsetp, t, hf_x11_struct_OutputChange_connection, little_endian);
|
|
f_subpixel_order = field8(tvb, offsetp, t, hf_x11_struct_OutputChange_subpixel_order, little_endian);
|
|
}
|
|
}
|
|
|
|
static void struct_OutputProperty(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_window;
|
|
int f_output;
|
|
int f_atom;
|
|
int f_timestamp;
|
|
int f_status;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_OutputProperty, tvb, *offsetp, 28, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OutputProperty_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_output = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OutputProperty_output, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_atom = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OutputProperty_atom, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OutputProperty_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_status = field8(tvb, offsetp, t, hf_x11_struct_OutputProperty_status, little_endian);
|
|
UNUSED(11);
|
|
}
|
|
}
|
|
|
|
static void struct_NotifyData(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
int base = *offsetp;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
item = proto_tree_add_item(root, hf_x11_union_NotifyData, tvb, base, 28, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
|
|
*offsetp = base;
|
|
struct_CrtcChange(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_OutputChange(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_OutputProperty(tvb, offsetp, t, little_endian, 1);
|
|
base += 28;
|
|
}
|
|
*offsetp = base;
|
|
}
|
|
|
|
static void randrNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_subCode;
|
|
f_subCode = field8(tvb, offsetp, t, hf_x11_randr_Notify_subCode, little_endian);
|
|
CARD16(event_sequencenumber);
|
|
struct_NotifyData(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
static const value_string randr_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 2, "SetScreenConfig" },
|
|
{ 4, "SelectInput" },
|
|
{ 5, "GetScreenInfo" },
|
|
{ 6, "GetScreenSizeRange" },
|
|
{ 7, "SetScreenSize" },
|
|
{ 8, "GetScreenResources" },
|
|
{ 9, "GetOutputInfo" },
|
|
{ 10, "ListOutputProperties" },
|
|
{ 11, "QueryOutputProperty" },
|
|
{ 12, "ConfigureOutputProperty" },
|
|
{ 13, "ChangeOutputProperty" },
|
|
{ 14, "DeleteOutputProperty" },
|
|
{ 15, "GetOutputProperty" },
|
|
{ 16, "CreateMode" },
|
|
{ 17, "DestroyMode" },
|
|
{ 18, "AddOutputMode" },
|
|
{ 19, "DeleteOutputMode" },
|
|
{ 20, "GetCrtcInfo" },
|
|
{ 21, "SetCrtcConfig" },
|
|
{ 22, "GetCrtcGammaSize" },
|
|
{ 23, "GetCrtcGamma" },
|
|
{ 24, "SetCrtcGamma" },
|
|
{ 25, "GetScreenResourcesCurrent" },
|
|
{ 26, "SetCrtcTransform" },
|
|
{ 27, "GetCrtcTransform" },
|
|
{ 28, "GetPanning" },
|
|
{ 29, "SetPanning" },
|
|
{ 30, "SetOutputPrimary" },
|
|
{ 31, "GetOutputPrimary" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info randr_events[] = {
|
|
{ "randr-ScreenChangeNotify", randrScreenChangeNotify },
|
|
{ "randr-Notify", randrNotify },
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info randr_replies[] = {
|
|
{ 0, randrQueryVersion_Reply },
|
|
{ 2, randrSetScreenConfig_Reply },
|
|
{ 5, randrGetScreenInfo_Reply },
|
|
{ 6, randrGetScreenSizeRange_Reply },
|
|
{ 8, randrGetScreenResources_Reply },
|
|
{ 9, randrGetOutputInfo_Reply },
|
|
{ 10, randrListOutputProperties_Reply },
|
|
{ 11, randrQueryOutputProperty_Reply },
|
|
{ 15, randrGetOutputProperty_Reply },
|
|
{ 16, randrCreateMode_Reply },
|
|
{ 20, randrGetCrtcInfo_Reply },
|
|
{ 21, randrSetCrtcConfig_Reply },
|
|
{ 22, randrGetCrtcGammaSize_Reply },
|
|
{ 23, randrGetCrtcGamma_Reply },
|
|
{ 25, randrGetScreenResourcesCurrent_Reply },
|
|
{ 27, randrGetCrtcTransform_Reply },
|
|
{ 28, randrGetPanning_Reply },
|
|
{ 29, randrSetPanning_Reply },
|
|
{ 31, randrGetOutputPrimary_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_randr(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(randr_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, randr_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
randrQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
randrSetScreenConfig(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
randrSelectInput(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
randrGetScreenInfo(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
randrGetScreenSizeRange(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
randrSetScreenSize(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
randrGetScreenResources(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 9:
|
|
randrGetOutputInfo(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 10:
|
|
randrListOutputProperties(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 11:
|
|
randrQueryOutputProperty(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 12:
|
|
randrConfigureOutputProperty(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 13:
|
|
randrChangeOutputProperty(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 14:
|
|
randrDeleteOutputProperty(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 15:
|
|
randrGetOutputProperty(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 16:
|
|
randrCreateMode(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 17:
|
|
randrDestroyMode(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 18:
|
|
randrAddOutputMode(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 19:
|
|
randrDeleteOutputMode(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 20:
|
|
randrGetCrtcInfo(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 21:
|
|
randrSetCrtcConfig(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 22:
|
|
randrGetCrtcGammaSize(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 23:
|
|
randrGetCrtcGamma(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 24:
|
|
randrSetCrtcGamma(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 25:
|
|
randrGetScreenResourcesCurrent(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 26:
|
|
randrSetCrtcTransform(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 27:
|
|
randrGetCrtcTransform(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 28:
|
|
randrGetPanning(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 29:
|
|
randrSetPanning(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 30:
|
|
randrSetOutputPrimary(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 31:
|
|
randrGetOutputPrimary(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_randr(void)
|
|
{
|
|
set_handler("RANDR", dispatch_randr, randr_errors, randr_events, randr_replies);
|
|
}
|
|
|
|
static void struct_Range8(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_first;
|
|
int f_last;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Range8, tvb, *offsetp, 2, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_first = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Range8_first, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_last = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Range8_last, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static void struct_Range16(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_first;
|
|
int f_last;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Range16, tvb, *offsetp, 4, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_first = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Range16_first, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_last = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Range16_last, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static void struct_ExtRange(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_ExtRange, tvb, *offsetp, 6, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
struct_Range8(tvb, offsetp, t, little_endian, 1);
|
|
struct_Range16(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
}
|
|
|
|
static void struct_Range(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_client_started;
|
|
int f_client_died;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Range, tvb, *offsetp, 24, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
struct_Range8(tvb, offsetp, t, little_endian, 1);
|
|
struct_Range8(tvb, offsetp, t, little_endian, 1);
|
|
struct_ExtRange(tvb, offsetp, t, little_endian, 1);
|
|
struct_ExtRange(tvb, offsetp, t, little_endian, 1);
|
|
struct_Range8(tvb, offsetp, t, little_endian, 1);
|
|
struct_Range8(tvb, offsetp, t, little_endian, 1);
|
|
struct_Range8(tvb, offsetp, t, little_endian, 1);
|
|
f_client_started = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Range_client_started, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_client_died = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Range_client_died, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static int struct_size_ClientInfo(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_num_ranges;
|
|
f_num_ranges = VALUE32(tvb, *offsetp + size + 4);
|
|
size += f_num_ranges * 24;
|
|
return size + 8;
|
|
}
|
|
|
|
static void struct_ClientInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_client_resource;
|
|
int f_num_ranges;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_ClientInfo, tvb, *offsetp, struct_size_ClientInfo(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_client_resource = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ClientInfo_client_resource, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_ranges = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ClientInfo_num_ranges, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_Range(tvb, offsetp, t, little_endian, f_num_ranges);
|
|
}
|
|
}
|
|
|
|
static void recordQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
f_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_QueryVersion_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_QueryVersion_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
static void recordQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (record-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_QueryVersion_reply_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_QueryVersion_reply_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void recordCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
int f_element_header;
|
|
int f_num_client_specs;
|
|
int f_num_ranges;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_CreateContext_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_element_header = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_CreateContext_element_header, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
f_num_client_specs = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_CreateContext_num_client_specs, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_ranges = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_CreateContext_num_ranges, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_record_CreateContext_client_specs, hf_x11_record_CreateContext_client_specs_item, f_num_client_specs, little_endian);
|
|
length -= f_num_client_specs * 4;
|
|
struct_Range(tvb, offsetp, t, little_endian, f_num_ranges);
|
|
length -= f_num_ranges * 24;
|
|
}
|
|
|
|
static void recordRegisterClients(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
int f_element_header;
|
|
int f_num_client_specs;
|
|
int f_num_ranges;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_RegisterClients_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_element_header = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_RegisterClients_element_header, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
f_num_client_specs = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_RegisterClients_num_client_specs, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_ranges = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_RegisterClients_num_ranges, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_record_RegisterClients_client_specs, hf_x11_record_RegisterClients_client_specs_item, f_num_client_specs, little_endian);
|
|
length -= f_num_client_specs * 4;
|
|
struct_Range(tvb, offsetp, t, little_endian, f_num_ranges);
|
|
length -= f_num_ranges * 24;
|
|
}
|
|
|
|
static void recordUnregisterClients(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
int f_num_client_specs;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_UnregisterClients_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_client_specs = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_UnregisterClients_num_client_specs, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_record_UnregisterClients_client_specs, hf_x11_record_UnregisterClients_client_specs_item, f_num_client_specs, little_endian);
|
|
length -= f_num_client_specs * 4;
|
|
}
|
|
|
|
static void recordGetContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_GetContext_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void recordGetContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_enabled;
|
|
int f_element_header;
|
|
int f_num_intercepted_clients;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetContext");
|
|
|
|
REPLY(reply);
|
|
f_enabled = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_GetContext_reply_enabled, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (record-GetContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_element_header = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_GetContext_reply_element_header, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
f_num_intercepted_clients = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_GetContext_reply_num_intercepted_clients, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
struct_ClientInfo(tvb, offsetp, t, little_endian, f_num_intercepted_clients);
|
|
}
|
|
|
|
static void recordEnableContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_EnableContext_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void recordEnableContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_category;
|
|
int f_element_header;
|
|
int f_client_swapped;
|
|
int f_xid_base;
|
|
int f_server_time;
|
|
int f_rec_sequence_num;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-EnableContext");
|
|
|
|
REPLY(reply);
|
|
f_category = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_EnableContext_reply_category, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (record-EnableContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_element_header = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_EnableContext_reply_element_header, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_client_swapped = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_EnableContext_reply_client_swapped, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
f_xid_base = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_EnableContext_reply_xid_base, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_server_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_EnableContext_reply_server_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_rec_sequence_num = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_EnableContext_reply_rec_sequence_num, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
listOfByte(tvb, offsetp, t, hf_x11_record_EnableContext_reply_data, (f_length * 4), little_endian);
|
|
}
|
|
|
|
static void recordDisableContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_DisableContext_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void recordFreeContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_record_FreeContext_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static const value_string record_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "CreateContext" },
|
|
{ 2, "RegisterClients" },
|
|
{ 3, "UnregisterClients" },
|
|
{ 4, "GetContext" },
|
|
{ 5, "EnableContext" },
|
|
{ 6, "DisableContext" },
|
|
{ 7, "FreeContext" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info record_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info record_replies[] = {
|
|
{ 0, recordQueryVersion_Reply },
|
|
{ 4, recordGetContext_Reply },
|
|
{ 5, recordEnableContext_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_record(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(record_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, record_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
recordQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
recordCreateContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
recordRegisterClients(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
recordUnregisterClients(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
recordGetContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
recordEnableContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
recordDisableContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
recordFreeContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_record(void)
|
|
{
|
|
set_handler("RECORD", dispatch_record, record_errors, record_events, record_replies);
|
|
}
|
|
|
|
static void renderQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_client_major_version;
|
|
int f_client_minor_version;
|
|
f_client_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryVersion_client_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_client_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryVersion_client_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void renderQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (render-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryVersion_reply_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryVersion_reply_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
}
|
|
|
|
static void renderQueryPictFormats(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void renderQueryPictFormats_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_formats;
|
|
int f_num_screens;
|
|
int f_num_depths;
|
|
int f_num_visuals;
|
|
int f_num_subpixel;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryPictFormats");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (render-QueryPictFormats)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_formats = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_formats, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_screens = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_screens, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_depths = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_depths, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_visuals = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_visuals, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_subpixel = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryPictFormats_reply_num_subpixel, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
struct_PICTFORMINFO(tvb, offsetp, t, little_endian, f_num_formats);
|
|
struct_PICTSCREEN(tvb, offsetp, t, little_endian, f_num_screens);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_render_QueryPictFormats_reply_subpixels, hf_x11_render_QueryPictFormats_reply_subpixels_item, f_num_subpixel, little_endian);
|
|
}
|
|
|
|
static void renderQueryPictIndexValues(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_format;
|
|
f_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryPictIndexValues_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void renderQueryPictIndexValues_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_values;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryPictIndexValues");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (render-QueryPictIndexValues)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_values = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryPictIndexValues_reply_num_values, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
struct_INDEXVALUE(tvb, offsetp, t, little_endian, f_num_values);
|
|
}
|
|
|
|
static void renderCreatePicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_pid;
|
|
int f_drawable;
|
|
int f_format;
|
|
f_pid = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreatePicture_pid, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreatePicture_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreatePicture_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void renderChangePicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_picture;
|
|
f_picture = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_ChangePicture_picture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void renderSetPictureClipRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_picture;
|
|
int f_clip_x_origin;
|
|
int f_clip_y_origin;
|
|
f_picture = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_SetPictureClipRectangles_picture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_clip_x_origin = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_SetPictureClipRectangles_clip_x_origin, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_clip_y_origin = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_SetPictureClipRectangles_clip_y_origin, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
struct_RECTANGLE(tvb, offsetp, t, little_endian, (length - 12) / 8);
|
|
}
|
|
|
|
static void renderFreePicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_picture;
|
|
f_picture = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_FreePicture_picture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void renderComposite(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_op;
|
|
int f_src;
|
|
int f_mask;
|
|
int f_dst;
|
|
int f_src_x;
|
|
int f_src_y;
|
|
int f_mask_x;
|
|
int f_mask_y;
|
|
int f_dst_x;
|
|
int f_dst_y;
|
|
int f_width;
|
|
int f_height;
|
|
f_op = field8(tvb, offsetp, t, hf_x11_render_Composite_op, little_endian);
|
|
UNUSED(3);
|
|
f_src = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Composite_src, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mask = field32(tvb, offsetp, t, hf_x11_render_Composite_mask, little_endian);
|
|
f_dst = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Composite_dst, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_src_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Composite_src_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Composite_src_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mask_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Composite_mask_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mask_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Composite_mask_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_dst_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Composite_dst_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_dst_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Composite_dst_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Composite_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Composite_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void renderTrapezoids(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_op;
|
|
int f_src;
|
|
int f_dst;
|
|
int f_mask_format;
|
|
int f_src_x;
|
|
int f_src_y;
|
|
f_op = field8(tvb, offsetp, t, hf_x11_render_Trapezoids_op, little_endian);
|
|
UNUSED(3);
|
|
f_src = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Trapezoids_src, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dst = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Trapezoids_dst, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mask_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Trapezoids_mask_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_src_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Trapezoids_src_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Trapezoids_src_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
struct_TRAPEZOID(tvb, offsetp, t, little_endian, (length - 24) / 40);
|
|
}
|
|
|
|
static void renderTriangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_op;
|
|
int f_src;
|
|
int f_dst;
|
|
int f_mask_format;
|
|
int f_src_x;
|
|
int f_src_y;
|
|
f_op = field8(tvb, offsetp, t, hf_x11_render_Triangles_op, little_endian);
|
|
UNUSED(3);
|
|
f_src = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Triangles_src, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dst = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Triangles_dst, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mask_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Triangles_mask_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_src_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Triangles_src_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Triangles_src_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
struct_TRIANGLE(tvb, offsetp, t, little_endian, (length - 24) / 24);
|
|
}
|
|
|
|
static void renderTriStrip(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_op;
|
|
int f_src;
|
|
int f_dst;
|
|
int f_mask_format;
|
|
int f_src_x;
|
|
int f_src_y;
|
|
f_op = field8(tvb, offsetp, t, hf_x11_render_TriStrip_op, little_endian);
|
|
UNUSED(3);
|
|
f_src = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_TriStrip_src, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dst = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_TriStrip_dst, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mask_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_TriStrip_mask_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_src_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_TriStrip_src_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_TriStrip_src_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
struct_POINTFIX(tvb, offsetp, t, little_endian, (length - 24) / 8);
|
|
}
|
|
|
|
static void renderTriFan(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_op;
|
|
int f_src;
|
|
int f_dst;
|
|
int f_mask_format;
|
|
int f_src_x;
|
|
int f_src_y;
|
|
f_op = field8(tvb, offsetp, t, hf_x11_render_TriFan_op, little_endian);
|
|
UNUSED(3);
|
|
f_src = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_TriFan_src, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dst = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_TriFan_dst, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mask_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_TriFan_mask_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_src_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_TriFan_src_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_TriFan_src_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
struct_POINTFIX(tvb, offsetp, t, little_endian, (length - 24) / 8);
|
|
}
|
|
|
|
static void renderCreateGlyphSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_gsid;
|
|
int f_format;
|
|
f_gsid = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateGlyphSet_gsid, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateGlyphSet_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void renderReferenceGlyphSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_gsid;
|
|
int f_existing;
|
|
f_gsid = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_ReferenceGlyphSet_gsid, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_existing = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_ReferenceGlyphSet_existing, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void renderFreeGlyphSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_glyphset;
|
|
f_glyphset = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_FreeGlyphSet_glyphset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void renderAddGlyphs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_glyphset;
|
|
int f_glyphs_len;
|
|
f_glyphset = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_AddGlyphs_glyphset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_glyphs_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_AddGlyphs_glyphs_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_render_AddGlyphs_glyphids, hf_x11_render_AddGlyphs_glyphids_item, f_glyphs_len, little_endian);
|
|
length -= f_glyphs_len * 4;
|
|
struct_GLYPHINFO(tvb, offsetp, t, little_endian, f_glyphs_len);
|
|
length -= f_glyphs_len * 12;
|
|
listOfByte(tvb, offsetp, t, hf_x11_render_AddGlyphs_data, (length - 12) / 1, little_endian);
|
|
}
|
|
|
|
static void renderFreeGlyphs(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_glyphset;
|
|
f_glyphset = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_FreeGlyphs_glyphset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_render_FreeGlyphs_glyphs, hf_x11_render_FreeGlyphs_glyphs_item, (length - 8) / 4, little_endian);
|
|
}
|
|
|
|
static void renderCompositeGlyphs8(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_op;
|
|
int f_src;
|
|
int f_dst;
|
|
int f_mask_format;
|
|
int f_glyphset;
|
|
int f_src_x;
|
|
int f_src_y;
|
|
f_op = field8(tvb, offsetp, t, hf_x11_render_CompositeGlyphs8_op, little_endian);
|
|
UNUSED(3);
|
|
f_src = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_src, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dst = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_dst, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mask_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_mask_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_glyphset = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_glyphset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_src_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_src_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_src_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfByte(tvb, offsetp, t, hf_x11_render_CompositeGlyphs8_glyphcmds, (length - 28) / 1, little_endian);
|
|
}
|
|
|
|
static void renderCompositeGlyphs16(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_op;
|
|
int f_src;
|
|
int f_dst;
|
|
int f_mask_format;
|
|
int f_glyphset;
|
|
int f_src_x;
|
|
int f_src_y;
|
|
f_op = field8(tvb, offsetp, t, hf_x11_render_CompositeGlyphs16_op, little_endian);
|
|
UNUSED(3);
|
|
f_src = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_src, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dst = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_dst, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mask_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_mask_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_glyphset = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_glyphset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_src_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_src_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_src_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfByte(tvb, offsetp, t, hf_x11_render_CompositeGlyphs16_glyphcmds, (length - 28) / 1, little_endian);
|
|
}
|
|
|
|
static void renderCompositeGlyphs32(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_op;
|
|
int f_src;
|
|
int f_dst;
|
|
int f_mask_format;
|
|
int f_glyphset;
|
|
int f_src_x;
|
|
int f_src_y;
|
|
f_op = field8(tvb, offsetp, t, hf_x11_render_CompositeGlyphs32_op, little_endian);
|
|
UNUSED(3);
|
|
f_src = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_src, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dst = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_dst, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mask_format = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_mask_format, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_glyphset = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_glyphset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_src_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_src_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_src_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfByte(tvb, offsetp, t, hf_x11_render_CompositeGlyphs32_glyphcmds, (length - 28) / 1, little_endian);
|
|
}
|
|
|
|
static void renderFillRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_op;
|
|
int f_dst;
|
|
f_op = field8(tvb, offsetp, t, hf_x11_render_FillRectangles_op, little_endian);
|
|
UNUSED(3);
|
|
f_dst = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_FillRectangles_dst, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_COLOR(tvb, offsetp, t, little_endian, 1);
|
|
struct_RECTANGLE(tvb, offsetp, t, little_endian, (length - 20) / 8);
|
|
}
|
|
|
|
static void renderCreateCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_cid;
|
|
int f_source;
|
|
int f_x;
|
|
int f_y;
|
|
f_cid = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateCursor_cid, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_source = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateCursor_source, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateCursor_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateCursor_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void renderSetPictureTransform(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_picture;
|
|
f_picture = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_SetPictureTransform_picture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_TRANSFORM(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
|
|
static void renderQueryFilters(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryFilters_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void renderQueryFilters_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_aliases;
|
|
int f_num_filters;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryFilters");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (render-QueryFilters)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_aliases = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryFilters_reply_num_aliases, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_filters = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_QueryFilters_reply_num_filters, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
listOfCard16(tvb, offsetp, t, hf_x11_render_QueryFilters_reply_aliases, hf_x11_render_QueryFilters_reply_aliases_item, f_num_aliases, little_endian);
|
|
struct_STR(tvb, offsetp, t, little_endian, f_num_filters);
|
|
}
|
|
|
|
static void renderSetPictureFilter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_picture;
|
|
int f_filter_len;
|
|
f_picture = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_SetPictureFilter_picture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_filter_len = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_SetPictureFilter_filter_len, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
listOfByte(tvb, offsetp, t, hf_x11_render_SetPictureFilter_filter, f_filter_len, little_endian);
|
|
length -= f_filter_len * 1;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_render_SetPictureFilter_values, hf_x11_render_SetPictureFilter_values_item, (length - 12) / 4, little_endian);
|
|
}
|
|
|
|
static void renderCreateAnimCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_cid;
|
|
f_cid = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateAnimCursor_cid, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_ANIMCURSORELT(tvb, offsetp, t, little_endian, (length - 8) / 8);
|
|
}
|
|
|
|
static void renderAddTraps(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_picture;
|
|
int f_x_off;
|
|
int f_y_off;
|
|
f_picture = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_AddTraps_picture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x_off = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_AddTraps_x_off, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y_off = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_AddTraps_y_off, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
struct_TRAP(tvb, offsetp, t, little_endian, (length - 12) / 24);
|
|
}
|
|
|
|
static void renderCreateSolidFill(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_picture;
|
|
f_picture = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateSolidFill_picture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_COLOR(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
|
|
static void renderCreateLinearGradient(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_picture;
|
|
int f_num_stops;
|
|
f_picture = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateLinearGradient_picture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_POINTFIX(tvb, offsetp, t, little_endian, 1);
|
|
struct_POINTFIX(tvb, offsetp, t, little_endian, 1);
|
|
f_num_stops = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateLinearGradient_num_stops, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_render_CreateLinearGradient_stops, hf_x11_render_CreateLinearGradient_stops_item, f_num_stops, little_endian);
|
|
length -= f_num_stops * 4;
|
|
struct_COLOR(tvb, offsetp, t, little_endian, f_num_stops);
|
|
length -= f_num_stops * 8;
|
|
}
|
|
|
|
static void renderCreateRadialGradient(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_picture;
|
|
int f_inner_radius;
|
|
int f_outer_radius;
|
|
int f_num_stops;
|
|
f_picture = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_picture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_POINTFIX(tvb, offsetp, t, little_endian, 1);
|
|
struct_POINTFIX(tvb, offsetp, t, little_endian, 1);
|
|
f_inner_radius = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_inner_radius, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_outer_radius = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_outer_radius, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_stops = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateRadialGradient_num_stops, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_render_CreateRadialGradient_stops, hf_x11_render_CreateRadialGradient_stops_item, f_num_stops, little_endian);
|
|
length -= f_num_stops * 4;
|
|
struct_COLOR(tvb, offsetp, t, little_endian, f_num_stops);
|
|
length -= f_num_stops * 8;
|
|
}
|
|
|
|
static void renderCreateConicalGradient(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_picture;
|
|
int f_angle;
|
|
int f_num_stops;
|
|
f_picture = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateConicalGradient_picture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_POINTFIX(tvb, offsetp, t, little_endian, 1);
|
|
f_angle = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateConicalGradient_angle, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_stops = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CreateConicalGradient_num_stops, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_render_CreateConicalGradient_stops, hf_x11_render_CreateConicalGradient_stops_item, f_num_stops, little_endian);
|
|
length -= f_num_stops * 4;
|
|
struct_COLOR(tvb, offsetp, t, little_endian, f_num_stops);
|
|
length -= f_num_stops * 8;
|
|
}
|
|
static const value_string render_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "QueryPictFormats" },
|
|
{ 2, "QueryPictIndexValues" },
|
|
{ 4, "CreatePicture" },
|
|
{ 5, "ChangePicture" },
|
|
{ 6, "SetPictureClipRectangles" },
|
|
{ 7, "FreePicture" },
|
|
{ 8, "Composite" },
|
|
{ 10, "Trapezoids" },
|
|
{ 11, "Triangles" },
|
|
{ 12, "TriStrip" },
|
|
{ 13, "TriFan" },
|
|
{ 17, "CreateGlyphSet" },
|
|
{ 18, "ReferenceGlyphSet" },
|
|
{ 19, "FreeGlyphSet" },
|
|
{ 20, "AddGlyphs" },
|
|
{ 22, "FreeGlyphs" },
|
|
{ 23, "CompositeGlyphs8" },
|
|
{ 24, "CompositeGlyphs16" },
|
|
{ 25, "CompositeGlyphs32" },
|
|
{ 26, "FillRectangles" },
|
|
{ 27, "CreateCursor" },
|
|
{ 28, "SetPictureTransform" },
|
|
{ 29, "QueryFilters" },
|
|
{ 30, "SetPictureFilter" },
|
|
{ 31, "CreateAnimCursor" },
|
|
{ 32, "AddTraps" },
|
|
{ 33, "CreateSolidFill" },
|
|
{ 34, "CreateLinearGradient" },
|
|
{ 35, "CreateRadialGradient" },
|
|
{ 36, "CreateConicalGradient" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info render_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info render_replies[] = {
|
|
{ 0, renderQueryVersion_Reply },
|
|
{ 1, renderQueryPictFormats_Reply },
|
|
{ 2, renderQueryPictIndexValues_Reply },
|
|
{ 29, renderQueryFilters_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_render(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(render_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, render_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
renderQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
renderQueryPictFormats(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
renderQueryPictIndexValues(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
renderCreatePicture(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
renderChangePicture(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
renderSetPictureClipRectangles(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
renderFreePicture(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
renderComposite(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 10:
|
|
renderTrapezoids(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 11:
|
|
renderTriangles(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 12:
|
|
renderTriStrip(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 13:
|
|
renderTriFan(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 17:
|
|
renderCreateGlyphSet(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 18:
|
|
renderReferenceGlyphSet(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 19:
|
|
renderFreeGlyphSet(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 20:
|
|
renderAddGlyphs(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 22:
|
|
renderFreeGlyphs(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 23:
|
|
renderCompositeGlyphs8(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 24:
|
|
renderCompositeGlyphs16(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 25:
|
|
renderCompositeGlyphs32(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 26:
|
|
renderFillRectangles(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 27:
|
|
renderCreateCursor(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 28:
|
|
renderSetPictureTransform(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 29:
|
|
renderQueryFilters(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 30:
|
|
renderSetPictureFilter(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 31:
|
|
renderCreateAnimCursor(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 32:
|
|
renderAddTraps(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 33:
|
|
renderCreateSolidFill(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 34:
|
|
renderCreateLinearGradient(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 35:
|
|
renderCreateRadialGradient(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 36:
|
|
renderCreateConicalGradient(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_render(void)
|
|
{
|
|
set_handler("RENDER", dispatch_render, render_errors, render_events, render_replies);
|
|
}
|
|
|
|
static void struct_Client(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_resource_base;
|
|
int f_resource_mask;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Client, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_resource_base = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Client_resource_base, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_resource_mask = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Client_resource_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static void struct_Type(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_resource_type;
|
|
int f_count;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Type, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_resource_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Type_resource_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_count = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Type_count, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static void resQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_client_major;
|
|
int f_client_minor;
|
|
f_client_major = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_res_QueryVersion_client_major, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_client_minor = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_res_QueryVersion_client_minor, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void resQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_server_major;
|
|
int f_server_minor;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (res-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_server_major = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_res_QueryVersion_reply_server_major, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_server_minor = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_res_QueryVersion_reply_server_minor, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void resQueryClients(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void resQueryClients_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_clients;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClients");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (res-QueryClients)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_clients = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_res_QueryClients_reply_num_clients, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
struct_Client(tvb, offsetp, t, little_endian, f_num_clients);
|
|
}
|
|
|
|
static void resQueryClientResources(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_xid;
|
|
f_xid = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_res_QueryClientResources_xid, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void resQueryClientResources_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_types;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClientResources");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (res-QueryClientResources)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_types = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_res_QueryClientResources_reply_num_types, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
struct_Type(tvb, offsetp, t, little_endian, f_num_types);
|
|
}
|
|
|
|
static void resQueryClientPixmapBytes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_xid;
|
|
f_xid = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_res_QueryClientPixmapBytes_xid, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void resQueryClientPixmapBytes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_bytes;
|
|
int f_bytes_overflow;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryClientPixmapBytes");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (res-QueryClientPixmapBytes)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_bytes = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_res_QueryClientPixmapBytes_reply_bytes, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_bytes_overflow = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_res_QueryClientPixmapBytes_reply_bytes_overflow, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static const value_string res_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "QueryClients" },
|
|
{ 2, "QueryClientResources" },
|
|
{ 3, "QueryClientPixmapBytes" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info res_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info res_replies[] = {
|
|
{ 0, resQueryVersion_Reply },
|
|
{ 1, resQueryClients_Reply },
|
|
{ 2, resQueryClientResources_Reply },
|
|
{ 3, resQueryClientPixmapBytes_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_res(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(res_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, res_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
resQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
resQueryClients(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
resQueryClientResources(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
resQueryClientPixmapBytes(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_res(void)
|
|
{
|
|
set_handler("X-Resource", dispatch_res, res_errors, res_events, res_replies);
|
|
}
|
|
|
|
static void screensaverQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_client_major_version;
|
|
int f_client_minor_version;
|
|
f_client_major_version = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_client_major_version, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_client_minor_version = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_client_minor_version, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
}
|
|
static void screensaverQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_server_major_version;
|
|
int f_server_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (screensaver-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_server_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_reply_server_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_server_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_QueryVersion_reply_server_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(20);
|
|
}
|
|
|
|
static void screensaverQueryInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void screensaverQueryInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_state;
|
|
int f_saver_window;
|
|
int f_ms_until_server;
|
|
int f_ms_since_user_input;
|
|
int f_event_mask;
|
|
int f_kind;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryInfo");
|
|
|
|
REPLY(reply);
|
|
f_state = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_state, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (screensaver-QueryInfo)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_saver_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_saver_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_ms_until_server = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_ms_until_server, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_ms_since_user_input = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_ms_since_user_input, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_event_mask = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_event_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_kind = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_QueryInfo_reply_kind, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(7);
|
|
}
|
|
|
|
static void screensaverSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
int f_event_mask;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_SelectInput_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_event_mask = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_SelectInput_event_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void screensaverSetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
int f_x;
|
|
int f_y;
|
|
int f_width;
|
|
int f_height;
|
|
int f_border_width;
|
|
int f_class;
|
|
int f_depth;
|
|
int f_visual;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_border_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_border_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_class = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_class, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_depth = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_depth, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_visual = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_SetAttributes_visual, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void screensaverUnsetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_UnsetAttributes_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void screensaverSuspend(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_suspend;
|
|
f_suspend = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_Suspend_suspend, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void screensaverNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_code;
|
|
int f_state;
|
|
int f_sequence_number;
|
|
int f_time;
|
|
int f_root;
|
|
int f_window;
|
|
int f_kind;
|
|
int f_forced;
|
|
f_code = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_Notify_code, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
CARD16(event_sequencenumber);
|
|
f_state = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_Notify_state, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_Notify_sequence_number, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_Notify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_root = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_Notify_root, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_Notify_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_kind = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_Notify_kind, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_forced = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_screensaver_Notify_forced, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(14);
|
|
}
|
|
static const value_string screensaver_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "QueryInfo" },
|
|
{ 2, "SelectInput" },
|
|
{ 3, "SetAttributes" },
|
|
{ 4, "UnsetAttributes" },
|
|
{ 5, "Suspend" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info screensaver_events[] = {
|
|
{ "screensaver-Notify", screensaverNotify },
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info screensaver_replies[] = {
|
|
{ 0, screensaverQueryVersion_Reply },
|
|
{ 1, screensaverQueryInfo_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_screensaver(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(screensaver_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, screensaver_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
screensaverQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
screensaverQueryInfo(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
screensaverSelectInput(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
screensaverSetAttributes(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
screensaverUnsetAttributes(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
screensaverSuspend(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_screensaver(void)
|
|
{
|
|
set_handler("MIT-SCREEN-SAVER", dispatch_screensaver, screensaver_errors, screensaver_events, screensaver_replies);
|
|
}
|
|
|
|
static void shapeNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_shape_kind;
|
|
int f_affected_window;
|
|
int f_extents_x;
|
|
int f_extents_y;
|
|
int f_extents_width;
|
|
int f_extents_height;
|
|
int f_server_time;
|
|
int f_shaped;
|
|
f_shape_kind = field8(tvb, offsetp, t, hf_x11_shape_Notify_shape_kind, little_endian);
|
|
CARD16(event_sequencenumber);
|
|
f_affected_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Notify_affected_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_extents_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Notify_extents_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_extents_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Notify_extents_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_extents_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Notify_extents_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_extents_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Notify_extents_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_server_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Notify_server_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_shaped = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Notify_shaped, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(11);
|
|
}
|
|
|
|
static void shapeQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void shapeQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (shape-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_QueryVersion_reply_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_QueryVersion_reply_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void shapeRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_operation;
|
|
int f_destination_kind;
|
|
int f_ordering;
|
|
int f_destination_window;
|
|
int f_x_offset;
|
|
int f_y_offset;
|
|
f_operation = field8(tvb, offsetp, t, hf_x11_shape_Rectangles_operation, little_endian);
|
|
f_destination_kind = field8(tvb, offsetp, t, hf_x11_shape_Rectangles_destination_kind, little_endian);
|
|
f_ordering = field8(tvb, offsetp, t, hf_x11_shape_Rectangles_ordering, little_endian);
|
|
UNUSED(1);
|
|
f_destination_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Rectangles_destination_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x_offset = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Rectangles_x_offset, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y_offset = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Rectangles_y_offset, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
struct_RECTANGLE(tvb, offsetp, t, little_endian, (length - 16) / 8);
|
|
}
|
|
|
|
static void shapeMask(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_operation;
|
|
int f_destination_kind;
|
|
int f_destination_window;
|
|
int f_x_offset;
|
|
int f_y_offset;
|
|
int f_source_bitmap;
|
|
f_operation = field8(tvb, offsetp, t, hf_x11_shape_Mask_operation, little_endian);
|
|
f_destination_kind = field8(tvb, offsetp, t, hf_x11_shape_Mask_destination_kind, little_endian);
|
|
UNUSED(2);
|
|
f_destination_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Mask_destination_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x_offset = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Mask_x_offset, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y_offset = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Mask_y_offset, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_source_bitmap = field32(tvb, offsetp, t, hf_x11_shape_Mask_source_bitmap, little_endian);
|
|
}
|
|
|
|
static void shapeCombine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_operation;
|
|
int f_destination_kind;
|
|
int f_source_kind;
|
|
int f_destination_window;
|
|
int f_x_offset;
|
|
int f_y_offset;
|
|
int f_source_window;
|
|
f_operation = field8(tvb, offsetp, t, hf_x11_shape_Combine_operation, little_endian);
|
|
f_destination_kind = field8(tvb, offsetp, t, hf_x11_shape_Combine_destination_kind, little_endian);
|
|
f_source_kind = field8(tvb, offsetp, t, hf_x11_shape_Combine_source_kind, little_endian);
|
|
UNUSED(1);
|
|
f_destination_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Combine_destination_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x_offset = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Combine_x_offset, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y_offset = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Combine_y_offset, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_source_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Combine_source_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void shapeOffset(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_destination_kind;
|
|
int f_destination_window;
|
|
int f_x_offset;
|
|
int f_y_offset;
|
|
f_destination_kind = field8(tvb, offsetp, t, hf_x11_shape_Offset_destination_kind, little_endian);
|
|
UNUSED(3);
|
|
f_destination_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Offset_destination_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x_offset = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Offset_x_offset, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y_offset = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Offset_y_offset, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void shapeQueryExtents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_destination_window;
|
|
f_destination_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_QueryExtents_destination_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void shapeQueryExtents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_bounding_shaped;
|
|
int f_clip_shaped;
|
|
int f_bounding_shape_extents_x;
|
|
int f_bounding_shape_extents_y;
|
|
int f_bounding_shape_extents_width;
|
|
int f_bounding_shape_extents_height;
|
|
int f_clip_shape_extents_x;
|
|
int f_clip_shape_extents_y;
|
|
int f_clip_shape_extents_width;
|
|
int f_clip_shape_extents_height;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryExtents");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (shape-QueryExtents)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_bounding_shaped = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shaped, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_clip_shaped = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shaped, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
f_bounding_shape_extents_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_bounding_shape_extents_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_bounding_shape_extents_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_bounding_shape_extents_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_bounding_shape_extents_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_clip_shape_extents_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_clip_shape_extents_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_clip_shape_extents_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_clip_shape_extents_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_QueryExtents_reply_clip_shape_extents_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void shapeSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_destination_window;
|
|
int f_enable;
|
|
f_destination_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_SelectInput_destination_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_enable = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_SelectInput_enable, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void shapeInputSelected(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_destination_window;
|
|
f_destination_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_InputSelected_destination_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void shapeInputSelected_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_enabled;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-InputSelected");
|
|
|
|
REPLY(reply);
|
|
f_enabled = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_InputSelected_reply_enabled, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (shape-InputSelected)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void shapeGetRectangles(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_source_kind;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_GetRectangles_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_source_kind = field8(tvb, offsetp, t, hf_x11_shape_GetRectangles_source_kind, little_endian);
|
|
UNUSED(3);
|
|
}
|
|
static void shapeGetRectangles_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_ordering;
|
|
int f_rectangles_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetRectangles");
|
|
|
|
REPLY(reply);
|
|
f_ordering = field8(tvb, offsetp, t, hf_x11_shape_GetRectangles_reply_ordering, little_endian);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (shape-GetRectangles)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_rectangles_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_GetRectangles_reply_rectangles_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
struct_RECTANGLE(tvb, offsetp, t, little_endian, f_rectangles_len);
|
|
}
|
|
static const value_string shape_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "Rectangles" },
|
|
{ 2, "Mask" },
|
|
{ 3, "Combine" },
|
|
{ 4, "Offset" },
|
|
{ 5, "QueryExtents" },
|
|
{ 6, "SelectInput" },
|
|
{ 7, "InputSelected" },
|
|
{ 8, "GetRectangles" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info shape_events[] = {
|
|
{ "shape-Notify", shapeNotify },
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info shape_replies[] = {
|
|
{ 0, shapeQueryVersion_Reply },
|
|
{ 5, shapeQueryExtents_Reply },
|
|
{ 7, shapeInputSelected_Reply },
|
|
{ 8, shapeGetRectangles_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_shape(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(shape_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, shape_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
shapeQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
shapeRectangles(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
shapeMask(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
shapeCombine(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
shapeOffset(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
shapeQueryExtents(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
shapeSelectInput(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
shapeInputSelected(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
shapeGetRectangles(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_shape(void)
|
|
{
|
|
set_handler("SHAPE", dispatch_shape, shape_errors, shape_events, shape_replies);
|
|
}
|
|
|
|
static void shmCompletion(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_drawable;
|
|
int f_minor_event;
|
|
int f_major_event;
|
|
int f_shmseg;
|
|
int f_offset;
|
|
UNUSED(1);
|
|
CARD16(event_sequencenumber);
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_Completion_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor_event = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_Completion_minor_event, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_major_event = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_Completion_major_event, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_shmseg = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_Completion_shmseg, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_offset = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_Completion_offset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void shmQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void shmQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_shared_pixmaps;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
int f_uid;
|
|
int f_gid;
|
|
int f_pixmap_format;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
f_shared_pixmaps = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_shared_pixmaps, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (shm-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_uid = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_uid, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_gid = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_gid, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_pixmap_format = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_QueryVersion_reply_pixmap_format, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(15);
|
|
}
|
|
|
|
static void shmAttach(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_shmseg;
|
|
int f_shmid;
|
|
int f_read_only;
|
|
f_shmseg = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_Attach_shmseg, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_shmid = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_Attach_shmid, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_read_only = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_Attach_read_only, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void shmDetach(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_shmseg;
|
|
f_shmseg = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_Detach_shmseg, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void shmPutImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
int f_gc;
|
|
int f_total_width;
|
|
int f_total_height;
|
|
int f_src_x;
|
|
int f_src_y;
|
|
int f_src_width;
|
|
int f_src_height;
|
|
int f_dst_x;
|
|
int f_dst_y;
|
|
int f_depth;
|
|
int f_format;
|
|
int f_send_event;
|
|
int f_shmseg;
|
|
int f_offset;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_gc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_gc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_total_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_total_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_total_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_total_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_src_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_src_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_src_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_src_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_dst_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_dst_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_dst_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_dst_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_depth = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_depth, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_format = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_format, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_send_event = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_send_event, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_shmseg = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_shmseg, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_offset = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_PutImage_offset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void shmGetImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
int f_x;
|
|
int f_y;
|
|
int f_width;
|
|
int f_height;
|
|
int f_plane_mask;
|
|
int f_format;
|
|
int f_shmseg;
|
|
int f_offset;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_GetImage_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_GetImage_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_GetImage_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_GetImage_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_GetImage_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_plane_mask = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_GetImage_plane_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_format = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_GetImage_format, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
f_shmseg = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_GetImage_shmseg, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_offset = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_GetImage_offset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void shmGetImage_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_depth;
|
|
int f_visual;
|
|
int f_size;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetImage");
|
|
|
|
REPLY(reply);
|
|
f_depth = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_GetImage_reply_depth, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (shm-GetImage)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_visual = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_GetImage_reply_visual, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_size = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_GetImage_reply_size, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void shmCreatePixmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_pid;
|
|
int f_drawable;
|
|
int f_width;
|
|
int f_height;
|
|
int f_depth;
|
|
int f_shmseg;
|
|
int f_offset;
|
|
f_pid = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_CreatePixmap_pid, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_CreatePixmap_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_CreatePixmap_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_CreatePixmap_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_depth = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_CreatePixmap_depth, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
f_shmseg = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_CreatePixmap_shmseg, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_offset = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shm_CreatePixmap_offset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static const value_string shm_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "Attach" },
|
|
{ 2, "Detach" },
|
|
{ 3, "PutImage" },
|
|
{ 4, "GetImage" },
|
|
{ 5, "CreatePixmap" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info shm_events[] = {
|
|
{ "shm-Completion", shmCompletion },
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info shm_replies[] = {
|
|
{ 0, shmQueryVersion_Reply },
|
|
{ 4, shmGetImage_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_shm(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(shm_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, shm_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
shmQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
shmAttach(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
shmDetach(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
shmPutImage(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
shmGetImage(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
shmCreatePixmap(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_shm(void)
|
|
{
|
|
set_handler("MIT-SHM", dispatch_shm, shm_errors, shm_events, shm_replies);
|
|
}
|
|
|
|
static void struct_INT64(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_hi;
|
|
int f_lo;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_INT64, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_hi = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_INT64_hi, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_lo = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_INT64_lo, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static int struct_size_SYSTEMCOUNTER(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_name_len;
|
|
f_name_len = VALUE16(tvb, *offsetp + size + 12);
|
|
size += f_name_len * 1;
|
|
return size + 14;
|
|
}
|
|
|
|
static void struct_SYSTEMCOUNTER(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_counter;
|
|
int f_name_len;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SYSTEMCOUNTER, tvb, *offsetp, struct_size_SYSTEMCOUNTER(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_counter = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SYSTEMCOUNTER_counter, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_INT64(tvb, offsetp, t, little_endian, 1);
|
|
f_name_len = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SYSTEMCOUNTER_name_len, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_SYSTEMCOUNTER_name, f_name_len, little_endian);
|
|
}
|
|
}
|
|
|
|
static void struct_TRIGGER(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_counter;
|
|
int f_wait_type;
|
|
int f_test_type;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_TRIGGER, tvb, *offsetp, 20, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_counter = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRIGGER_counter, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_wait_type = field32(tvb, offsetp, t, hf_x11_struct_TRIGGER_wait_type, little_endian);
|
|
struct_INT64(tvb, offsetp, t, little_endian, 1);
|
|
f_test_type = field32(tvb, offsetp, t, hf_x11_struct_TRIGGER_test_type, little_endian);
|
|
}
|
|
}
|
|
|
|
static void struct_WAITCONDITION(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_WAITCONDITION, tvb, *offsetp, 28, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
struct_TRIGGER(tvb, offsetp, t, little_endian, 1);
|
|
struct_INT64(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
}
|
|
|
|
static void syncInitialize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_desired_major_version;
|
|
int f_desired_minor_version;
|
|
f_desired_major_version = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_Initialize_desired_major_version, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_desired_minor_version = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_Initialize_desired_minor_version, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void syncInitialize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-Initialize");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (sync-Initialize)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_Initialize_reply_major_version, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_minor_version = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_Initialize_reply_minor_version, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(22);
|
|
}
|
|
|
|
static void syncListSystemCounters(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void syncListSystemCounters_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_counters_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSystemCounters");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (sync-ListSystemCounters)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_counters_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_ListSystemCounters_reply_counters_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
struct_SYSTEMCOUNTER(tvb, offsetp, t, little_endian, f_counters_len);
|
|
}
|
|
|
|
static void syncCreateCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_id;
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_CreateCounter_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_INT64(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
|
|
static void syncDestroyCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_counter;
|
|
f_counter = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_DestroyCounter_counter, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void syncQueryCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_counter;
|
|
f_counter = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_QueryCounter_counter, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void syncQueryCounter_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryCounter");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (sync-QueryCounter)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_INT64(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
|
|
static void syncAwait(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
struct_WAITCONDITION(tvb, offsetp, t, little_endian, (length - 4) / 28);
|
|
}
|
|
|
|
static void syncChangeCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_counter;
|
|
f_counter = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_ChangeCounter_counter, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_INT64(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
|
|
static void syncSetCounter(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_counter;
|
|
f_counter = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_SetCounter_counter, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_INT64(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
|
|
static void syncCreateAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_id;
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_CreateAlarm_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void syncChangeAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_id;
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_ChangeAlarm_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void syncDestroyAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_alarm;
|
|
f_alarm = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_DestroyAlarm_alarm, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void syncQueryAlarm(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_alarm;
|
|
f_alarm = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_QueryAlarm_alarm, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void syncQueryAlarm_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_events;
|
|
int f_state;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryAlarm");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (sync-QueryAlarm)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_TRIGGER(tvb, offsetp, t, little_endian, 1);
|
|
struct_INT64(tvb, offsetp, t, little_endian, 1);
|
|
f_events = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_QueryAlarm_reply_events, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_state = field8(tvb, offsetp, t, hf_x11_sync_QueryAlarm_reply_state, little_endian);
|
|
UNUSED(2);
|
|
}
|
|
|
|
static void syncSetPriority(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_id;
|
|
int f_priority;
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_SetPriority_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_priority = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_SetPriority_priority, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void syncGetPriority(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_id;
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_GetPriority_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void syncGetPriority_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_priority;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPriority");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (sync-GetPriority)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_priority = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_GetPriority_reply_priority, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void syncCounterNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_kind;
|
|
int f_counter;
|
|
int f_timestamp;
|
|
int f_count;
|
|
int f_destroyed;
|
|
f_kind = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_CounterNotify_kind, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
CARD16(event_sequencenumber);
|
|
f_counter = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_CounterNotify_counter, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_INT64(tvb, offsetp, t, little_endian, 1);
|
|
struct_INT64(tvb, offsetp, t, little_endian, 1);
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_CounterNotify_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_count = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_CounterNotify_count, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_destroyed = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_CounterNotify_destroyed, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
}
|
|
|
|
static void syncAlarmNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_kind;
|
|
int f_alarm;
|
|
int f_timestamp;
|
|
int f_state;
|
|
f_kind = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_AlarmNotify_kind, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
CARD16(event_sequencenumber);
|
|
f_alarm = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_AlarmNotify_alarm, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_INT64(tvb, offsetp, t, little_endian, 1);
|
|
struct_INT64(tvb, offsetp, t, little_endian, 1);
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_AlarmNotify_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_state = field8(tvb, offsetp, t, hf_x11_sync_AlarmNotify_state, little_endian);
|
|
UNUSED(3);
|
|
}
|
|
static const value_string sync_extension_minor[] = {
|
|
{ 0, "Initialize" },
|
|
{ 1, "ListSystemCounters" },
|
|
{ 2, "CreateCounter" },
|
|
{ 3, "SetCounter" },
|
|
{ 4, "ChangeCounter" },
|
|
{ 5, "QueryCounter" },
|
|
{ 6, "DestroyCounter" },
|
|
{ 7, "Await" },
|
|
{ 8, "CreateAlarm" },
|
|
{ 9, "ChangeAlarm" },
|
|
{ 10, "QueryAlarm" },
|
|
{ 11, "DestroyAlarm" },
|
|
{ 12, "SetPriority" },
|
|
{ 13, "GetPriority" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info sync_events[] = {
|
|
{ "sync-CounterNotify", syncCounterNotify },
|
|
{ "sync-AlarmNotify", syncAlarmNotify },
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info sync_replies[] = {
|
|
{ 0, syncInitialize_Reply },
|
|
{ 1, syncListSystemCounters_Reply },
|
|
{ 5, syncQueryCounter_Reply },
|
|
{ 10, syncQueryAlarm_Reply },
|
|
{ 13, syncGetPriority_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_sync(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(sync_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, sync_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
syncInitialize(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
syncListSystemCounters(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
syncCreateCounter(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
syncSetCounter(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
syncChangeCounter(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
syncQueryCounter(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
syncDestroyCounter(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
syncAwait(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
syncCreateAlarm(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 9:
|
|
syncChangeAlarm(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 10:
|
|
syncQueryAlarm(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 11:
|
|
syncDestroyAlarm(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 12:
|
|
syncSetPriority(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 13:
|
|
syncGetPriority(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_sync(void)
|
|
{
|
|
set_handler("SYNC", dispatch_sync, sync_errors, sync_events, sync_replies);
|
|
}
|
|
|
|
static void xc_miscGetVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_client_major_version;
|
|
int f_client_minor_version;
|
|
f_client_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_client_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_client_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_client_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
static void xc_miscGetVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_server_major_version;
|
|
int f_server_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xc_misc-GetVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_server_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_reply_server_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_server_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xc_misc_GetVersion_reply_server_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xc_miscGetXIDRange(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xc_miscGetXIDRange_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_start_id;
|
|
int f_count;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetXIDRange");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xc_misc-GetXIDRange)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_start_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xc_misc_GetXIDRange_reply_start_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_count = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xc_misc_GetXIDRange_reply_count, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xc_miscGetXIDList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_count;
|
|
f_count = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xc_misc_GetXIDList_count, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xc_miscGetXIDList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_ids_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetXIDList");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xc_misc-GetXIDList)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_ids_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xc_misc_GetXIDList_reply_ids_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xc_misc_GetXIDList_reply_ids, hf_x11_xc_misc_GetXIDList_reply_ids_item, f_ids_len, little_endian);
|
|
}
|
|
static const value_string xc_misc_extension_minor[] = {
|
|
{ 0, "GetVersion" },
|
|
{ 1, "GetXIDRange" },
|
|
{ 2, "GetXIDList" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info xc_misc_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info xc_misc_replies[] = {
|
|
{ 0, xc_miscGetVersion_Reply },
|
|
{ 1, xc_miscGetXIDRange_Reply },
|
|
{ 2, xc_miscGetXIDList_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_xc_misc(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(xc_misc_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, xc_misc_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
xc_miscGetVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
xc_miscGetXIDRange(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
xc_miscGetXIDList(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_xc_misc(void)
|
|
{
|
|
set_handler("XC-MISC", dispatch_xc_misc, xc_misc_errors, xc_misc_events, xc_misc_replies);
|
|
}
|
|
|
|
static void xevieQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_client_major_version;
|
|
int f_client_minor_version;
|
|
f_client_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xevie_QueryVersion_client_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_client_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xevie_QueryVersion_client_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
static void xevieQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_server_major_version;
|
|
int f_server_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xevie-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_server_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xevie_QueryVersion_reply_server_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_server_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xevie_QueryVersion_reply_server_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(20);
|
|
}
|
|
|
|
static void xevieStart(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xevie_Start_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xevieStart_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-Start");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xevie-Start)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(24);
|
|
}
|
|
|
|
static void xevieEnd(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_cmap;
|
|
f_cmap = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xevie_End_cmap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xevieEnd_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-End");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xevie-End)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(24);
|
|
}
|
|
|
|
static void struct_Event(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Event, tvb, *offsetp, 32, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
UNUSED(32);
|
|
}
|
|
}
|
|
|
|
static void xevieSend(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_data_type;
|
|
struct_Event(tvb, offsetp, t, little_endian, 1);
|
|
f_data_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xevie_Send_data_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(64);
|
|
}
|
|
static void xevieSend_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-Send");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xevie-Send)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(24);
|
|
}
|
|
|
|
static void xevieSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_event_mask;
|
|
f_event_mask = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xevie_SelectInput_event_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xevieSelectInput_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-SelectInput");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xevie-SelectInput)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(24);
|
|
}
|
|
static const value_string xevie_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "Start" },
|
|
{ 2, "End" },
|
|
{ 3, "Send" },
|
|
{ 4, "SelectInput" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info xevie_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info xevie_replies[] = {
|
|
{ 0, xevieQueryVersion_Reply },
|
|
{ 1, xevieStart_Reply },
|
|
{ 2, xevieEnd_Reply },
|
|
{ 3, xevieSend_Reply },
|
|
{ 4, xevieSelectInput_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_xevie(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(xevie_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, xevie_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
xevieQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
xevieStart(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
xevieEnd(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
xevieSend(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
xevieSelectInput(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_xevie(void)
|
|
{
|
|
set_handler("XEVIE", dispatch_xevie, xevie_errors, xevie_events, xevie_replies);
|
|
}
|
|
|
|
static void struct_DrmClipRect(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_x1;
|
|
int f_y1;
|
|
int f_x2;
|
|
int f_x3;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_DrmClipRect, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_x1 = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DrmClipRect_x1, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y1 = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DrmClipRect_y1, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_x2 = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DrmClipRect_x2, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_x3 = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DrmClipRect_x3, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static void xf86driQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xf86driQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_dri_major_version;
|
|
int f_dri_minor_version;
|
|
int f_dri_minor_patch;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86dri-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dri_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_QueryVersion_reply_dri_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_dri_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_QueryVersion_reply_dri_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_dri_minor_patch = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_QueryVersion_reply_dri_minor_patch, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xf86driQueryDirectRenderingCapable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_QueryDirectRenderingCapable_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xf86driQueryDirectRenderingCapable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_is_capable;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryDirectRenderingCapable");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86dri-QueryDirectRenderingCapable)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_is_capable = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_QueryDirectRenderingCapable_reply_is_capable, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xf86driOpenConnection(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xf86driOpenConnection_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_sarea_handle_low;
|
|
int f_sarea_handle_high;
|
|
int f_bus_id_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-OpenConnection");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86dri-OpenConnection)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_sarea_handle_low = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_sarea_handle_low, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_sarea_handle_high = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_sarea_handle_high, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_bus_id_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_bus_id_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xf86dri_OpenConnection_reply_bus_id, f_bus_id_len, little_endian);
|
|
}
|
|
|
|
static void xf86driCloseConnection(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_CloseConnection_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xf86driGetClientDriverName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xf86driGetClientDriverName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_client_driver_major_version;
|
|
int f_client_driver_minor_version;
|
|
int f_client_driver_patch_version;
|
|
int f_client_driver_name_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetClientDriverName");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86dri-GetClientDriverName)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_client_driver_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_client_driver_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_client_driver_patch_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_patch_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_client_driver_name_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_name_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xf86dri_GetClientDriverName_reply_client_driver_name, f_client_driver_name_len, little_endian);
|
|
}
|
|
|
|
static void xf86driCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_visual;
|
|
int f_context;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_visual = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_visual, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xf86driCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_hw_context;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86dri-CreateContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_hw_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_reply_hw_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xf86driDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_context;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_DestroyContext_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_DestroyContext_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xf86driCreateDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_drawable;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_CreateDrawable_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_CreateDrawable_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xf86driCreateDrawable_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_hw_drawable_handle;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateDrawable");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86dri-CreateDrawable)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_hw_drawable_handle = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_CreateDrawable_reply_hw_drawable_handle, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xf86driDestroyDrawable(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_drawable;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_DestroyDrawable_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_DestroyDrawable_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xf86driGetDrawableInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_drawable;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xf86driGetDrawableInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_drawable_table_index;
|
|
int f_drawable_table_stamp;
|
|
int f_drawable_origin_X;
|
|
int f_drawable_origin_Y;
|
|
int f_drawable_size_W;
|
|
int f_drawable_size_H;
|
|
int f_num_clip_rects;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDrawableInfo");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86dri-GetDrawableInfo)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable_table_index = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_table_index, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable_table_stamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_table_stamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable_origin_X = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_origin_X, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drawable_origin_Y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_origin_Y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drawable_size_W = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_size_W, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drawable_size_H = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_drawable_size_H, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_clip_rects = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDrawableInfo_reply_num_clip_rects, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
struct_DrmClipRect(tvb, offsetp, t, little_endian, f_num_clip_rects);
|
|
}
|
|
|
|
static void xf86driGetDeviceInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xf86driGetDeviceInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_framebuffer_handle_low;
|
|
int f_framebuffer_handle_high;
|
|
int f_framebuffer_origin_offset;
|
|
int f_framebuffer_size;
|
|
int f_framebuffer_stride;
|
|
int f_device_private_size;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceInfo");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86dri-GetDeviceInfo)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_framebuffer_handle_low = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_handle_low, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_framebuffer_handle_high = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_handle_high, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_framebuffer_origin_offset = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_origin_offset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_framebuffer_size = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_size, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_framebuffer_stride = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_framebuffer_stride, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_device_private_size = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_GetDeviceInfo_reply_device_private_size, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xf86dri_GetDeviceInfo_reply_device_private, hf_x11_xf86dri_GetDeviceInfo_reply_device_private_item, f_device_private_size, little_endian);
|
|
}
|
|
|
|
static void xf86driAuthConnection(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_magic;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_AuthConnection_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_magic = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_AuthConnection_magic, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xf86driAuthConnection_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_authenticated;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-AuthConnection");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86dri-AuthConnection)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_authenticated = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_AuthConnection_reply_authenticated, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static const value_string xf86dri_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "QueryDirectRenderingCapable" },
|
|
{ 2, "OpenConnection" },
|
|
{ 3, "CloseConnection" },
|
|
{ 4, "GetClientDriverName" },
|
|
{ 5, "CreateContext" },
|
|
{ 6, "DestroyContext" },
|
|
{ 7, "CreateDrawable" },
|
|
{ 8, "DestroyDrawable" },
|
|
{ 9, "GetDrawableInfo" },
|
|
{ 10, "GetDeviceInfo" },
|
|
{ 11, "AuthConnection" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info xf86dri_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info xf86dri_replies[] = {
|
|
{ 0, xf86driQueryVersion_Reply },
|
|
{ 1, xf86driQueryDirectRenderingCapable_Reply },
|
|
{ 2, xf86driOpenConnection_Reply },
|
|
{ 4, xf86driGetClientDriverName_Reply },
|
|
{ 5, xf86driCreateContext_Reply },
|
|
{ 7, xf86driCreateDrawable_Reply },
|
|
{ 9, xf86driGetDrawableInfo_Reply },
|
|
{ 10, xf86driGetDeviceInfo_Reply },
|
|
{ 11, xf86driAuthConnection_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_xf86dri(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(xf86dri_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, xf86dri_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
xf86driQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
xf86driQueryDirectRenderingCapable(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
xf86driOpenConnection(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
xf86driCloseConnection(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
xf86driGetClientDriverName(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
xf86driCreateContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
xf86driDestroyContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
xf86driCreateDrawable(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
xf86driDestroyDrawable(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 9:
|
|
xf86driGetDrawableInfo(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 10:
|
|
xf86driGetDeviceInfo(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 11:
|
|
xf86driAuthConnection(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_xf86dri(void)
|
|
{
|
|
set_handler("XFree86-DRI", dispatch_xf86dri, xf86dri_errors, xf86dri_events, xf86dri_replies);
|
|
}
|
|
|
|
static void xf86vidmodeQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xf86vidmodeQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86vidmode-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_QueryVersion_reply_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_QueryVersion_reply_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xf86vidmodeGetModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
static void xf86vidmodeGetModeLine_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_dotclock;
|
|
int f_hdisplay;
|
|
int f_hsyncstart;
|
|
int f_hsyncend;
|
|
int f_htotal;
|
|
int f_hskew;
|
|
int f_vdisplay;
|
|
int f_vsyncstart;
|
|
int f_vsyncend;
|
|
int f_vtotal;
|
|
int f_flags;
|
|
int f_privsize;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetModeLine");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86vidmode-GetModeLine)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dotclock = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_dotclock, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_hdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_htotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_htotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hskew = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_hskew, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vtotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_vtotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_flags = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_flags, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_HsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_HsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_VsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_VsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Interlace, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_DoubleScan, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Csync, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_CsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_CsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_HskewPresent, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_Bcast, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_PixelMultiplex, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_DoubleClock, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetModeLine_reply_flags_mask_HalveClock, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
f_privsize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_privsize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetModeLine_reply_private, f_privsize, little_endian);
|
|
}
|
|
|
|
static void xf86vidmodeModModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_hdisplay;
|
|
int f_hsyncstart;
|
|
int f_hsyncend;
|
|
int f_htotal;
|
|
int f_hskew;
|
|
int f_vdisplay;
|
|
int f_vsyncstart;
|
|
int f_vsyncend;
|
|
int f_vtotal;
|
|
int f_flags;
|
|
int f_privsize;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_hdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_htotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_htotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hskew = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_hskew, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vtotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_vtotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_flags = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_flags, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_HsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_HsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_VsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_VsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_Interlace, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_DoubleScan, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_Csync, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_CsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_CsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_HskewPresent, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_Bcast, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_PixelMultiplex, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_DoubleClock, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ModModeLine_flags_mask_HalveClock, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
f_privsize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_privsize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_ModModeLine_private, f_privsize, little_endian);
|
|
length -= f_privsize * 1;
|
|
}
|
|
|
|
static void xf86vidmodeSwitchMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_zoom;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchMode_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_zoom = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchMode_zoom, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xf86vidmodeGetMonitor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
static void xf86vidmodeGetMonitor_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_vendor_length;
|
|
int f_model_length;
|
|
int f_num_hsync;
|
|
int f_num_vsync;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMonitor");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86vidmode-GetMonitor)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_vendor_length = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_vendor_length, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_model_length = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_model_length, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_num_hsync = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_num_hsync, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_num_vsync = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetMonitor_reply_num_vsync, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(20);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_hsync, hf_x11_xf86vidmode_GetMonitor_reply_hsync_item, f_num_hsync, little_endian);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_vsync, hf_x11_xf86vidmode_GetMonitor_reply_vsync_item, f_num_vsync, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_vendor, f_vendor_length, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_alignment_pad, (((f_vendor_length + 3 ) & 0xFFFFFFFC) - f_vendor_length), little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_GetMonitor_reply_model, f_model_length, little_endian);
|
|
}
|
|
|
|
static void xf86vidmodeLockModeSwitch(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_lock;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_LockModeSwitch_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_lock = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_LockModeSwitch_lock, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xf86vidmodeGetAllModeLines(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetAllModeLines_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
static void xf86vidmodeGetAllModeLines_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_modecount;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetAllModeLines");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86vidmode-GetAllModeLines)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_modecount = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetAllModeLines_reply_modecount, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
struct_ModeInfo(tvb, offsetp, t, little_endian, f_modecount);
|
|
}
|
|
|
|
static void xf86vidmodeAddModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_dotclock;
|
|
int f_hdisplay;
|
|
int f_hsyncstart;
|
|
int f_hsyncend;
|
|
int f_htotal;
|
|
int f_hskew;
|
|
int f_vdisplay;
|
|
int f_vsyncstart;
|
|
int f_vsyncend;
|
|
int f_vtotal;
|
|
int f_flags;
|
|
int f_privsize;
|
|
int f_after_dotclock;
|
|
int f_after_hdisplay;
|
|
int f_after_hsyncstart;
|
|
int f_after_hsyncend;
|
|
int f_after_htotal;
|
|
int f_after_hskew;
|
|
int f_after_vdisplay;
|
|
int f_after_vsyncstart;
|
|
int f_after_vsyncend;
|
|
int f_after_vtotal;
|
|
int f_after_flags;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dotclock = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_dotclock, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_hdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_htotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_htotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hskew = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_hskew, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vtotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_vtotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_flags = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_flags, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_HsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_HsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_VsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_VsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_Interlace, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_DoubleScan, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_Csync, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_CsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_CsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_HskewPresent, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_Bcast, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_PixelMultiplex, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_DoubleClock, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_flags_mask_HalveClock, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
f_privsize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_privsize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_after_dotclock = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_dotclock, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_after_hdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_after_hsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_after_hsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_after_htotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_htotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_after_hskew = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_hskew, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_after_vdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_after_vsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_after_vsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_after_vtotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_vtotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_after_flags = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_flags, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_HsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_HsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_VsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_VsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Interlace, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_DoubleScan, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Csync, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_CsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_CsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_HskewPresent, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_Bcast, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_PixelMultiplex, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_DoubleClock, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_AddModeLine_after_flags_mask_HalveClock, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_AddModeLine_private, f_privsize, little_endian);
|
|
length -= f_privsize * 1;
|
|
}
|
|
|
|
static void xf86vidmodeDeleteModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_dotclock;
|
|
int f_hdisplay;
|
|
int f_hsyncstart;
|
|
int f_hsyncend;
|
|
int f_htotal;
|
|
int f_hskew;
|
|
int f_vdisplay;
|
|
int f_vsyncstart;
|
|
int f_vsyncend;
|
|
int f_vtotal;
|
|
int f_flags;
|
|
int f_privsize;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dotclock = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_dotclock, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_hdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_htotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_htotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hskew = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_hskew, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vtotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_vtotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_flags = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_flags, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_HsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_HsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_VsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_VsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Interlace, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_DoubleScan, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Csync, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_CsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_CsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_HskewPresent, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_Bcast, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_PixelMultiplex, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_DoubleClock, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_DeleteModeLine_flags_mask_HalveClock, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
f_privsize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_privsize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_DeleteModeLine_private, f_privsize, little_endian);
|
|
length -= f_privsize * 1;
|
|
}
|
|
|
|
static void xf86vidmodeValidateModeLine(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_dotclock;
|
|
int f_hdisplay;
|
|
int f_hsyncstart;
|
|
int f_hsyncend;
|
|
int f_htotal;
|
|
int f_hskew;
|
|
int f_vdisplay;
|
|
int f_vsyncstart;
|
|
int f_vsyncend;
|
|
int f_vtotal;
|
|
int f_flags;
|
|
int f_privsize;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dotclock = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_dotclock, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_hdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_htotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_htotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hskew = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_hskew, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vtotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_vtotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_flags = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_flags, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_HsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_HsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_VsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_VsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Interlace, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_DoubleScan, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Csync, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_CsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_CsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_HskewPresent, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_Bcast, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_PixelMultiplex, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_DoubleClock, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_ValidateModeLine_flags_mask_HalveClock, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
f_privsize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_privsize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_ValidateModeLine_private, f_privsize, little_endian);
|
|
length -= f_privsize * 1;
|
|
}
|
|
static void xf86vidmodeValidateModeLine_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-ValidateModeLine");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86vidmode-ValidateModeLine)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_status = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_reply_status, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
}
|
|
|
|
static void xf86vidmodeSwitchToMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_dotclock;
|
|
int f_hdisplay;
|
|
int f_hsyncstart;
|
|
int f_hsyncend;
|
|
int f_htotal;
|
|
int f_hskew;
|
|
int f_vdisplay;
|
|
int f_vsyncstart;
|
|
int f_vsyncend;
|
|
int f_vtotal;
|
|
int f_flags;
|
|
int f_privsize;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dotclock = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_dotclock, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_hdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_htotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_htotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_hskew = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_hskew, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vdisplay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vdisplay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsyncstart = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vsyncstart, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vsyncend = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vsyncend, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vtotal = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_vtotal, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_flags = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_flags, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_HsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_HsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_VsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_VsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_Interlace, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_DoubleScan, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_Csync, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_CsyncPositive, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_CsyncNegative, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_HskewPresent, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_Bcast, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_PixelMultiplex, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_DoubleClock, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_SwitchToMode_flags_mask_HalveClock, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
f_privsize = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_privsize, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xf86vidmode_SwitchToMode_private, f_privsize, little_endian);
|
|
length -= f_privsize * 1;
|
|
}
|
|
|
|
static void xf86vidmodeGetViewPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetViewPort_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
static void xf86vidmodeGetViewPort_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_x;
|
|
int f_y;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetViewPort");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86vidmode-GetViewPort)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetViewPort_reply_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_y = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetViewPort_reply_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
}
|
|
|
|
static void xf86vidmodeSetViewPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_x;
|
|
int f_y;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SetViewPort_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_x = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SetViewPort_x, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_y = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SetViewPort_y, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xf86vidmodeGetDotClocks(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
static void xf86vidmodeGetDotClocks_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_flags;
|
|
int f_clocks;
|
|
int f_maxclocks;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDotClocks");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86vidmode-GetDotClocks)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_flags = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_reply_flags, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetDotClocks_reply_flags_mask_Programable, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_clocks = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_reply_clocks, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_maxclocks = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_reply_maxclocks, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xf86vidmode_GetDotClocks_reply_clock, hf_x11_xf86vidmode_GetDotClocks_reply_clock_item, ((1 - (f_flags & 1)) * f_clocks), little_endian);
|
|
}
|
|
|
|
static void xf86vidmodeSetClientVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_major;
|
|
int f_minor;
|
|
f_major = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SetClientVersion_major, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_minor = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SetClientVersion_minor, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xf86vidmodeSetGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_red;
|
|
int f_green;
|
|
int f_blue;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_red = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_red, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_green = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_green, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_blue = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SetGamma_blue, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
}
|
|
|
|
static void xf86vidmodeGetGamma(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(26);
|
|
}
|
|
static void xf86vidmodeGetGamma_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_red;
|
|
int f_green;
|
|
int f_blue;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetGamma");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86vidmode-GetGamma)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_red = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_reply_red, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_green = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_reply_green, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_blue = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetGamma_reply_blue, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
}
|
|
|
|
static void xf86vidmodeGetGammaRamp(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_size;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRamp_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_size = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRamp_size, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
static void xf86vidmodeGetGammaRamp_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_size;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetGammaRamp");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86vidmode-GetGammaRamp)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_size = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRamp_reply_size, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(22);
|
|
listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_GetGammaRamp_reply_red, hf_x11_xf86vidmode_GetGammaRamp_reply_red_item, ((f_size + 1) & 0xFFFFFFFE), little_endian);
|
|
listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_GetGammaRamp_reply_green, hf_x11_xf86vidmode_GetGammaRamp_reply_green_item, ((f_size + 1) & 0xFFFFFFFE), little_endian);
|
|
listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_GetGammaRamp_reply_blue, hf_x11_xf86vidmode_GetGammaRamp_reply_blue_item, ((f_size + 1) & 0xFFFFFFFE), little_endian);
|
|
}
|
|
|
|
static void xf86vidmodeSetGammaRamp(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
int f_size;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SetGammaRamp_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_size = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_SetGammaRamp_size, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_SetGammaRamp_red, hf_x11_xf86vidmode_SetGammaRamp_red_item, ((f_size + 1) & 0xFFFFFFFE), little_endian);
|
|
length -= ((f_size + 1) & 0xFFFFFFFE) * 2;
|
|
listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_SetGammaRamp_green, hf_x11_xf86vidmode_SetGammaRamp_green_item, ((f_size + 1) & 0xFFFFFFFE), little_endian);
|
|
length -= ((f_size + 1) & 0xFFFFFFFE) * 2;
|
|
listOfCard16(tvb, offsetp, t, hf_x11_xf86vidmode_SetGammaRamp_blue, hf_x11_xf86vidmode_SetGammaRamp_blue_item, ((f_size + 1) & 0xFFFFFFFE), little_endian);
|
|
length -= ((f_size + 1) & 0xFFFFFFFE) * 2;
|
|
}
|
|
|
|
static void xf86vidmodeGetGammaRampSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRampSize_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
static void xf86vidmodeGetGammaRampSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_size;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetGammaRampSize");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86vidmode-GetGammaRampSize)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_size = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetGammaRampSize_reply_size, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(22);
|
|
}
|
|
|
|
static void xf86vidmodeGetPermissions(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_screen;
|
|
f_screen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86vidmode_GetPermissions_screen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
static void xf86vidmodeGetPermissions_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_permissions;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPermissions");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xf86vidmode-GetPermissions)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_permissions = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xf86vidmode_GetPermissions_reply_permissions, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetPermissions_reply_permissions_mask_Read, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xf86vidmode_GetPermissions_reply_permissions_mask_Write, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
}
|
|
static const value_string xf86vidmode_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "GetModeLine" },
|
|
{ 2, "ModModeLine" },
|
|
{ 3, "SwitchMode" },
|
|
{ 4, "GetMonitor" },
|
|
{ 5, "LockModeSwitch" },
|
|
{ 6, "GetAllModeLines" },
|
|
{ 7, "AddModeLine" },
|
|
{ 8, "DeleteModeLine" },
|
|
{ 9, "ValidateModeLine" },
|
|
{ 10, "SwitchToMode" },
|
|
{ 11, "GetViewPort" },
|
|
{ 12, "SetViewPort" },
|
|
{ 13, "GetDotClocks" },
|
|
{ 14, "SetClientVersion" },
|
|
{ 15, "SetGamma" },
|
|
{ 16, "GetGamma" },
|
|
{ 17, "GetGammaRamp" },
|
|
{ 18, "SetGammaRamp" },
|
|
{ 19, "GetGammaRampSize" },
|
|
{ 20, "GetPermissions" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info xf86vidmode_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info xf86vidmode_replies[] = {
|
|
{ 0, xf86vidmodeQueryVersion_Reply },
|
|
{ 1, xf86vidmodeGetModeLine_Reply },
|
|
{ 4, xf86vidmodeGetMonitor_Reply },
|
|
{ 6, xf86vidmodeGetAllModeLines_Reply },
|
|
{ 9, xf86vidmodeValidateModeLine_Reply },
|
|
{ 11, xf86vidmodeGetViewPort_Reply },
|
|
{ 13, xf86vidmodeGetDotClocks_Reply },
|
|
{ 16, xf86vidmodeGetGamma_Reply },
|
|
{ 17, xf86vidmodeGetGammaRamp_Reply },
|
|
{ 19, xf86vidmodeGetGammaRampSize_Reply },
|
|
{ 20, xf86vidmodeGetPermissions_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_xf86vidmode(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(xf86vidmode_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, xf86vidmode_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
xf86vidmodeQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
xf86vidmodeGetModeLine(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
xf86vidmodeModModeLine(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
xf86vidmodeSwitchMode(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
xf86vidmodeGetMonitor(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
xf86vidmodeLockModeSwitch(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
xf86vidmodeGetAllModeLines(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
xf86vidmodeAddModeLine(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
xf86vidmodeDeleteModeLine(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 9:
|
|
xf86vidmodeValidateModeLine(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 10:
|
|
xf86vidmodeSwitchToMode(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 11:
|
|
xf86vidmodeGetViewPort(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 12:
|
|
xf86vidmodeSetViewPort(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 13:
|
|
xf86vidmodeGetDotClocks(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 14:
|
|
xf86vidmodeSetClientVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 15:
|
|
xf86vidmodeSetGamma(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 16:
|
|
xf86vidmodeGetGamma(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 17:
|
|
xf86vidmodeGetGammaRamp(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 18:
|
|
xf86vidmodeSetGammaRamp(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 19:
|
|
xf86vidmodeGetGammaRampSize(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 20:
|
|
xf86vidmodeGetPermissions(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_xf86vidmode(void)
|
|
{
|
|
set_handler("XFree86-VidModeExtension", dispatch_xf86vidmode, xf86vidmode_errors, xf86vidmode_events, xf86vidmode_replies);
|
|
}
|
|
|
|
static void xfixesQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_client_major_version;
|
|
int f_client_minor_version;
|
|
f_client_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_client_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_client_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_client_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xfixesQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xfixes-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_reply_major_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor_version = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_QueryVersion_reply_minor_version, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
}
|
|
|
|
static void xfixesChangeSaveSet(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_mode;
|
|
int f_target;
|
|
int f_map;
|
|
int f_window;
|
|
f_mode = field8(tvb, offsetp, t, hf_x11_xfixes_ChangeSaveSet_mode, little_endian);
|
|
f_target = field8(tvb, offsetp, t, hf_x11_xfixes_ChangeSaveSet_target, little_endian);
|
|
f_map = field8(tvb, offsetp, t, hf_x11_xfixes_ChangeSaveSet_map, little_endian);
|
|
UNUSED(1);
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ChangeSaveSet_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesSelectionNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_subtype;
|
|
int f_window;
|
|
int f_owner;
|
|
int f_selection;
|
|
int f_timestamp;
|
|
int f_selection_timestamp;
|
|
f_subtype = field8(tvb, offsetp, t, hf_x11_xfixes_SelectionNotify_subtype, little_endian);
|
|
CARD16(event_sequencenumber);
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SelectionNotify_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_owner = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SelectionNotify_owner, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_selection = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SelectionNotify_selection, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SelectionNotify_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_selection_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SelectionNotify_selection_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
}
|
|
|
|
static void xfixesSelectSelectionInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_selection;
|
|
int f_event_mask;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SelectSelectionInput_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_selection = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SelectSelectionInput_selection, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_event_mask = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xfixes_SelectSelectionInput_event_mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xfixes_SelectSelectionInput_event_mask_mask_SetSelectionOwner, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xfixes_SelectSelectionInput_event_mask_mask_SelectionWindowDestroy, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xfixes_SelectSelectionInput_event_mask_mask_SelectionClientClose, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesCursorNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_subtype;
|
|
int f_window;
|
|
int f_cursor_serial;
|
|
int f_timestamp;
|
|
int f_name;
|
|
f_subtype = field8(tvb, offsetp, t, hf_x11_xfixes_CursorNotify_subtype, little_endian);
|
|
CARD16(event_sequencenumber);
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_cursor_serial = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_cursor_serial, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_timestamp = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_timestamp, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_name = field32(tvb, offsetp, t, hf_x11_xfixes_CursorNotify_name, little_endian);
|
|
UNUSED(12);
|
|
}
|
|
|
|
static void xfixesSelectCursorInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_event_mask;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SelectCursorInput_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_event_mask = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xfixes_SelectCursorInput_event_mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xfixes_SelectCursorInput_event_mask_mask_DisplayCursor, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesGetCursorImage(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xfixesGetCursorImage_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_x;
|
|
int f_y;
|
|
int f_width;
|
|
int f_height;
|
|
int f_xhot;
|
|
int f_yhot;
|
|
int f_cursor_serial;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCursorImage");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xfixes-GetCursorImage)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_xhot = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_xhot, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_yhot = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_yhot, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_cursor_serial = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImage_reply_cursor_serial, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xfixes_GetCursorImage_reply_cursor_image, hf_x11_xfixes_GetCursorImage_reply_cursor_image_item, (f_width * f_height), little_endian);
|
|
}
|
|
|
|
static void xfixesCreateRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_region;
|
|
f_region = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CreateRegion_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_RECTANGLE(tvb, offsetp, t, little_endian, (length - 8) / 8);
|
|
}
|
|
|
|
static void xfixesCreateRegionFromBitmap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_region;
|
|
int f_bitmap;
|
|
f_region = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromBitmap_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_bitmap = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromBitmap_bitmap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesCreateRegionFromWindow(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_region;
|
|
int f_window;
|
|
int f_kind;
|
|
f_region = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromWindow_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromWindow_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_kind = field8(tvb, offsetp, t, hf_x11_xfixes_CreateRegionFromWindow_kind, little_endian);
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void xfixesCreateRegionFromGC(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_region;
|
|
int f_gc;
|
|
f_region = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromGC_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_gc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromGC_gc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesCreateRegionFromPicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_region;
|
|
int f_picture;
|
|
f_region = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromPicture_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_picture = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromPicture_picture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesDestroyRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_region;
|
|
f_region = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_DestroyRegion_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesSetRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_region;
|
|
f_region = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetRegion_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_RECTANGLE(tvb, offsetp, t, little_endian, (length - 8) / 8);
|
|
}
|
|
|
|
static void xfixesCopyRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_source;
|
|
int f_destination;
|
|
f_source = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CopyRegion_source, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_destination = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CopyRegion_destination, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesUnionRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_source1;
|
|
int f_source2;
|
|
int f_destination;
|
|
f_source1 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_UnionRegion_source1, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_source2 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_UnionRegion_source2, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_destination = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_UnionRegion_destination, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesIntersectRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_source1;
|
|
int f_source2;
|
|
int f_destination;
|
|
f_source1 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_IntersectRegion_source1, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_source2 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_IntersectRegion_source2, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_destination = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_IntersectRegion_destination, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesSubtractRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_source1;
|
|
int f_source2;
|
|
int f_destination;
|
|
f_source1 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SubtractRegion_source1, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_source2 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SubtractRegion_source2, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_destination = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SubtractRegion_destination, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesInvertRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_source;
|
|
int f_destination;
|
|
f_source = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_InvertRegion_source, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_RECTANGLE(tvb, offsetp, t, little_endian, 1);
|
|
f_destination = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_InvertRegion_destination, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesTranslateRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_region;
|
|
int f_dx;
|
|
int f_dy;
|
|
f_region = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_TranslateRegion_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dx = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_TranslateRegion_dx, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_dy = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_TranslateRegion_dy, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xfixesRegionExtents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_source;
|
|
int f_destination;
|
|
f_source = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_RegionExtents_source, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_destination = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_RegionExtents_destination, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesFetchRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_region;
|
|
f_region = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_FetchRegion_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xfixesFetchRegion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-FetchRegion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xfixes-FetchRegion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_RECTANGLE(tvb, offsetp, t, little_endian, 1);
|
|
UNUSED(16);
|
|
struct_RECTANGLE(tvb, offsetp, t, little_endian, (f_length / 2));
|
|
}
|
|
|
|
static void xfixesSetGCClipRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_gc;
|
|
int f_region;
|
|
int f_x_origin;
|
|
int f_y_origin;
|
|
f_gc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetGCClipRegion_gc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_region = field32(tvb, offsetp, t, hf_x11_xfixes_SetGCClipRegion_region, little_endian);
|
|
f_x_origin = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetGCClipRegion_x_origin, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y_origin = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetGCClipRegion_y_origin, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xfixesSetWindowShapeRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_dest;
|
|
int f_dest_kind;
|
|
int f_x_offset;
|
|
int f_y_offset;
|
|
int f_region;
|
|
f_dest = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_dest, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dest_kind = field8(tvb, offsetp, t, hf_x11_xfixes_SetWindowShapeRegion_dest_kind, little_endian);
|
|
UNUSED(3);
|
|
f_x_offset = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_x_offset, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y_offset = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_y_offset, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_region = field32(tvb, offsetp, t, hf_x11_xfixes_SetWindowShapeRegion_region, little_endian);
|
|
}
|
|
|
|
static void xfixesSetPictureClipRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_picture;
|
|
int f_region;
|
|
int f_x_origin;
|
|
int f_y_origin;
|
|
f_picture = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetPictureClipRegion_picture, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_region = field32(tvb, offsetp, t, hf_x11_xfixes_SetPictureClipRegion_region, little_endian);
|
|
f_x_origin = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetPictureClipRegion_x_origin, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y_origin = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetPictureClipRegion_y_origin, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xfixesSetCursorName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_cursor;
|
|
int f_nbytes;
|
|
f_cursor = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetCursorName_cursor, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_nbytes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetCursorName_nbytes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xfixes_SetCursorName_name, f_nbytes, little_endian);
|
|
length -= f_nbytes * 1;
|
|
}
|
|
|
|
static void xfixesGetCursorName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_cursor;
|
|
f_cursor = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorName_cursor, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xfixesGetCursorName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_atom;
|
|
int f_nbytes;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCursorName");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xfixes-GetCursorName)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_atom = field32(tvb, offsetp, t, hf_x11_xfixes_GetCursorName_reply_atom, little_endian);
|
|
f_nbytes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorName_reply_nbytes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(18);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xfixes_GetCursorName_reply_name, f_nbytes, little_endian);
|
|
}
|
|
|
|
static void xfixesGetCursorImageAndName(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xfixesGetCursorImageAndName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_x;
|
|
int f_y;
|
|
int f_width;
|
|
int f_height;
|
|
int f_xhot;
|
|
int f_yhot;
|
|
int f_cursor_serial;
|
|
int f_cursor_atom;
|
|
int f_nbytes;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCursorImageAndName");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xfixes-GetCursorImageAndName)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_xhot = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_xhot, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_yhot = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_yhot, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_cursor_serial = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_cursor_serial, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_cursor_atom = field32(tvb, offsetp, t, hf_x11_xfixes_GetCursorImageAndName_reply_cursor_atom, little_endian);
|
|
f_nbytes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_nbytes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xfixes_GetCursorImageAndName_reply_name, f_nbytes, little_endian);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xfixes_GetCursorImageAndName_reply_cursor_image, hf_x11_xfixes_GetCursorImageAndName_reply_cursor_image_item, (f_width * f_height), little_endian);
|
|
}
|
|
|
|
static void xfixesChangeCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_source;
|
|
int f_destination;
|
|
f_source = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ChangeCursor_source, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_destination = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ChangeCursor_destination, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesChangeCursorByName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_src;
|
|
int f_nbytes;
|
|
f_src = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ChangeCursorByName_src, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_nbytes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ChangeCursorByName_nbytes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xfixes_ChangeCursorByName_name, f_nbytes, little_endian);
|
|
length -= f_nbytes * 1;
|
|
}
|
|
|
|
static void xfixesExpandRegion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_source;
|
|
int f_destination;
|
|
int f_left;
|
|
int f_right;
|
|
int f_top;
|
|
int f_bottom;
|
|
f_source = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_source, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_destination = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_destination, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_right = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_right, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_bottom = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ExpandRegion_bottom, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xfixesHideCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_HideCursor_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xfixesShowCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ShowCursor_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static const value_string xfixes_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "ChangeSaveSet" },
|
|
{ 2, "SelectSelectionInput" },
|
|
{ 3, "SelectCursorInput" },
|
|
{ 4, "GetCursorImage" },
|
|
{ 5, "CreateRegion" },
|
|
{ 6, "CreateRegionFromBitmap" },
|
|
{ 7, "CreateRegionFromWindow" },
|
|
{ 8, "CreateRegionFromGC" },
|
|
{ 9, "CreateRegionFromPicture" },
|
|
{ 10, "DestroyRegion" },
|
|
{ 11, "SetRegion" },
|
|
{ 12, "CopyRegion" },
|
|
{ 13, "UnionRegion" },
|
|
{ 14, "IntersectRegion" },
|
|
{ 15, "SubtractRegion" },
|
|
{ 16, "InvertRegion" },
|
|
{ 17, "TranslateRegion" },
|
|
{ 18, "RegionExtents" },
|
|
{ 19, "FetchRegion" },
|
|
{ 20, "SetGCClipRegion" },
|
|
{ 21, "SetWindowShapeRegion" },
|
|
{ 22, "SetPictureClipRegion" },
|
|
{ 23, "SetCursorName" },
|
|
{ 24, "GetCursorName" },
|
|
{ 25, "GetCursorImageAndName" },
|
|
{ 26, "ChangeCursor" },
|
|
{ 27, "ChangeCursorByName" },
|
|
{ 28, "ExpandRegion" },
|
|
{ 29, "HideCursor" },
|
|
{ 30, "ShowCursor" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info xfixes_events[] = {
|
|
{ "xfixes-SelectionNotify", xfixesSelectionNotify },
|
|
{ "xfixes-CursorNotify", xfixesCursorNotify },
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info xfixes_replies[] = {
|
|
{ 0, xfixesQueryVersion_Reply },
|
|
{ 4, xfixesGetCursorImage_Reply },
|
|
{ 19, xfixesFetchRegion_Reply },
|
|
{ 24, xfixesGetCursorName_Reply },
|
|
{ 25, xfixesGetCursorImageAndName_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_xfixes(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(xfixes_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, xfixes_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
xfixesQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
xfixesChangeSaveSet(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
xfixesSelectSelectionInput(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
xfixesSelectCursorInput(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
xfixesGetCursorImage(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
xfixesCreateRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
xfixesCreateRegionFromBitmap(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
xfixesCreateRegionFromWindow(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
xfixesCreateRegionFromGC(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 9:
|
|
xfixesCreateRegionFromPicture(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 10:
|
|
xfixesDestroyRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 11:
|
|
xfixesSetRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 12:
|
|
xfixesCopyRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 13:
|
|
xfixesUnionRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 14:
|
|
xfixesIntersectRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 15:
|
|
xfixesSubtractRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 16:
|
|
xfixesInvertRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 17:
|
|
xfixesTranslateRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 18:
|
|
xfixesRegionExtents(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 19:
|
|
xfixesFetchRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 20:
|
|
xfixesSetGCClipRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 21:
|
|
xfixesSetWindowShapeRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 22:
|
|
xfixesSetPictureClipRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 23:
|
|
xfixesSetCursorName(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 24:
|
|
xfixesGetCursorName(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 25:
|
|
xfixesGetCursorImageAndName(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 26:
|
|
xfixesChangeCursor(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 27:
|
|
xfixesChangeCursorByName(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 28:
|
|
xfixesExpandRegion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 29:
|
|
xfixesHideCursor(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 30:
|
|
xfixesShowCursor(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_xfixes(void)
|
|
{
|
|
set_handler("XFIXES", dispatch_xfixes, xfixes_errors, xfixes_events, xfixes_replies);
|
|
}
|
|
|
|
static void struct_ScreenInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_x_org;
|
|
int f_y_org;
|
|
int f_width;
|
|
int f_height;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_ScreenInfo, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_x_org = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ScreenInfo_x_org, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_y_org = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ScreenInfo_y_org, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ScreenInfo_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ScreenInfo_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static void xineramaQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_major;
|
|
int f_minor;
|
|
f_major = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_major, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_minor = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_minor, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void xineramaQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major;
|
|
int f_minor;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinerama-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_reply_major, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_minor = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_QueryVersion_reply_minor, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xineramaGetState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_GetState_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xineramaGetState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_state;
|
|
int f_window;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetState");
|
|
|
|
REPLY(reply);
|
|
f_state = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_GetState_reply_state, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinerama-GetState)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_GetState_reply_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xineramaGetScreenCount(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_GetScreenCount_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xineramaGetScreenCount_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_screen_count;
|
|
int f_window;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenCount");
|
|
|
|
REPLY(reply);
|
|
f_screen_count = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_GetScreenCount_reply_screen_count, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinerama-GetScreenCount)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_GetScreenCount_reply_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xineramaGetScreenSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_screen;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xineramaGetScreenSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_width;
|
|
int f_height;
|
|
int f_window;
|
|
int f_screen;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetScreenSize");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinerama-GetScreenSize)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_width, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_height = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_height, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_GetScreenSize_reply_screen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xineramaIsActive(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xineramaIsActive_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_state;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-IsActive");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinerama-IsActive)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_state = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_IsActive_reply_state, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xineramaQueryScreens(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xineramaQueryScreens_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryScreens");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinerama-QueryScreens)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_number = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinerama_QueryScreens_reply_number, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
struct_ScreenInfo(tvb, offsetp, t, little_endian, f_number);
|
|
}
|
|
static const value_string xinerama_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "GetState" },
|
|
{ 2, "GetScreenCount" },
|
|
{ 3, "GetScreenSize" },
|
|
{ 4, "IsActive" },
|
|
{ 5, "QueryScreens" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info xinerama_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info xinerama_replies[] = {
|
|
{ 0, xineramaQueryVersion_Reply },
|
|
{ 1, xineramaGetState_Reply },
|
|
{ 2, xineramaGetScreenCount_Reply },
|
|
{ 3, xineramaGetScreenSize_Reply },
|
|
{ 4, xineramaIsActive_Reply },
|
|
{ 5, xineramaQueryScreens_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_xinerama(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(xinerama_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, xinerama_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
xineramaQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
xineramaGetState(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
xineramaGetScreenCount(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
xineramaGetScreenSize(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
xineramaIsActive(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
xineramaQueryScreens(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_xinerama(void)
|
|
{
|
|
set_handler("XINERAMA", dispatch_xinerama, xinerama_errors, xinerama_events, xinerama_replies);
|
|
}
|
|
|
|
static void xinputGetExtensionVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_name_len;
|
|
f_name_len = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_name_len, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xinput_GetExtensionVersion_name, f_name_len, little_endian);
|
|
length -= f_name_len * 1;
|
|
}
|
|
static void xinputGetExtensionVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_server_major;
|
|
int f_server_minor;
|
|
int f_present;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetExtensionVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-GetExtensionVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_server_major = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_server_major, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_server_minor = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_server_minor, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_present = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetExtensionVersion_reply_present, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(19);
|
|
}
|
|
|
|
static void struct_DeviceInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_device_type;
|
|
int f_device_id;
|
|
int f_num_class_info;
|
|
int f_device_use;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_DeviceInfo, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_device_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DeviceInfo_device_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DeviceInfo_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_num_class_info = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DeviceInfo_num_class_info, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_device_use = field8(tvb, offsetp, t, hf_x11_struct_DeviceInfo_device_use, little_endian);
|
|
UNUSED(1);
|
|
}
|
|
}
|
|
|
|
static void xinputListInputDevices(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xinputListInputDevices_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_devices_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-ListInputDevices");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-ListInputDevices)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_devices_len = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ListInputDevices_reply_devices_len, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(23);
|
|
struct_DeviceInfo(tvb, offsetp, t, little_endian, f_devices_len);
|
|
}
|
|
|
|
static void struct_InputClassInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_class_id;
|
|
int f_event_type_base;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_InputClassInfo, tvb, *offsetp, 2, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_class_id = field8(tvb, offsetp, t, hf_x11_struct_InputClassInfo_class_id, little_endian);
|
|
f_event_type_base = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_InputClassInfo_event_type_base, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static void xinputOpenDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_OpenDevice_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
static void xinputOpenDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_classes;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-OpenDevice");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-OpenDevice)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_classes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_OpenDevice_reply_num_classes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(23);
|
|
struct_InputClassInfo(tvb, offsetp, t, little_endian, f_num_classes);
|
|
}
|
|
|
|
static void xinputCloseDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_CloseDevice_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void xinputSetDeviceMode(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
int f_mode;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceMode_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_mode = field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceMode_mode, little_endian);
|
|
UNUSED(2);
|
|
}
|
|
static void xinputSetDeviceMode_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceMode");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-SetDeviceMode)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_status = field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceMode_reply_status, little_endian);
|
|
UNUSED(23);
|
|
}
|
|
|
|
static void xinputSelectExtensionEvent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_num_classes;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SelectExtensionEvent_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_classes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SelectExtensionEvent_num_classes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xinput_SelectExtensionEvent_classes, hf_x11_xinput_SelectExtensionEvent_classes_item, f_num_classes, little_endian);
|
|
length -= f_num_classes * 4;
|
|
}
|
|
|
|
static void xinputGetSelectedExtensionEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xinputGetSelectedExtensionEvents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_this_classes;
|
|
int f_num_all_classes;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectedExtensionEvents");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-GetSelectedExtensionEvents)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_this_classes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_reply_num_this_classes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_all_classes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetSelectedExtensionEvents_reply_num_all_classes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(20);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetSelectedExtensionEvents_reply_this_classes, hf_x11_xinput_GetSelectedExtensionEvents_reply_this_classes_item, f_num_this_classes, little_endian);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetSelectedExtensionEvents_reply_all_classes, hf_x11_xinput_GetSelectedExtensionEvents_reply_all_classes_item, f_num_all_classes, little_endian);
|
|
}
|
|
|
|
static void xinputChangeDeviceDontPropagateList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_num_classes;
|
|
int f_mode;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceDontPropagateList_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_classes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceDontPropagateList_num_classes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mode = field8(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceDontPropagateList_mode, little_endian);
|
|
UNUSED(1);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceDontPropagateList_classes, hf_x11_xinput_ChangeDeviceDontPropagateList_classes_item, f_num_classes, little_endian);
|
|
length -= f_num_classes * 4;
|
|
}
|
|
|
|
static void xinputGetDeviceDontPropagateList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceDontPropagateList_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xinputGetDeviceDontPropagateList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_classes;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceDontPropagateList");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-GetDeviceDontPropagateList)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_classes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceDontPropagateList_reply_num_classes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(22);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetDeviceDontPropagateList_reply_classes, hf_x11_xinput_GetDeviceDontPropagateList_reply_classes_item, f_num_classes, little_endian);
|
|
}
|
|
|
|
static void xinputGetDeviceMotionEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_start;
|
|
int f_stop;
|
|
int f_device_id;
|
|
f_start = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_start, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_stop = field32(tvb, offsetp, t, hf_x11_xinput_GetDeviceMotionEvents_stop, little_endian);
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void xinputGetDeviceMotionEvents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_coords;
|
|
int f_num_axes;
|
|
int f_device_mode;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceMotionEvents");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-GetDeviceMotionEvents)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_coords = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_reply_num_coords, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_axes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_reply_num_axes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_device_mode = field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceMotionEvents_reply_device_mode, little_endian);
|
|
UNUSED(18);
|
|
}
|
|
|
|
static void xinputChangeKeyboardDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangeKeyboardDevice_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
static void xinputChangeKeyboardDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-ChangeKeyboardDevice");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-ChangeKeyboardDevice)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_status = field8(tvb, offsetp, t, hf_x11_xinput_ChangeKeyboardDevice_reply_status, little_endian);
|
|
UNUSED(23);
|
|
}
|
|
|
|
static void xinputChangePointerDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_x_axis;
|
|
int f_y_axis;
|
|
int f_device_id;
|
|
f_x_axis = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_x_axis, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_y_axis = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_y_axis, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
}
|
|
static void xinputChangePointerDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-ChangePointerDevice");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-ChangePointerDevice)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_status = field8(tvb, offsetp, t, hf_x11_xinput_ChangePointerDevice_reply_status, little_endian);
|
|
UNUSED(23);
|
|
}
|
|
|
|
static void xinputGrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_grab_window;
|
|
int f_time;
|
|
int f_num_classes;
|
|
int f_this_device_mode;
|
|
int f_other_device_mode;
|
|
int f_owner_events;
|
|
int f_device_id;
|
|
f_grab_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDevice_grab_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_time = field32(tvb, offsetp, t, hf_x11_xinput_GrabDevice_time, little_endian);
|
|
f_num_classes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDevice_num_classes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_this_device_mode = field8(tvb, offsetp, t, hf_x11_xinput_GrabDevice_this_device_mode, little_endian);
|
|
f_other_device_mode = field8(tvb, offsetp, t, hf_x11_xinput_GrabDevice_other_device_mode, little_endian);
|
|
f_owner_events = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDevice_owner_events, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDevice_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xinput_GrabDevice_classes, hf_x11_xinput_GrabDevice_classes_item, f_num_classes, little_endian);
|
|
length -= f_num_classes * 4;
|
|
}
|
|
static void xinputGrabDevice_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GrabDevice");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-GrabDevice)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_status = field8(tvb, offsetp, t, hf_x11_xinput_GrabDevice_reply_status, little_endian);
|
|
UNUSED(23);
|
|
}
|
|
|
|
static void xinputUngrabDevice(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_time;
|
|
int f_device_id;
|
|
f_time = field32(tvb, offsetp, t, hf_x11_xinput_UngrabDevice_time, little_endian);
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_UngrabDevice_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xinputGrabDeviceKey(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_grab_window;
|
|
int f_num_classes;
|
|
int f_modifiers;
|
|
int f_modifier_device;
|
|
int f_grabbed_device;
|
|
int f_key;
|
|
int f_this_device_mode;
|
|
int f_other_device_mode;
|
|
int f_owner_events;
|
|
f_grab_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_grab_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_classes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_num_classes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_modifiers = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_modifiers, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceKey_modifiers_mask_Shift, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceKey_modifiers_mask_Lock, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceKey_modifiers_mask_Control, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceKey_modifiers_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceKey_modifiers_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceKey_modifiers_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceKey_modifiers_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceKey_modifiers_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceKey_modifiers_mask_Any, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_modifier_device = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_modifier_device, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_grabbed_device = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_grabbed_device, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_key = field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_key, little_endian);
|
|
f_this_device_mode = field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_this_device_mode, little_endian);
|
|
f_other_device_mode = field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_other_device_mode, little_endian);
|
|
f_owner_events = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_owner_events, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xinput_GrabDeviceKey_classes, hf_x11_xinput_GrabDeviceKey_classes_item, f_num_classes, little_endian);
|
|
length -= f_num_classes * 4;
|
|
}
|
|
|
|
static void xinputUngrabDeviceKey(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_grabWindow;
|
|
int f_modifiers;
|
|
int f_modifier_device;
|
|
int f_key;
|
|
int f_grabbed_device;
|
|
f_grabWindow = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceKey_grabWindow, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_modifiers = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceKey_modifiers, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Shift, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Lock, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Control, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceKey_modifiers_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceKey_modifiers_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceKey_modifiers_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceKey_modifiers_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceKey_modifiers_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceKey_modifiers_mask_Any, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_modifier_device = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceKey_modifier_device, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_key = field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceKey_key, little_endian);
|
|
f_grabbed_device = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceKey_grabbed_device, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xinputGrabDeviceButton(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_grab_window;
|
|
int f_grabbed_device;
|
|
int f_modifier_device;
|
|
int f_num_classes;
|
|
int f_modifiers;
|
|
int f_this_device_mode;
|
|
int f_other_device_mode;
|
|
int f_button;
|
|
int f_owner_events;
|
|
f_grab_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_grab_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_grabbed_device = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_grabbed_device, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_modifier_device = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_modifier_device, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_num_classes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_num_classes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_modifiers = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_modifiers, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceButton_modifiers_mask_Shift, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceButton_modifiers_mask_Lock, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceButton_modifiers_mask_Control, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceButton_modifiers_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceButton_modifiers_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceButton_modifiers_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceButton_modifiers_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceButton_modifiers_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_GrabDeviceButton_modifiers_mask_Any, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_this_device_mode = field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_this_device_mode, little_endian);
|
|
f_other_device_mode = field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_other_device_mode, little_endian);
|
|
f_button = field8(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_button, little_endian);
|
|
f_owner_events = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_owner_events, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xinput_GrabDeviceButton_classes, hf_x11_xinput_GrabDeviceButton_classes_item, f_num_classes, little_endian);
|
|
length -= f_num_classes * 4;
|
|
}
|
|
|
|
static void xinputUngrabDeviceButton(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_grab_window;
|
|
int f_modifiers;
|
|
int f_modifier_device;
|
|
int f_button;
|
|
int f_grabbed_device;
|
|
f_grab_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceButton_grab_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_modifiers = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceButton_modifiers, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Shift, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Lock, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Control, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceButton_modifiers_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceButton_modifiers_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceButton_modifiers_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceButton_modifiers_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceButton_modifiers_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xinput_UngrabDeviceButton_modifiers_mask_Any, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_modifier_device = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceButton_modifier_device, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_button = field8(tvb, offsetp, t, hf_x11_xinput_UngrabDeviceButton_button, little_endian);
|
|
f_grabbed_device = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceButton_grabbed_device, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xinputAllowDeviceEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_time;
|
|
int f_mode;
|
|
int f_device_id;
|
|
f_time = field32(tvb, offsetp, t, hf_x11_xinput_AllowDeviceEvents_time, little_endian);
|
|
f_mode = field8(tvb, offsetp, t, hf_x11_xinput_AllowDeviceEvents_mode, little_endian);
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_AllowDeviceEvents_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xinputGetDeviceFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceFocus_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
static void xinputGetDeviceFocus_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_focus;
|
|
int f_time;
|
|
int f_revert_to;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceFocus");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-GetDeviceFocus)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_focus = field32(tvb, offsetp, t, hf_x11_xinput_GetDeviceFocus_reply_focus, little_endian);
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceFocus_reply_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_revert_to = field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceFocus_reply_revert_to, little_endian);
|
|
UNUSED(15);
|
|
}
|
|
|
|
static void xinputSetDeviceFocus(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_focus;
|
|
int f_time;
|
|
int f_revert_to;
|
|
int f_device_id;
|
|
f_focus = field32(tvb, offsetp, t, hf_x11_xinput_SetDeviceFocus_focus, little_endian);
|
|
f_time = field32(tvb, offsetp, t, hf_x11_xinput_SetDeviceFocus_time, little_endian);
|
|
f_revert_to = field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceFocus_revert_to, little_endian);
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceFocus_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xinputGetFeedbackControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetFeedbackControl_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
static void xinputGetFeedbackControl_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_feedback;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetFeedbackControl");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-GetFeedbackControl)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_feedback = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetFeedbackControl_reply_num_feedback, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(22);
|
|
}
|
|
|
|
static void xinputGetDeviceKeyMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
int f_first_keycode;
|
|
int f_count;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_first_keycode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_first_keycode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_count = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_count, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void xinputGetDeviceKeyMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_keysyms_per_keycode;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceKeyMapping");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-GetDeviceKeyMapping)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_keysyms_per_keycode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceKeyMapping_reply_keysyms_per_keycode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(23);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xinput_GetDeviceKeyMapping_reply_keysyms, hf_x11_xinput_GetDeviceKeyMapping_reply_keysyms_item, f_length, little_endian);
|
|
}
|
|
|
|
static void xinputChangeDeviceKeyMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
int f_first_keycode;
|
|
int f_keysyms_per_keycode;
|
|
int f_keycode_count;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_first_keycode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_first_keycode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_keysyms_per_keycode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_keysyms_per_keycode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_keycode_count = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceKeyMapping_keycode_count, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xinput_ChangeDeviceKeyMapping_keysyms, hf_x11_xinput_ChangeDeviceKeyMapping_keysyms_item, (f_keycode_count * f_keysyms_per_keycode), little_endian);
|
|
length -= (f_keycode_count * f_keysyms_per_keycode) * 4;
|
|
}
|
|
|
|
static void xinputGetDeviceModifierMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceModifierMapping_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
static void xinputGetDeviceModifierMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_keycodes_per_modifier;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceModifierMapping");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-GetDeviceModifierMapping)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_keycodes_per_modifier = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceModifierMapping_reply_keycodes_per_modifier, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(23);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xinput_GetDeviceModifierMapping_reply_keymaps, (f_keycodes_per_modifier * 8), little_endian);
|
|
}
|
|
|
|
static void xinputSetDeviceModifierMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
int f_keycodes_per_modifier;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceModifierMapping_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_keycodes_per_modifier = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceModifierMapping_keycodes_per_modifier, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xinput_SetDeviceModifierMapping_keymaps, (f_keycodes_per_modifier * 8), little_endian);
|
|
length -= (f_keycodes_per_modifier * 8) * 1;
|
|
}
|
|
static void xinputSetDeviceModifierMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceModifierMapping");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-SetDeviceModifierMapping)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_status = field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceModifierMapping_reply_status, little_endian);
|
|
UNUSED(23);
|
|
}
|
|
|
|
static void xinputGetDeviceButtonMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceButtonMapping_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
static void xinputGetDeviceButtonMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_map_size;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceButtonMapping");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-GetDeviceButtonMapping)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_map_size = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceButtonMapping_reply_map_size, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(23);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xinput_GetDeviceButtonMapping_reply_map, f_map_size, little_endian);
|
|
}
|
|
|
|
static void xinputSetDeviceButtonMapping(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
int f_map_size;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceButtonMapping_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_map_size = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceButtonMapping_map_size, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xinput_SetDeviceButtonMapping_map, f_map_size, little_endian);
|
|
length -= f_map_size * 1;
|
|
}
|
|
static void xinputSetDeviceButtonMapping_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceButtonMapping");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-SetDeviceButtonMapping)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_status = field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceButtonMapping_reply_status, little_endian);
|
|
UNUSED(23);
|
|
}
|
|
|
|
static void xinputQueryDeviceState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_QueryDeviceState_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
static void xinputQueryDeviceState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_classes;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryDeviceState");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-QueryDeviceState)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_classes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_QueryDeviceState_reply_num_classes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(23);
|
|
}
|
|
|
|
static void xinputSendExtensionEvent(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_destination;
|
|
int f_device_id;
|
|
int f_propagate;
|
|
int f_num_classes;
|
|
int f_num_events;
|
|
f_destination = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_destination, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_propagate = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_propagate, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_num_classes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_num_classes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_events = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SendExtensionEvent_num_events, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xinput_SendExtensionEvent_events, (f_num_events * 32), little_endian);
|
|
length -= (f_num_events * 32) * 1;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xinput_SendExtensionEvent_classes, hf_x11_xinput_SendExtensionEvent_classes_item, f_num_classes, little_endian);
|
|
length -= f_num_classes * 4;
|
|
}
|
|
|
|
static void xinputDeviceBell(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
int f_feedback_id;
|
|
int f_feedback_class;
|
|
int f_percent;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceBell_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_feedback_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceBell_feedback_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_feedback_class = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceBell_feedback_class, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_percent = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceBell_percent, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xinputSetDeviceValuators(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device_id;
|
|
int f_first_valuator;
|
|
int f_num_valuators;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_first_valuator = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_first_valuator, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_num_valuators = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_num_valuators, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
listOfInt32(tvb, offsetp, t, hf_x11_xinput_SetDeviceValuators_valuators, hf_x11_xinput_SetDeviceValuators_valuators_item, f_num_valuators, little_endian);
|
|
length -= f_num_valuators * 4;
|
|
}
|
|
static void xinputSetDeviceValuators_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDeviceValuators");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-SetDeviceValuators)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_status = field8(tvb, offsetp, t, hf_x11_xinput_SetDeviceValuators_reply_status, little_endian);
|
|
UNUSED(23);
|
|
}
|
|
|
|
static void xinputGetDeviceControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_control_id;
|
|
int f_device_id;
|
|
f_control_id = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceControl_control_id, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceControl_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
}
|
|
static void xinputGetDeviceControl_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceControl");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xinput-GetDeviceControl)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_status = field8(tvb, offsetp, t, hf_x11_xinput_GetDeviceControl_reply_status, little_endian);
|
|
UNUSED(23);
|
|
}
|
|
|
|
static void xinputDeviceValuator(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_device_id;
|
|
int f_device_state;
|
|
int f_num_valuators;
|
|
int f_first_valuator;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceValuator_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
CARD16(event_sequencenumber);
|
|
f_device_state = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceValuator_device_state, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_valuators = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceValuator_num_valuators, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_first_valuator = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceValuator_first_valuator, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfInt32(tvb, offsetp, t, hf_x11_xinput_DeviceValuator_valuators, hf_x11_xinput_DeviceValuator_valuators_item, 6, little_endian);
|
|
}
|
|
|
|
static void xinputDeviceKeyPress(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_detail;
|
|
int f_time;
|
|
int f_root;
|
|
int f_event;
|
|
int f_child;
|
|
int f_root_x;
|
|
int f_root_y;
|
|
int f_event_x;
|
|
int f_event_y;
|
|
int f_state;
|
|
int f_same_screen;
|
|
int f_device_id;
|
|
f_detail = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_detail, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
CARD16(event_sequencenumber);
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_root = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_root, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_event = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_event, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_child = field32(tvb, offsetp, t, hf_x11_xinput_DeviceKeyPress_child, little_endian);
|
|
f_root_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_root_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_root_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_root_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_event_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_event_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_event_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_event_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_state = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_state, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_same_screen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_same_screen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xinputFocusIn(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_detail;
|
|
int f_time;
|
|
int f_window;
|
|
int f_mode;
|
|
int f_device_id;
|
|
f_detail = field8(tvb, offsetp, t, hf_x11_xinput_FocusIn_detail, little_endian);
|
|
CARD16(event_sequencenumber);
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_FocusIn_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_FocusIn_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mode = field8(tvb, offsetp, t, hf_x11_xinput_FocusIn_mode, little_endian);
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_FocusIn_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(18);
|
|
}
|
|
|
|
static void xinputDeviceStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_device_id;
|
|
int f_time;
|
|
int f_num_keys;
|
|
int f_num_buttons;
|
|
int f_num_valuators;
|
|
int f_classes_reported;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
CARD16(event_sequencenumber);
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_keys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_num_keys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_num_buttons = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_num_buttons, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_num_valuators = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_num_valuators, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_classes_reported = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceStateNotify_classes_reported, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceStateNotify_buttons, 4, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceStateNotify_keys, 4, little_endian);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xinput_DeviceStateNotify_valuators, hf_x11_xinput_DeviceStateNotify_valuators_item, 3, little_endian);
|
|
}
|
|
|
|
static void xinputDeviceMappingNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_device_id;
|
|
int f_request;
|
|
int f_first_keycode;
|
|
int f_count;
|
|
int f_time;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
CARD16(event_sequencenumber);
|
|
f_request = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_request, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_first_keycode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_first_keycode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_count = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_count, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceMappingNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
}
|
|
|
|
static void xinputChangeDeviceNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_device_id;
|
|
int f_time;
|
|
int f_request;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceNotify_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
CARD16(event_sequencenumber);
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_request = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceNotify_request, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(23);
|
|
}
|
|
|
|
static void xinputDeviceKeyStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_device_id;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceKeyStateNotify_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
CARD16(event_sequencenumber);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceKeyStateNotify_keys, 28, little_endian);
|
|
}
|
|
|
|
static void xinputDeviceButtonStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_device_id;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceButtonStateNotify_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
CARD16(event_sequencenumber);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xinput_DeviceButtonStateNotify_buttons, 28, little_endian);
|
|
}
|
|
|
|
static void xinputDevicePresenceNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_devchange;
|
|
int f_device_id;
|
|
int f_control;
|
|
UNUSED(1);
|
|
CARD16(event_sequencenumber);
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DevicePresenceNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_devchange = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DevicePresenceNotify_devchange, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_device_id = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DevicePresenceNotify_device_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_control = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DevicePresenceNotify_control, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(20);
|
|
}
|
|
static const value_string xinput_extension_minor[] = {
|
|
{ 1, "GetExtensionVersion" },
|
|
{ 2, "ListInputDevices" },
|
|
{ 3, "OpenDevice" },
|
|
{ 4, "CloseDevice" },
|
|
{ 5, "SetDeviceMode" },
|
|
{ 6, "SelectExtensionEvent" },
|
|
{ 7, "GetSelectedExtensionEvents" },
|
|
{ 8, "ChangeDeviceDontPropagateList" },
|
|
{ 9, "GetDeviceDontPropagateList" },
|
|
{ 10, "GetDeviceMotionEvents" },
|
|
{ 11, "ChangeKeyboardDevice" },
|
|
{ 12, "ChangePointerDevice" },
|
|
{ 13, "GrabDevice" },
|
|
{ 14, "UngrabDevice" },
|
|
{ 15, "GrabDeviceKey" },
|
|
{ 16, "UngrabDeviceKey" },
|
|
{ 17, "GrabDeviceButton" },
|
|
{ 18, "UngrabDeviceButton" },
|
|
{ 19, "AllowDeviceEvents" },
|
|
{ 20, "GetDeviceFocus" },
|
|
{ 21, "SetDeviceFocus" },
|
|
{ 22, "GetFeedbackControl" },
|
|
{ 24, "GetDeviceKeyMapping" },
|
|
{ 25, "ChangeDeviceKeyMapping" },
|
|
{ 26, "GetDeviceModifierMapping" },
|
|
{ 27, "SetDeviceModifierMapping" },
|
|
{ 28, "GetDeviceButtonMapping" },
|
|
{ 29, "SetDeviceButtonMapping" },
|
|
{ 30, "QueryDeviceState" },
|
|
{ 31, "SendExtensionEvent" },
|
|
{ 32, "DeviceBell" },
|
|
{ 33, "SetDeviceValuators" },
|
|
{ 34, "GetDeviceControl" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info xinput_events[] = {
|
|
{ "xinput-DeviceValuator", xinputDeviceValuator },
|
|
{ "xinput-DeviceKeyPress", xinputDeviceKeyPress },
|
|
{ "xinput-FocusIn", xinputFocusIn },
|
|
{ "xinput-DeviceStateNotify", xinputDeviceStateNotify },
|
|
{ "xinput-DeviceMappingNotify", xinputDeviceMappingNotify },
|
|
{ "xinput-ChangeDeviceNotify", xinputChangeDeviceNotify },
|
|
{ "xinput-DeviceKeyStateNotify", xinputDeviceKeyStateNotify },
|
|
{ "xinput-DeviceButtonStateNotify", xinputDeviceButtonStateNotify },
|
|
{ "xinput-DevicePresenceNotify", xinputDevicePresenceNotify },
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info xinput_replies[] = {
|
|
{ 1, xinputGetExtensionVersion_Reply },
|
|
{ 2, xinputListInputDevices_Reply },
|
|
{ 3, xinputOpenDevice_Reply },
|
|
{ 5, xinputSetDeviceMode_Reply },
|
|
{ 7, xinputGetSelectedExtensionEvents_Reply },
|
|
{ 9, xinputGetDeviceDontPropagateList_Reply },
|
|
{ 10, xinputGetDeviceMotionEvents_Reply },
|
|
{ 11, xinputChangeKeyboardDevice_Reply },
|
|
{ 12, xinputChangePointerDevice_Reply },
|
|
{ 13, xinputGrabDevice_Reply },
|
|
{ 20, xinputGetDeviceFocus_Reply },
|
|
{ 22, xinputGetFeedbackControl_Reply },
|
|
{ 24, xinputGetDeviceKeyMapping_Reply },
|
|
{ 26, xinputGetDeviceModifierMapping_Reply },
|
|
{ 27, xinputSetDeviceModifierMapping_Reply },
|
|
{ 28, xinputGetDeviceButtonMapping_Reply },
|
|
{ 29, xinputSetDeviceButtonMapping_Reply },
|
|
{ 30, xinputQueryDeviceState_Reply },
|
|
{ 33, xinputSetDeviceValuators_Reply },
|
|
{ 34, xinputGetDeviceControl_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_xinput(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(xinput_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, xinput_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 1:
|
|
xinputGetExtensionVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
xinputListInputDevices(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
xinputOpenDevice(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
xinputCloseDevice(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
xinputSetDeviceMode(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
xinputSelectExtensionEvent(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
xinputGetSelectedExtensionEvents(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
xinputChangeDeviceDontPropagateList(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 9:
|
|
xinputGetDeviceDontPropagateList(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 10:
|
|
xinputGetDeviceMotionEvents(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 11:
|
|
xinputChangeKeyboardDevice(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 12:
|
|
xinputChangePointerDevice(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 13:
|
|
xinputGrabDevice(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 14:
|
|
xinputUngrabDevice(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 15:
|
|
xinputGrabDeviceKey(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 16:
|
|
xinputUngrabDeviceKey(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 17:
|
|
xinputGrabDeviceButton(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 18:
|
|
xinputUngrabDeviceButton(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 19:
|
|
xinputAllowDeviceEvents(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 20:
|
|
xinputGetDeviceFocus(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 21:
|
|
xinputSetDeviceFocus(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 22:
|
|
xinputGetFeedbackControl(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 24:
|
|
xinputGetDeviceKeyMapping(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 25:
|
|
xinputChangeDeviceKeyMapping(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 26:
|
|
xinputGetDeviceModifierMapping(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 27:
|
|
xinputSetDeviceModifierMapping(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 28:
|
|
xinputGetDeviceButtonMapping(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 29:
|
|
xinputSetDeviceButtonMapping(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 30:
|
|
xinputQueryDeviceState(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 31:
|
|
xinputSendExtensionEvent(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 32:
|
|
xinputDeviceBell(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 33:
|
|
xinputSetDeviceValuators(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 34:
|
|
xinputGetDeviceControl(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_xinput(void)
|
|
{
|
|
set_handler("XInputExtension", dispatch_xinput, xinput_errors, xinput_events, xinput_replies);
|
|
}
|
|
|
|
static void struct_AXOption(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
int base = *offsetp;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_fbopt;
|
|
int f_skopt;
|
|
item = proto_tree_add_item(root, hf_x11_union_AXOption, tvb, base, 2, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
|
|
*offsetp = base;
|
|
f_fbopt = field16(tvb, offsetp, t, hf_x11_union_AXOption_fbopt, little_endian);
|
|
*offsetp = base;
|
|
f_skopt = field16(tvb, offsetp, t, hf_x11_union_AXOption_skopt, little_endian);
|
|
base += 2;
|
|
}
|
|
*offsetp = base;
|
|
}
|
|
|
|
static void struct_IndicatorMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_flags;
|
|
int f_whichGroups;
|
|
int f_groups;
|
|
int f_whichMods;
|
|
int f_mods;
|
|
int f_realMods;
|
|
int f_vmods;
|
|
int f_ctrls;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_IndicatorMap, tvb, *offsetp, 12, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_flags = field8(tvb, offsetp, t, hf_x11_struct_IndicatorMap_flags, little_endian);
|
|
f_whichGroups = field8(tvb, offsetp, t, hf_x11_struct_IndicatorMap_whichGroups, little_endian);
|
|
f_groups = field8(tvb, offsetp, t, hf_x11_struct_IndicatorMap_groups, little_endian);
|
|
f_whichMods = field8(tvb, offsetp, t, hf_x11_struct_IndicatorMap_whichMods, little_endian);
|
|
f_mods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_IndicatorMap_mods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_mods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_mods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_mods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_mods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_mods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_mods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_mods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_mods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_mods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_realMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_IndicatorMap_realMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_realMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_realMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_realMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_realMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_realMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_realMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_realMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_realMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_realMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_vmods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_IndicatorMap_vmods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_IndicatorMap_vmods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_ctrls = field32(tvb, offsetp, t, hf_x11_struct_IndicatorMap_ctrls, little_endian);
|
|
}
|
|
}
|
|
|
|
static void struct_ModDef(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_mask;
|
|
int f_realMods;
|
|
int f_vmods;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_ModDef, tvb, *offsetp, 4, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_mask = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_ModDef_mask, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_mask_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_mask_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_mask_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_mask_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_mask_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_mask_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_mask_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_mask_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_mask_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_realMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_ModDef_realMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_realMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_realMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_realMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_realMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_realMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_realMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_realMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_realMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_realMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_vmods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_ModDef_vmods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_ModDef_vmods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static void struct_KeyName(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_KeyName, tvb, *offsetp, 1, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_KeyName_name, 4, little_endian);
|
|
}
|
|
}
|
|
|
|
static void struct_KeyAlias(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_KeyAlias, tvb, *offsetp, 2, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_KeyAlias_real, 4, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_KeyAlias_alias, 4, little_endian);
|
|
}
|
|
}
|
|
|
|
static int struct_size_CountedString16(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_length;
|
|
f_length = VALUE16(tvb, *offsetp + size + 0);
|
|
size += f_length * 1;
|
|
return size + 3;
|
|
}
|
|
|
|
static void struct_CountedString16(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_length;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_CountedString16, tvb, *offsetp, struct_size_CountedString16(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_length = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CountedString16_length, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_CountedString16_string, f_length, little_endian);
|
|
UNUSED(1);
|
|
}
|
|
}
|
|
|
|
static void struct_KTMapEntry(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_active;
|
|
int f_mods_mask;
|
|
int f_level;
|
|
int f_mods_mods;
|
|
int f_mods_vmods;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_KTMapEntry, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_active = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_KTMapEntry_active, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_mods_mask = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_KTMapEntry_mods_mask, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mask_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mask_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mask_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mask_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mask_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mask_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mask_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mask_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mask_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_level = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_KTMapEntry_level, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_mods_mods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_KTMapEntry_mods_mods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_mods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_mods_vmods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_KTMapEntry_mods_vmods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTMapEntry_mods_vmods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
}
|
|
|
|
static int struct_size_KeyType(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_nMapEntries;
|
|
int f_hasPreserve;
|
|
f_nMapEntries = VALUE8(tvb, *offsetp + size + 5);
|
|
f_hasPreserve = VALUE8(tvb, *offsetp + size + 6);
|
|
size += f_nMapEntries * 8;
|
|
size += (f_hasPreserve * f_nMapEntries) * 4;
|
|
return size + 8;
|
|
}
|
|
|
|
static void struct_KeyType(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_mods_mask;
|
|
int f_mods_mods;
|
|
int f_mods_vmods;
|
|
int f_numLevels;
|
|
int f_nMapEntries;
|
|
int f_hasPreserve;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_KeyType, tvb, *offsetp, struct_size_KeyType(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_mods_mask = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_KeyType_mods_mask, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mask_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mask_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mask_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mask_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mask_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mask_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mask_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mask_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mask_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_mods_mods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_KeyType_mods_mods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_mods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_mods_vmods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_KeyType_mods_vmods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyType_mods_vmods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_numLevels = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_KeyType_numLevels, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nMapEntries = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_KeyType_nMapEntries, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_hasPreserve = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_KeyType_hasPreserve, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
struct_KTMapEntry(tvb, offsetp, t, little_endian, f_nMapEntries);
|
|
struct_ModDef(tvb, offsetp, t, little_endian, (f_hasPreserve * f_nMapEntries));
|
|
}
|
|
}
|
|
|
|
static int struct_size_KeySymMap(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_nSyms;
|
|
f_nSyms = VALUE16(tvb, *offsetp + size + 6);
|
|
size += f_nSyms * 4;
|
|
return size + 8;
|
|
}
|
|
|
|
static void struct_KeySymMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_groupInfo;
|
|
int f_width;
|
|
int f_nSyms;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_KeySymMap, tvb, *offsetp, struct_size_KeySymMap(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_KeySymMap_kt_index, 4, little_endian);
|
|
f_groupInfo = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_KeySymMap_groupInfo, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_width = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_KeySymMap_width, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nSyms = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_KeySymMap_nSyms, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_struct_KeySymMap_syms, hf_x11_struct_KeySymMap_syms_item, f_nSyms, little_endian);
|
|
}
|
|
}
|
|
|
|
static void struct_CommonBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_data;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_CommonBehavior, tvb, *offsetp, 2, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CommonBehavior_type, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_data = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CommonBehavior_data, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static void struct_DefaultBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_DefaultBehavior, tvb, *offsetp, 2, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DefaultBehavior_type, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
}
|
|
}
|
|
|
|
static void struct_RadioGroupBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_group;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_RadioGroupBehavior, tvb, *offsetp, 2, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_RadioGroupBehavior_type, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_group = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_RadioGroupBehavior_group, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static void struct_Overlay1Behavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_key;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Overlay1Behavior, tvb, *offsetp, 2, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Overlay1Behavior_type, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_key = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Overlay1Behavior_key, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static void struct_Overlay2Behavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_key;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Overlay2Behavior, tvb, *offsetp, 2, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Overlay2Behavior_type, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_key = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Overlay2Behavior_key, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static void struct_Behavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
int base = *offsetp;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
item = proto_tree_add_item(root, hf_x11_union_Behavior, tvb, base, 2, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
|
|
*offsetp = base;
|
|
struct_CommonBehavior(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_DefaultBehavior(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_DefaultBehavior(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_RadioGroupBehavior(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_Overlay1Behavior(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_Overlay2Behavior(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_DefaultBehavior(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_RadioGroupBehavior(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_Overlay1Behavior(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_Overlay2Behavior(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
f_type = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_union_Behavior_type, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
base += 2;
|
|
}
|
|
*offsetp = base;
|
|
}
|
|
|
|
static void struct_SetBehavior(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_keycode;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SetBehavior, tvb, *offsetp, 4, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_keycode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SetBehavior_keycode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
struct_Behavior(tvb, offsetp, t, little_endian, 1);
|
|
UNUSED(1);
|
|
}
|
|
}
|
|
|
|
static void struct_SetExplicit(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_keycode;
|
|
int f_explicit;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SetExplicit, tvb, *offsetp, 2, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_keycode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SetExplicit_keycode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_explicit = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SetExplicit_explicit, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetExplicit_explicit_mask_KeyType1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetExplicit_explicit_mask_KeyType2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetExplicit_explicit_mask_KeyType3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetExplicit_explicit_mask_KeyType4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetExplicit_explicit_mask_Interpret, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetExplicit_explicit_mask_AutoRepeat, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetExplicit_explicit_mask_Behavior, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetExplicit_explicit_mask_VModMap, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static void struct_KeyModMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_keycode;
|
|
int f_mods;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_KeyModMap, tvb, *offsetp, 2, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_keycode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_KeyModMap_keycode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_mods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_KeyModMap_mods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyModMap_mods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyModMap_mods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyModMap_mods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyModMap_mods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyModMap_mods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyModMap_mods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyModMap_mods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyModMap_mods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyModMap_mods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static void struct_KeyVModMap(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_keycode;
|
|
int f_vmods;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_KeyVModMap, tvb, *offsetp, 4, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_keycode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_KeyVModMap_keycode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_vmods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_KeyVModMap_vmods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KeyVModMap_vmods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static void struct_KTSetMapEntry(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_level;
|
|
int f_realMods;
|
|
int f_virtualMods;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_KTSetMapEntry, tvb, *offsetp, 4, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_level = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_KTSetMapEntry_level, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_realMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_KTSetMapEntry_realMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_realMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_realMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_realMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_realMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_realMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_realMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_realMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_realMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_realMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_virtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_KTSetMapEntry_virtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_KTSetMapEntry_virtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static int struct_size_SetKeyType(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_nMapEntries;
|
|
int f_preserve;
|
|
f_nMapEntries = VALUE8(tvb, *offsetp + size + 5);
|
|
f_preserve = VALUE8(tvb, *offsetp + size + 6);
|
|
size += f_nMapEntries * 4;
|
|
size += (f_preserve * f_nMapEntries) * 4;
|
|
return size + 8;
|
|
}
|
|
|
|
static void struct_SetKeyType(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_mask;
|
|
int f_realMods;
|
|
int f_virtualMods;
|
|
int f_numLevels;
|
|
int f_nMapEntries;
|
|
int f_preserve;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SetKeyType, tvb, *offsetp, struct_size_SetKeyType(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_mask = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SetKeyType_mask, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_mask_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_mask_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_mask_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_mask_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_mask_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_mask_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_mask_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_mask_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_mask_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_realMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SetKeyType_realMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_realMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_realMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_realMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_realMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_realMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_realMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_realMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_realMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_realMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_virtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SetKeyType_virtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SetKeyType_virtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_numLevels = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SetKeyType_numLevels, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nMapEntries = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SetKeyType_nMapEntries, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_preserve = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SetKeyType_preserve, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
struct_KTSetMapEntry(tvb, offsetp, t, little_endian, f_nMapEntries);
|
|
struct_KTSetMapEntry(tvb, offsetp, t, little_endian, (f_preserve * f_nMapEntries));
|
|
}
|
|
}
|
|
|
|
static int struct_size_Property(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_valueLength;
|
|
int f_nameLength;
|
|
f_nameLength = VALUE16(tvb, *offsetp + size + 0);
|
|
size += f_nameLength * 1;
|
|
f_valueLength = VALUE16(tvb, *offsetp + size + 2);
|
|
size += f_valueLength * 1;
|
|
return size + 4;
|
|
}
|
|
|
|
static void struct_Property(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_nameLength;
|
|
int f_valueLength;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Property, tvb, *offsetp, struct_size_Property(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_nameLength = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Property_nameLength, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_Property_name, f_nameLength, little_endian);
|
|
f_valueLength = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Property_valueLength, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_Property_value, f_valueLength, little_endian);
|
|
}
|
|
}
|
|
|
|
static int struct_size_Outline(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_nPoints;
|
|
f_nPoints = VALUE8(tvb, *offsetp + size + 0);
|
|
size += f_nPoints * 4;
|
|
return size + 4;
|
|
}
|
|
|
|
static void struct_Outline(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_nPoints;
|
|
int f_cornerRadius;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Outline, tvb, *offsetp, struct_size_Outline(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_nPoints = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Outline_nPoints, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_cornerRadius = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Outline_cornerRadius, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
struct_POINT(tvb, offsetp, t, little_endian, f_nPoints);
|
|
}
|
|
}
|
|
|
|
static int struct_size_Shape(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int i, off;
|
|
int f_nOutlines;
|
|
f_nOutlines = VALUE8(tvb, *offsetp + size + 4);
|
|
for (i = 0; i < f_nOutlines; i++) {
|
|
off = (*offsetp) + size + 8;
|
|
size += struct_size_Outline(tvb, &off, little_endian);
|
|
}
|
|
return size + 8;
|
|
}
|
|
|
|
static void struct_Shape(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_name;
|
|
int f_nOutlines;
|
|
int f_primaryNdx;
|
|
int f_approxNdx;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Shape, tvb, *offsetp, struct_size_Shape(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Shape_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_nOutlines = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Shape_nOutlines, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_primaryNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Shape_primaryNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_approxNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Shape_approxNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
struct_Outline(tvb, offsetp, t, little_endian, f_nOutlines);
|
|
}
|
|
}
|
|
|
|
static void struct_Key(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_gap;
|
|
int f_shapeNdx;
|
|
int f_colorNdx;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Key, tvb, *offsetp, 5, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_Key_name, 4, little_endian);
|
|
f_gap = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Key_gap, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_shapeNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Key_shapeNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_colorNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Key_colorNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static void struct_OverlayKey(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_OverlayKey, tvb, *offsetp, 2, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_OverlayKey_over, 4, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_OverlayKey_under, 4, little_endian);
|
|
}
|
|
}
|
|
|
|
static int struct_size_OverlayRow(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_nKeys;
|
|
f_nKeys = VALUE8(tvb, *offsetp + size + 1);
|
|
size += f_nKeys * 2;
|
|
return size + 4;
|
|
}
|
|
|
|
static void struct_OverlayRow(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_rowUnder;
|
|
int f_nKeys;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_OverlayRow, tvb, *offsetp, struct_size_OverlayRow(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_rowUnder = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OverlayRow_rowUnder, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OverlayRow_nKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
struct_OverlayKey(tvb, offsetp, t, little_endian, f_nKeys);
|
|
}
|
|
}
|
|
|
|
static int struct_size_Overlay(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int i, off;
|
|
int f_nRows;
|
|
f_nRows = VALUE8(tvb, *offsetp + size + 4);
|
|
for (i = 0; i < f_nRows; i++) {
|
|
off = (*offsetp) + size + 8;
|
|
size += struct_size_OverlayRow(tvb, &off, little_endian);
|
|
}
|
|
return size + 8;
|
|
}
|
|
|
|
static void struct_Overlay(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_name;
|
|
int f_nRows;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Overlay, tvb, *offsetp, struct_size_Overlay(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Overlay_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_nRows = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Overlay_nRows, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
struct_OverlayRow(tvb, offsetp, t, little_endian, f_nRows);
|
|
}
|
|
}
|
|
|
|
static int struct_size_Row(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_nKeys;
|
|
f_nKeys = VALUE8(tvb, *offsetp + size + 4);
|
|
size += f_nKeys * 5;
|
|
return size + 8;
|
|
}
|
|
|
|
static void struct_Row(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_top;
|
|
int f_left;
|
|
int f_nKeys;
|
|
int f_vertical;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Row, tvb, *offsetp, struct_size_Row(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Row_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Row_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Row_nKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_vertical = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Row_vertical, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
struct_Key(tvb, offsetp, t, little_endian, f_nKeys);
|
|
}
|
|
}
|
|
|
|
static void struct_CommonDoodad(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_name;
|
|
int f_type;
|
|
int f_priority;
|
|
int f_top;
|
|
int f_left;
|
|
int f_angle;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_CommonDoodad, tvb, *offsetp, 12, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CommonDoodad_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_CommonDoodad_type, little_endian);
|
|
f_priority = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CommonDoodad_priority, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CommonDoodad_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CommonDoodad_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_angle = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_CommonDoodad_angle, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static void struct_ShapeDoodad(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_name;
|
|
int f_type;
|
|
int f_priority;
|
|
int f_top;
|
|
int f_left;
|
|
int f_angle;
|
|
int f_colorNdx;
|
|
int f_shapeNdx;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_ShapeDoodad, tvb, *offsetp, 20, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ShapeDoodad_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_ShapeDoodad_type, little_endian);
|
|
f_priority = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ShapeDoodad_priority, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ShapeDoodad_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ShapeDoodad_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_angle = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ShapeDoodad_angle, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_colorNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ShapeDoodad_colorNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_shapeNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ShapeDoodad_shapeNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(6);
|
|
}
|
|
}
|
|
|
|
static void struct_TextDoodad(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_name;
|
|
int f_type;
|
|
int f_priority;
|
|
int f_top;
|
|
int f_left;
|
|
int f_angle;
|
|
int f_width;
|
|
int f_height;
|
|
int f_colorNdx;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_TextDoodad, tvb, *offsetp, 20, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TextDoodad_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_TextDoodad_type, little_endian);
|
|
f_priority = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TextDoodad_priority, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TextDoodad_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TextDoodad_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_angle = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TextDoodad_angle, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TextDoodad_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TextDoodad_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_colorNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TextDoodad_colorNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
struct_CountedString16(tvb, offsetp, t, little_endian, 1);
|
|
struct_CountedString16(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
}
|
|
|
|
static void struct_IndicatorDoodad(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_name;
|
|
int f_type;
|
|
int f_priority;
|
|
int f_top;
|
|
int f_left;
|
|
int f_angle;
|
|
int f_shapeNdx;
|
|
int f_onColorNdx;
|
|
int f_offColorNdx;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_IndicatorDoodad, tvb, *offsetp, 20, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_IndicatorDoodad_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_IndicatorDoodad_type, little_endian);
|
|
f_priority = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_IndicatorDoodad_priority, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_IndicatorDoodad_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_IndicatorDoodad_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_angle = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_IndicatorDoodad_angle, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_shapeNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_IndicatorDoodad_shapeNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_onColorNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_IndicatorDoodad_onColorNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_offColorNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_IndicatorDoodad_offColorNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(5);
|
|
}
|
|
}
|
|
|
|
static void struct_LogoDoodad(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_name;
|
|
int f_type;
|
|
int f_priority;
|
|
int f_top;
|
|
int f_left;
|
|
int f_angle;
|
|
int f_colorNdx;
|
|
int f_shapeNdx;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_LogoDoodad, tvb, *offsetp, 20, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_LogoDoodad_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_LogoDoodad_type, little_endian);
|
|
f_priority = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_LogoDoodad_priority, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_LogoDoodad_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_LogoDoodad_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_angle = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_LogoDoodad_angle, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_colorNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_LogoDoodad_colorNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_shapeNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_LogoDoodad_shapeNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(6);
|
|
struct_CountedString16(tvb, offsetp, t, little_endian, 1);
|
|
}
|
|
}
|
|
|
|
static void struct_Doodad(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
int base = *offsetp;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
item = proto_tree_add_item(root, hf_x11_union_Doodad, tvb, base, 20, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
|
|
*offsetp = base;
|
|
struct_CommonDoodad(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_ShapeDoodad(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_TextDoodad(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_IndicatorDoodad(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_LogoDoodad(tvb, offsetp, t, little_endian, 1);
|
|
base += 20;
|
|
}
|
|
*offsetp = base;
|
|
}
|
|
|
|
static int struct_size_Section(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int i, off;
|
|
int f_nOverlays;
|
|
int f_nDoodads;
|
|
int f_nRows;
|
|
f_nRows = VALUE8(tvb, *offsetp + size + 15);
|
|
f_nDoodads = VALUE8(tvb, *offsetp + size + 16);
|
|
f_nOverlays = VALUE8(tvb, *offsetp + size + 17);
|
|
for (i = 0; i < f_nRows; i++) {
|
|
off = (*offsetp) + size + 20;
|
|
size += struct_size_Row(tvb, &off, little_endian);
|
|
}
|
|
size += f_nDoodads * 20;
|
|
for (i = 0; i < f_nOverlays; i++) {
|
|
off = (*offsetp) + size + 20;
|
|
size += struct_size_Overlay(tvb, &off, little_endian);
|
|
}
|
|
return size + 20;
|
|
}
|
|
|
|
static void struct_Section(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_name;
|
|
int f_top;
|
|
int f_left;
|
|
int f_width;
|
|
int f_height;
|
|
int f_angle;
|
|
int f_priority;
|
|
int f_nRows;
|
|
int f_nDoodads;
|
|
int f_nOverlays;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Section, tvb, *offsetp, struct_size_Section(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Section_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_top = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Section_top, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_left = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Section_left, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Section_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Section_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_angle = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Section_angle, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_priority = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Section_priority, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nRows = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Section_nRows, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nDoodads = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Section_nDoodads, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nOverlays = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Section_nOverlays, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
struct_Row(tvb, offsetp, t, little_endian, f_nRows);
|
|
struct_Doodad(tvb, offsetp, t, little_endian, f_nDoodads);
|
|
struct_Overlay(tvb, offsetp, t, little_endian, f_nOverlays);
|
|
}
|
|
}
|
|
|
|
static int struct_size_Listing(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_length;
|
|
f_length = VALUE16(tvb, *offsetp + size + 2);
|
|
size += f_length * 1;
|
|
return size + 4;
|
|
}
|
|
|
|
static void struct_Listing(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_flags;
|
|
int f_length;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Listing, tvb, *offsetp, struct_size_Listing(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_flags = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Listing_flags, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_length = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Listing_length, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_Listing_string, f_length, little_endian);
|
|
}
|
|
}
|
|
|
|
static int struct_size_DeviceLedInfo(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_mapsPresent;
|
|
int f_namesPresent;
|
|
f_namesPresent = VALUE32(tvb, *offsetp + size + 4);
|
|
f_mapsPresent = VALUE32(tvb, *offsetp + size + 8);
|
|
size += popcount(f_namesPresent) * 4;
|
|
size += popcount(f_mapsPresent) * 12;
|
|
return size + 20;
|
|
}
|
|
|
|
static void struct_DeviceLedInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_ledClass;
|
|
int f_ledID;
|
|
int f_namesPresent;
|
|
int f_mapsPresent;
|
|
int f_physIndicators;
|
|
int f_state;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_DeviceLedInfo, tvb, *offsetp, struct_size_DeviceLedInfo(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_ledClass = field16(tvb, offsetp, t, hf_x11_struct_DeviceLedInfo_ledClass, little_endian);
|
|
f_ledID = field16(tvb, offsetp, t, hf_x11_struct_DeviceLedInfo_ledID, little_endian);
|
|
f_namesPresent = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DeviceLedInfo_namesPresent, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mapsPresent = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DeviceLedInfo_mapsPresent, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_physIndicators = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DeviceLedInfo_physIndicators, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_state = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DeviceLedInfo_state, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_struct_DeviceLedInfo_names, hf_x11_struct_DeviceLedInfo_names_item, popcount(f_namesPresent), little_endian);
|
|
struct_IndicatorMap(tvb, offsetp, t, little_endian, popcount(f_mapsPresent));
|
|
}
|
|
}
|
|
|
|
static void struct_SANoAction(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SANoAction, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SANoAction_type, little_endian);
|
|
UNUSED(7);
|
|
}
|
|
}
|
|
|
|
static void struct_SASetMods(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_flags;
|
|
int f_mask;
|
|
int f_realMods;
|
|
int f_vmodsHigh;
|
|
int f_vmodsLow;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SASetMods, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SASetMods_type, little_endian);
|
|
f_flags = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SASetMods_flags, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_flags_mask_ClearLocks, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_flags_mask_LatchToLock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_flags_mask_GroupAbsolute, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_mask = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SASetMods_mask, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_mask_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_mask_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_mask_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_mask_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_mask_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_mask_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_mask_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_mask_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_mask_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_realMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SASetMods_realMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_realMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_realMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_realMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_realMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_realMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_realMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_realMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_realMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_realMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_vmodsHigh = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SASetMods_vmodsHigh, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsHigh_mask_8, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsHigh_mask_9, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsHigh_mask_10, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsHigh_mask_11, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsHigh_mask_12, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsHigh_mask_13, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsHigh_mask_14, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsHigh_mask_15, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_vmodsLow = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SASetMods_vmodsLow, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsLow_mask_0, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsLow_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsLow_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsLow_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsLow_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsLow_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsLow_mask_6, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetMods_vmodsLow_mask_7, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
}
|
|
}
|
|
|
|
static void struct_SASetGroup(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_flags;
|
|
int f_group;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SASetGroup, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SASetGroup_type, little_endian);
|
|
f_flags = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SASetGroup_flags, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetGroup_flags_mask_ClearLocks, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetGroup_flags_mask_LatchToLock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetGroup_flags_mask_GroupAbsolute, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_group = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SASetGroup_group, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(5);
|
|
}
|
|
}
|
|
|
|
static void struct_SAMovePtr(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_flags;
|
|
int f_xHigh;
|
|
int f_xLow;
|
|
int f_yHigh;
|
|
int f_yLow;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SAMovePtr, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SAMovePtr_type, little_endian);
|
|
f_flags = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SAMovePtr_flags, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAMovePtr_flags_mask_NoAcceleration, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAMovePtr_flags_mask_MoveAbsoluteX, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAMovePtr_flags_mask_MoveAbsoluteY, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_xHigh = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SAMovePtr_xHigh, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_xLow = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SAMovePtr_xLow, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_yHigh = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SAMovePtr_yHigh, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_yLow = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SAMovePtr_yLow, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
}
|
|
}
|
|
|
|
static void struct_SAPtrBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_flags;
|
|
int f_count;
|
|
int f_button;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SAPtrBtn, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SAPtrBtn_type, little_endian);
|
|
f_flags = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SAPtrBtn_flags, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_count = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SAPtrBtn_count, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_button = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SAPtrBtn_button, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(4);
|
|
}
|
|
}
|
|
|
|
static void struct_SALockPtrBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_flags;
|
|
int f_button;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SALockPtrBtn, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SALockPtrBtn_type, little_endian);
|
|
f_flags = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SALockPtrBtn_flags, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_button = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SALockPtrBtn_button, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(4);
|
|
}
|
|
}
|
|
|
|
static void struct_SASetPtrDflt(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_flags;
|
|
int f_affect;
|
|
int f_value;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SASetPtrDflt, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SASetPtrDflt_type, little_endian);
|
|
f_flags = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SASetPtrDflt_flags, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetPtrDflt_flags_mask_AffectDfltButton, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetPtrDflt_flags_mask_DfltBtnAbsolute, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_affect = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SASetPtrDflt_affect, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetPtrDflt_affect_mask_AffectDfltButton, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetPtrDflt_affect_mask_DfltBtnAbsolute, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_value = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SASetPtrDflt_value, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(4);
|
|
}
|
|
}
|
|
|
|
static void struct_SAIsoLock(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_flags;
|
|
int f_mask;
|
|
int f_realMods;
|
|
int f_group;
|
|
int f_affect;
|
|
int f_vmodsHigh;
|
|
int f_vmodsLow;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SAIsoLock, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SAIsoLock_type, little_endian);
|
|
f_flags = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SAIsoLock_flags, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_flags_mask_NoLock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_flags_mask_NoUnlock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_flags_mask_GroupAbsolute, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_flags_mask_ISODfltIsGroup, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_mask = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SAIsoLock_mask, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_mask_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_mask_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_mask_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_mask_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_mask_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_mask_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_mask_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_mask_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_mask_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_realMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SAIsoLock_realMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_realMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_realMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_realMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_realMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_realMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_realMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_realMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_realMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_realMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_group = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SAIsoLock_group, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_affect = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SAIsoLock_affect, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_affect_mask_Ctrls, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_affect_mask_Ptr, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_affect_mask_Group, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_affect_mask_Mods, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_vmodsHigh = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SAIsoLock_vmodsHigh, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsHigh_mask_8, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsHigh_mask_9, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsHigh_mask_10, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsHigh_mask_11, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsHigh_mask_12, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsHigh_mask_13, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsHigh_mask_14, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsHigh_mask_15, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_vmodsLow = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SAIsoLock_vmodsLow, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsLow_mask_0, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsLow_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsLow_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsLow_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsLow_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsLow_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsLow_mask_6, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAIsoLock_vmodsLow_mask_7, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static void struct_SATerminate(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SATerminate, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SATerminate_type, little_endian);
|
|
UNUSED(7);
|
|
}
|
|
}
|
|
|
|
static void struct_SASwitchScreen(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_flags;
|
|
int f_newScreen;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SASwitchScreen, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SASwitchScreen_type, little_endian);
|
|
f_flags = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SASwitchScreen_flags, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_newScreen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SASwitchScreen_newScreen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(5);
|
|
}
|
|
}
|
|
|
|
static void struct_SASetControls(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_boolCtrlsHigh;
|
|
int f_boolCtrlsLow;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SASetControls, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SASetControls_type, little_endian);
|
|
UNUSED(3);
|
|
f_boolCtrlsHigh = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SASetControls_boolCtrlsHigh, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetControls_boolCtrlsHigh_mask_AccessXFeedback, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetControls_boolCtrlsHigh_mask_AudibleBell, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetControls_boolCtrlsHigh_mask_Overlay1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetControls_boolCtrlsHigh_mask_Overlay2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetControls_boolCtrlsHigh_mask_IgnoreGroupLock, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_boolCtrlsLow = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SASetControls_boolCtrlsLow, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetControls_boolCtrlsLow_mask_RepeatKeys, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetControls_boolCtrlsLow_mask_SlowKeys, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetControls_boolCtrlsLow_mask_BounceKeys, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetControls_boolCtrlsLow_mask_StickyKeys, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetControls_boolCtrlsLow_mask_MouseKeys, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetControls_boolCtrlsLow_mask_MouseKeysAccel, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetControls_boolCtrlsLow_mask_AccessXKeys, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SASetControls_boolCtrlsLow_mask_AccessXTimeout, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
}
|
|
}
|
|
|
|
static void struct_SAActionMessage(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_flags;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SAActionMessage, tvb, *offsetp, 3, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SAActionMessage_type, little_endian);
|
|
f_flags = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SAActionMessage_flags, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAActionMessage_flags_mask_OnPress, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAActionMessage_flags_mask_OnRelease, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SAActionMessage_flags_mask_GenKeyEvent, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_SAActionMessage_message, 6, little_endian);
|
|
}
|
|
}
|
|
|
|
static void struct_SARedirectKey(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_newkey;
|
|
int f_mask;
|
|
int f_realModifiers;
|
|
int f_vmodsMaskHigh;
|
|
int f_vmodsMaskLow;
|
|
int f_vmodsHigh;
|
|
int f_vmodsLow;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SARedirectKey, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SARedirectKey_type, little_endian);
|
|
f_newkey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SARedirectKey_newkey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_mask = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SARedirectKey_mask, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_mask_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_mask_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_mask_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_mask_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_mask_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_mask_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_mask_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_mask_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_mask_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_realModifiers = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SARedirectKey_realModifiers, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_realModifiers_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_realModifiers_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_realModifiers_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_realModifiers_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_realModifiers_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_realModifiers_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_realModifiers_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_realModifiers_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_realModifiers_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_vmodsMaskHigh = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SARedirectKey_vmodsMaskHigh, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskHigh_mask_8, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskHigh_mask_9, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskHigh_mask_10, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskHigh_mask_11, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskHigh_mask_12, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskHigh_mask_13, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskHigh_mask_14, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskHigh_mask_15, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_vmodsMaskLow = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SARedirectKey_vmodsMaskLow, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskLow_mask_0, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskLow_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskLow_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskLow_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskLow_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskLow_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskLow_mask_6, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsMaskLow_mask_7, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_vmodsHigh = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SARedirectKey_vmodsHigh, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsHigh_mask_8, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsHigh_mask_9, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsHigh_mask_10, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsHigh_mask_11, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsHigh_mask_12, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsHigh_mask_13, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsHigh_mask_14, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsHigh_mask_15, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_vmodsLow = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SARedirectKey_vmodsLow, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsLow_mask_0, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsLow_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsLow_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsLow_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsLow_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsLow_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsLow_mask_6, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SARedirectKey_vmodsLow_mask_7, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static void struct_SADeviceBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_flags;
|
|
int f_count;
|
|
int f_button;
|
|
int f_device;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SADeviceBtn, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SADeviceBtn_type, little_endian);
|
|
f_flags = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SADeviceBtn_flags, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_count = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SADeviceBtn_count, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_button = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SADeviceBtn_button, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_device = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SADeviceBtn_device, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
}
|
|
|
|
static void struct_SALockDeviceBtn(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_flags;
|
|
int f_button;
|
|
int f_device;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SALockDeviceBtn, tvb, *offsetp, 5, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SALockDeviceBtn_type, little_endian);
|
|
f_flags = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_SALockDeviceBtn_flags, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SALockDeviceBtn_flags_mask_NoLock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_SALockDeviceBtn_flags_mask_NoUnlock, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_button = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SALockDeviceBtn_button, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_device = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SALockDeviceBtn_device, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static void struct_SADeviceValuator(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
int f_device;
|
|
int f_val1what;
|
|
int f_val1index;
|
|
int f_val1value;
|
|
int f_val2what;
|
|
int f_val2index;
|
|
int f_val2value;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SADeviceValuator, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_SADeviceValuator_type, little_endian);
|
|
f_device = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SADeviceValuator_device, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_val1what = field8(tvb, offsetp, t, hf_x11_struct_SADeviceValuator_val1what, little_endian);
|
|
f_val1index = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SADeviceValuator_val1index, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_val1value = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SADeviceValuator_val1value, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_val2what = field8(tvb, offsetp, t, hf_x11_struct_SADeviceValuator_val2what, little_endian);
|
|
f_val2index = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SADeviceValuator_val2index, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_val2value = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SADeviceValuator_val2value, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
static void struct_Action(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
int base = *offsetp;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_type;
|
|
item = proto_tree_add_item(root, hf_x11_union_Action, tvb, base, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
|
|
*offsetp = base;
|
|
struct_SANoAction(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SASetMods(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SASetMods(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SASetMods(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SASetGroup(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SASetGroup(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SASetGroup(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SAMovePtr(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SAPtrBtn(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SALockPtrBtn(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SASetPtrDflt(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SAIsoLock(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SATerminate(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SASwitchScreen(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SASetControls(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SASetControls(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SAActionMessage(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SARedirectKey(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SADeviceBtn(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SALockDeviceBtn(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
struct_SADeviceValuator(tvb, offsetp, t, little_endian, 1);
|
|
*offsetp = base;
|
|
f_type = field8(tvb, offsetp, t, hf_x11_union_Action_type, little_endian);
|
|
base += 8;
|
|
}
|
|
*offsetp = base;
|
|
}
|
|
|
|
static void xkbUseExtension(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_wantedMajor;
|
|
int f_wantedMinor;
|
|
f_wantedMajor = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_UseExtension_wantedMajor, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_wantedMinor = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_UseExtension_wantedMinor, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
static void xkbUseExtension_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_supported;
|
|
int f_serverMajor;
|
|
int f_serverMinor;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-UseExtension");
|
|
|
|
REPLY(reply);
|
|
f_supported = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_UseExtension_reply_supported, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-UseExtension)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_serverMajor = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_UseExtension_reply_serverMajor, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_serverMinor = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_UseExtension_reply_serverMinor, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(20);
|
|
}
|
|
|
|
static void xkbSelectEvents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_affectWhich;
|
|
int f_clear;
|
|
int f_selectAll;
|
|
int f_affectMap;
|
|
int f_map;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SelectEvents_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_affectWhich = field16(tvb, offsetp, t, hf_x11_xkb_SelectEvents_affectWhich, little_endian);
|
|
f_clear = field16(tvb, offsetp, t, hf_x11_xkb_SelectEvents_clear, little_endian);
|
|
f_selectAll = field16(tvb, offsetp, t, hf_x11_xkb_SelectEvents_selectAll, little_endian);
|
|
f_affectMap = field16(tvb, offsetp, t, hf_x11_xkb_SelectEvents_affectMap, little_endian);
|
|
f_map = field16(tvb, offsetp, t, hf_x11_xkb_SelectEvents_map, little_endian);
|
|
if (((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1 << 0)) != 0) {
|
|
int f_affectNewKeyboard;
|
|
int f_newKeyboardDetails;
|
|
f_affectNewKeyboard = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard_mask_Keycodes, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard_mask_Geometry, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NewKeyboardNotify_affectNewKeyboard_mask_DeviceID, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_newKeyboardDetails = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails_mask_Keycodes, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails_mask_Geometry, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NewKeyboardNotify_newKeyboardDetails_mask_DeviceID, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
}
|
|
if (((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1 << 2)) != 0) {
|
|
int f_affectState;
|
|
int f_stateDetails;
|
|
f_affectState = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_StateNotify_affectState, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierState, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierBase, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierLatch, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_ModifierLock, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupState, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupBase, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupLatch, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GroupLock, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_CompatState, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_GrabMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_CompatGrabMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_LookupMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_CompatLookupMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_affectState_mask_PointerButtons, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_stateDetails = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_StateNotify_stateDetails, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierState, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierBase, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierLatch, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_ModifierLock, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupState, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupBase, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupLatch, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GroupLock, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_CompatState, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_GrabMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_CompatGrabMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_LookupMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_CompatLookupMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_StateNotify_stateDetails_mask_PointerButtons, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
}
|
|
if (((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1 << 3)) != 0) {
|
|
int f_affectCtrls;
|
|
int f_ctrlDetails;
|
|
f_affectCtrls = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_GroupsWrap, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_InternalMods, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_IgnoreLockMods, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_PerKeyRepeat, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ControlsNotify_affectCtrls_mask_ControlsEnabled, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_ctrlDetails = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_GroupsWrap, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_InternalMods, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_IgnoreLockMods, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_PerKeyRepeat, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ControlsNotify_ctrlDetails_mask_ControlsEnabled, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
}
|
|
if (((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1 << 4)) != 0) {
|
|
int f_affectIndicatorState;
|
|
int f_indicatorStateDetails;
|
|
f_affectIndicatorState = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorStateNotify_affectIndicatorState, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_indicatorStateDetails = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorStateNotify_indicatorStateDetails, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if (((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1 << 5)) != 0) {
|
|
int f_affectIndicatorMap;
|
|
int f_indicatorMapDetails;
|
|
f_affectIndicatorMap = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorMapNotify_affectIndicatorMap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_indicatorMapDetails = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SelectEvents_IndicatorMapNotify_indicatorMapDetails, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if (((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1 << 6)) != 0) {
|
|
int f_affectNames;
|
|
int f_namesDetails;
|
|
f_affectNames = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_NamesNotify_affectNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Keycodes, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Geometry, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Symbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_PhysSymbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Types, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_Compat, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KeyTypeNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KTLevelNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_IndicatorNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KeyNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_KeyAliases, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_VirtualModNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_GroupNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_affectNames_mask_RGNames, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_namesDetails = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Keycodes, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Geometry, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Symbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_PhysSymbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Types, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_Compat, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KeyTypeNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KTLevelNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_IndicatorNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KeyNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_KeyAliases, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_VirtualModNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_GroupNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_NamesNotify_namesDetails_mask_RGNames, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
}
|
|
if (((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1 << 7)) != 0) {
|
|
int f_affectCompat;
|
|
int f_compatDetails;
|
|
f_affectCompat = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_CompatMapNotify_affectCompat, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_CompatMapNotify_affectCompat_mask_SymInterp, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_CompatMapNotify_affectCompat_mask_GroupCompat, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_compatDetails = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_CompatMapNotify_compatDetails, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_CompatMapNotify_compatDetails_mask_SymInterp, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_CompatMapNotify_compatDetails_mask_GroupCompat, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
}
|
|
if (((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1 << 8)) != 0) {
|
|
int f_affectBell;
|
|
int f_bellDetails;
|
|
f_affectBell = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SelectEvents_BellNotify_affectBell, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_bellDetails = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SelectEvents_BellNotify_bellDetails, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
if (((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1 << 9)) != 0) {
|
|
int f_affectMsgDetails;
|
|
int f_msgDetails;
|
|
f_affectMsgDetails = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SelectEvents_ActionMessage_affectMsgDetails, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_msgDetails = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SelectEvents_ActionMessage_msgDetails, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
if (((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1 << 10)) != 0) {
|
|
int f_affectAccessX;
|
|
int f_accessXDetails;
|
|
f_affectAccessX = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKPress, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKAccept, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKReject, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_SKRelease, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_BKAccept, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_BKReject, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_affectAccessX_mask_AXKWarning, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_accessXDetails = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKPress, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKAccept, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKReject, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_SKRelease, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_BKAccept, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_BKReject, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_AccessXNotify_accessXDetails_mask_AXKWarning, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
}
|
|
if (((f_affectWhich & ((~f_clear) & (~f_selectAll))) & (1 << 11)) != 0) {
|
|
int f_affectExtDev;
|
|
int f_extdevDetails;
|
|
f_affectExtDev = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_Keyboards, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_ButtonActions, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_IndicatorNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_affectExtDev_mask_IndicatorState, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_extdevDetails = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_Keyboards, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_ButtonActions, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_IndicatorNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SelectEvents_ExtensionDeviceNotify_extdevDetails_mask_IndicatorState, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
}
|
|
}
|
|
|
|
static void xkbBell(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_bellClass;
|
|
int f_bellID;
|
|
int f_percent;
|
|
int f_forceSound;
|
|
int f_eventOnly;
|
|
int f_pitch;
|
|
int f_duration;
|
|
int f_name;
|
|
int f_window;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_Bell_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_bellClass = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_Bell_bellClass, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_bellID = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_Bell_bellID, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_percent = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_Bell_percent, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_forceSound = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_Bell_forceSound, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_eventOnly = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_Bell_eventOnly, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_pitch = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_Bell_pitch, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_duration = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_Bell_duration, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_Bell_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_Bell_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xkbGetState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetState_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
static void xkbGetState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_deviceID;
|
|
int f_mods;
|
|
int f_baseMods;
|
|
int f_latchedMods;
|
|
int f_lockedMods;
|
|
int f_group;
|
|
int f_lockedGroup;
|
|
int f_baseGroup;
|
|
int f_latchedGroup;
|
|
int f_compatState;
|
|
int f_grabMods;
|
|
int f_compatGrabMods;
|
|
int f_compatLookupMods;
|
|
int f_ptrBtnState;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetState");
|
|
|
|
REPLY(reply);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetState_reply_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-GetState)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetState_reply_mods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_mods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_mods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_mods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_mods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_mods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_mods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_mods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_mods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_mods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_baseMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetState_reply_baseMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_baseMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_baseMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_baseMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_baseMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_baseMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_baseMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_baseMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_baseMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_baseMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_latchedMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetState_reply_latchedMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_latchedMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_latchedMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_latchedMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_latchedMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_latchedMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_latchedMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_latchedMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_latchedMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_latchedMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_lockedMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetState_reply_lockedMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_lockedMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_lockedMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_lockedMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_lockedMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_lockedMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_lockedMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_lockedMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_lockedMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_lockedMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_group = field8(tvb, offsetp, t, hf_x11_xkb_GetState_reply_group, little_endian);
|
|
f_lockedGroup = field8(tvb, offsetp, t, hf_x11_xkb_GetState_reply_lockedGroup, little_endian);
|
|
f_baseGroup = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetState_reply_baseGroup, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_latchedGroup = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetState_reply_latchedGroup, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_compatState = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetState_reply_compatState, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatState_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatState_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatState_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatState_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatState_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatState_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatState_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatState_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatState_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_grabMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetState_reply_grabMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_grabMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_grabMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_grabMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_grabMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_grabMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_grabMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_grabMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_grabMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_grabMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_compatGrabMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetState_reply_compatGrabMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatGrabMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatGrabMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatGrabMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatGrabMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatGrabMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatGrabMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatGrabMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatGrabMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatGrabMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_compatLookupMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetState_reply_compatLookupMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatLookupMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatLookupMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatLookupMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatLookupMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatLookupMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatLookupMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatLookupMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatLookupMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_compatLookupMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_ptrBtnState = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetState_reply_ptrBtnState, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_ptrBtnState_mask_Shift, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_ptrBtnState_mask_Lock, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_ptrBtnState_mask_Control, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_ptrBtnState_mask_Mod5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetState_reply_ptrBtnState_mask_Button5, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
UNUSED(6);
|
|
}
|
|
|
|
static void xkbLatchLockState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_affectModLocks;
|
|
int f_modLocks;
|
|
int f_lockGroup;
|
|
int f_groupLock;
|
|
int f_affectModLatches;
|
|
int f_latchGroup;
|
|
int f_groupLatch;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_LatchLockState_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_affectModLocks = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_LatchLockState_affectModLocks, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLocks_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLocks_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLocks_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLocks_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLocks_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLocks_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLocks_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLocks_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLocks_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_modLocks = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_LatchLockState_modLocks, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_modLocks_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_modLocks_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_modLocks_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_modLocks_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_modLocks_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_modLocks_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_modLocks_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_modLocks_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_modLocks_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_lockGroup = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_LatchLockState_lockGroup, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_groupLock = field8(tvb, offsetp, t, hf_x11_xkb_LatchLockState_groupLock, little_endian);
|
|
f_affectModLatches = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_LatchLockState_affectModLatches, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLatches_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLatches_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLatches_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLatches_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLatches_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLatches_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLatches_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLatches_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_LatchLockState_affectModLatches_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_latchGroup = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_LatchLockState_latchGroup, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_groupLatch = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_LatchLockState_groupLatch, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xkbGetControls(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
static void xkbGetControls_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_deviceID;
|
|
int f_mouseKeysDfltBtn;
|
|
int f_numGroups;
|
|
int f_groupsWrap;
|
|
int f_internalModsMask;
|
|
int f_ignoreLockModsMask;
|
|
int f_internalModsRealMods;
|
|
int f_ignoreLockModsRealMods;
|
|
int f_internalModsVmods;
|
|
int f_ignoreLockModsVmods;
|
|
int f_repeatDelay;
|
|
int f_repeatInterval;
|
|
int f_slowKeysDelay;
|
|
int f_debounceDelay;
|
|
int f_mouseKeysDelay;
|
|
int f_mouseKeysInterval;
|
|
int f_mouseKeysTimeToMax;
|
|
int f_mouseKeysMaxSpeed;
|
|
int f_mouseKeysCurve;
|
|
int f_accessXTimeout;
|
|
int f_accessXTimeoutMask;
|
|
int f_accessXTimeoutValues;
|
|
int f_enabledControls;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetControls");
|
|
|
|
REPLY(reply);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-GetControls)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mouseKeysDfltBtn = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysDfltBtn, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_numGroups = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_numGroups, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_groupsWrap = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_groupsWrap, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_internalModsMask = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_internalModsMask, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsMask_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsMask_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsMask_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsMask_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsMask_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsMask_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsMask_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsMask_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsMask_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_ignoreLockModsMask = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_ignoreLockModsMask, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsMask_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_internalModsRealMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_internalModsRealMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsRealMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_ignoreLockModsRealMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsRealMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_internalModsVmods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_internalModsVmods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_internalModsVmods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_ignoreLockModsVmods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetControls_reply_ignoreLockModsVmods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_repeatDelay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_repeatDelay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_repeatInterval = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_repeatInterval, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_slowKeysDelay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_slowKeysDelay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_debounceDelay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_debounceDelay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mouseKeysDelay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysDelay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mouseKeysInterval = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysInterval, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mouseKeysTimeToMax = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysTimeToMax, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mouseKeysMaxSpeed = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysMaxSpeed, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mouseKeysCurve = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_mouseKeysCurve, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
struct_AXOption(tvb, offsetp, t, little_endian, 1);
|
|
f_accessXTimeout = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetControls_reply_accessXTimeout, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
struct_AXOption(tvb, offsetp, t, little_endian, 1);
|
|
struct_AXOption(tvb, offsetp, t, little_endian, 1);
|
|
UNUSED(2);
|
|
f_accessXTimeoutMask = field32(tvb, offsetp, t, hf_x11_xkb_GetControls_reply_accessXTimeoutMask, little_endian);
|
|
f_accessXTimeoutValues = field32(tvb, offsetp, t, hf_x11_xkb_GetControls_reply_accessXTimeoutValues, little_endian);
|
|
f_enabledControls = field32(tvb, offsetp, t, hf_x11_xkb_GetControls_reply_enabledControls, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetControls_reply_perKeyRepeat, 32, little_endian);
|
|
}
|
|
|
|
static void xkbSetControls(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_affectInternalRealMods;
|
|
int f_interanlRealMods;
|
|
int f_affectIgnoreLockRealMods;
|
|
int f_ignoreLockRealMods;
|
|
int f_affectInternalVirtualMods;
|
|
int f_internalVirtualMods;
|
|
int f_affectInternalLockVirtualMods;
|
|
int f_internalLockVirtualMods;
|
|
int f_mouseKeysDfltBtn;
|
|
int f_groupsWrap;
|
|
int f_affectEnabledControls;
|
|
int f_enabledControls;
|
|
int f_changeControls;
|
|
int f_repeatDelay;
|
|
int f_repeatInterval;
|
|
int f_slowKeysDelay;
|
|
int f_debounceDelay;
|
|
int f_mouseKeysDelay;
|
|
int f_mouseKeysInterval;
|
|
int f_mouseKeysTimeToMax;
|
|
int f_mouseKeysMaxSpeed;
|
|
int f_mouseKeysCurve;
|
|
int f_accessXTimeout;
|
|
int f_accessXTimeoutMask;
|
|
int f_accessXTimeoutValues;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetControls_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_affectInternalRealMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetControls_affectInternalRealMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalRealMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalRealMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalRealMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalRealMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalRealMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalRealMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalRealMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalRealMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalRealMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_interanlRealMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetControls_interanlRealMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_interanlRealMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_interanlRealMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_interanlRealMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_interanlRealMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_interanlRealMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_interanlRealMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_interanlRealMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_interanlRealMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_interanlRealMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_affectIgnoreLockRealMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetControls_affectIgnoreLockRealMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectIgnoreLockRealMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_ignoreLockRealMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetControls_ignoreLockRealMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_ignoreLockRealMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_ignoreLockRealMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_ignoreLockRealMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_ignoreLockRealMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_ignoreLockRealMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_ignoreLockRealMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_affectInternalVirtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetControls_affectInternalVirtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalVirtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_internalVirtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetControls_internalVirtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalVirtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_affectInternalLockVirtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetControls_affectInternalLockVirtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_affectInternalLockVirtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_internalLockVirtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetControls_internalLockVirtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_internalLockVirtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_mouseKeysDfltBtn = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysDfltBtn, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_groupsWrap = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetControls_groupsWrap, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
struct_AXOption(tvb, offsetp, t, little_endian, 1);
|
|
UNUSED(2);
|
|
f_affectEnabledControls = field32(tvb, offsetp, t, hf_x11_xkb_SetControls_affectEnabledControls, little_endian);
|
|
f_enabledControls = field32(tvb, offsetp, t, hf_x11_xkb_SetControls_enabledControls, little_endian);
|
|
f_changeControls = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetControls_changeControls, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_changeControls_mask_GroupsWrap, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_changeControls_mask_InternalMods, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_changeControls_mask_IgnoreLockMods, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_changeControls_mask_PerKeyRepeat, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetControls_changeControls_mask_ControlsEnabled, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_repeatDelay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetControls_repeatDelay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_repeatInterval = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetControls_repeatInterval, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_slowKeysDelay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetControls_slowKeysDelay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_debounceDelay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetControls_debounceDelay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mouseKeysDelay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysDelay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mouseKeysInterval = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysInterval, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mouseKeysTimeToMax = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysTimeToMax, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mouseKeysMaxSpeed = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysMaxSpeed, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mouseKeysCurve = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetControls_mouseKeysCurve, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_accessXTimeout = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetControls_accessXTimeout, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_accessXTimeoutMask = field32(tvb, offsetp, t, hf_x11_xkb_SetControls_accessXTimeoutMask, little_endian);
|
|
f_accessXTimeoutValues = field32(tvb, offsetp, t, hf_x11_xkb_SetControls_accessXTimeoutValues, little_endian);
|
|
struct_AXOption(tvb, offsetp, t, little_endian, 1);
|
|
struct_AXOption(tvb, offsetp, t, little_endian, 1);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_SetControls_perKeyRepeat, 32, little_endian);
|
|
length -= 32 * 1;
|
|
}
|
|
|
|
static void xkbGetMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_full;
|
|
int f_partial;
|
|
int f_firstType;
|
|
int f_nTypes;
|
|
int f_firstKeySym;
|
|
int f_nKeySyms;
|
|
int f_firstKeyAction;
|
|
int f_nKeyActions;
|
|
int f_firstKeyBehavior;
|
|
int f_nKeyBehaviors;
|
|
int f_virtualMods;
|
|
int f_firstKeyExplicit;
|
|
int f_nKeyExplicit;
|
|
int f_firstModMapKey;
|
|
int f_nModMapKeys;
|
|
int f_firstVModMapKey;
|
|
int f_nVModMapKeys;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_full = field16(tvb, offsetp, t, hf_x11_xkb_GetMap_full, little_endian);
|
|
f_partial = field16(tvb, offsetp, t, hf_x11_xkb_GetMap_partial, little_endian);
|
|
f_firstType = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_firstType, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_nTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeySym = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeySym, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeySyms = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeySyms, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyAction = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeyAction, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyActions = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeyActions, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyBehavior = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeyBehavior, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyBehaviors = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeyBehaviors, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_virtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetMap_virtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_virtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_firstKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_firstKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_nKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_firstModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_nModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstVModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_firstVModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nVModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_nVModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
}
|
|
static void xkbGetMap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_deviceID;
|
|
int f_minKeyCode;
|
|
int f_maxKeyCode;
|
|
int f_present;
|
|
int f_firstType;
|
|
int f_nTypes;
|
|
int f_totalTypes;
|
|
int f_firstKeySym;
|
|
int f_totalSyms;
|
|
int f_nKeySyms;
|
|
int f_firstKeyAction;
|
|
int f_totalActions;
|
|
int f_nKeyActions;
|
|
int f_firstKeyBehavior;
|
|
int f_nKeyBehaviors;
|
|
int f_totalKeyBehaviors;
|
|
int f_firstKeyExplicit;
|
|
int f_nKeyExplicit;
|
|
int f_totalKeyExplicit;
|
|
int f_firstModMapKey;
|
|
int f_nModMapKeys;
|
|
int f_totalModMapKeys;
|
|
int f_firstVModMapKey;
|
|
int f_nVModMapKeys;
|
|
int f_totalVModMapKeys;
|
|
int f_virtualMods;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetMap");
|
|
|
|
REPLY(reply);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-GetMap)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(2);
|
|
f_minKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_minKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_maxKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_maxKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_present = field16(tvb, offsetp, t, hf_x11_xkb_GetMap_reply_present, little_endian);
|
|
f_firstType = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstType, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeySym = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeySym, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalSyms = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalSyms, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nKeySyms = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeySyms, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyAction = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeyAction, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalActions = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalActions, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nKeyActions = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeyActions, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyBehavior = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeyBehavior, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyBehaviors = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeyBehaviors, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalKeyBehaviors = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalKeyBehaviors, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstVModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_firstVModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nVModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_nVModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalVModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_totalVModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_virtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetMap_reply_virtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetMap_reply_virtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
if ((f_present & (1 << 0)) != 0) {
|
|
struct_KeyType(tvb, offsetp, t, little_endian, f_nTypes);
|
|
}
|
|
if ((f_present & (1 << 1)) != 0) {
|
|
struct_KeySymMap(tvb, offsetp, t, little_endian, f_nKeySyms);
|
|
}
|
|
if ((f_present & (1 << 4)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetMap_reply_KeyActions_acts_rtrn_count, f_nKeyActions, little_endian);
|
|
struct_Action(tvb, offsetp, t, little_endian, f_totalActions);
|
|
}
|
|
if ((f_present & (1 << 5)) != 0) {
|
|
struct_SetBehavior(tvb, offsetp, t, little_endian, f_totalKeyBehaviors);
|
|
}
|
|
if ((f_present & (1 << 6)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetMap_reply_VirtualMods_vmods_rtrn, f_nVModMapKeys, little_endian);
|
|
}
|
|
if ((f_present & (1 << 3)) != 0) {
|
|
struct_SetExplicit(tvb, offsetp, t, little_endian, f_totalKeyExplicit);
|
|
}
|
|
if ((f_present & (1 << 2)) != 0) {
|
|
struct_KeyModMap(tvb, offsetp, t, little_endian, f_totalModMapKeys);
|
|
}
|
|
if ((f_present & (1 << 7)) != 0) {
|
|
struct_KeyVModMap(tvb, offsetp, t, little_endian, f_totalVModMapKeys);
|
|
}
|
|
}
|
|
|
|
static void xkbSetMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_present;
|
|
int f_flags;
|
|
int f_minKeyCode;
|
|
int f_maxKeyCode;
|
|
int f_firstType;
|
|
int f_nTypes;
|
|
int f_firstKeySym;
|
|
int f_nKeySyms;
|
|
int f_totalSyms;
|
|
int f_firstKeyAction;
|
|
int f_nKeyActions;
|
|
int f_totalActions;
|
|
int f_firstKeyBehavior;
|
|
int f_nKeyBehaviors;
|
|
int f_totalKeyBehaviors;
|
|
int f_firstKeyExplicit;
|
|
int f_nKeyExplicit;
|
|
int f_totalKeyExplicit;
|
|
int f_firstModMapKey;
|
|
int f_nModMapKeys;
|
|
int f_totalModMapKeys;
|
|
int f_firstVModMapKey;
|
|
int f_nVModMapKeys;
|
|
int f_totalVModMapKeys;
|
|
int f_virtualMods;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_present = field16(tvb, offsetp, t, hf_x11_xkb_SetMap_present, little_endian);
|
|
f_flags = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetMap_flags, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_flags_mask_ResizeTypes, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_flags_mask_RecomputeActions, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_minKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_minKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_maxKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_maxKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstType = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_firstType, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_nTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeySym = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeySym, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeySyms = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeySyms, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalSyms = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_totalSyms, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_firstKeyAction = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeyAction, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyActions = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeyActions, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalActions = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_totalActions, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_firstKeyBehavior = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeyBehavior, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyBehaviors = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeyBehaviors, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalKeyBehaviors = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_totalKeyBehaviors, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_firstKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_nKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_totalKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_firstModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_nModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_totalModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstVModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_firstVModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nVModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_nVModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalVModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetMap_totalVModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_virtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetMap_virtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetMap_virtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
if ((f_present & (1 << 0)) != 0) {
|
|
struct_SetKeyType(tvb, offsetp, t, little_endian, f_nTypes);
|
|
length -= f_nTypes * 0;
|
|
}
|
|
if ((f_present & (1 << 1)) != 0) {
|
|
struct_KeySymMap(tvb, offsetp, t, little_endian, f_nKeySyms);
|
|
length -= f_nKeySyms * 0;
|
|
}
|
|
if ((f_present & (1 << 4)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_SetMap_KeyActions_actionsCount, f_nKeyActions, little_endian);
|
|
length -= f_nKeyActions * 1;
|
|
struct_Action(tvb, offsetp, t, little_endian, f_totalActions);
|
|
length -= f_totalActions * 8;
|
|
}
|
|
if ((f_present & (1 << 5)) != 0) {
|
|
struct_SetBehavior(tvb, offsetp, t, little_endian, f_totalKeyBehaviors);
|
|
length -= f_totalKeyBehaviors * 4;
|
|
}
|
|
if ((f_present & (1 << 6)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_SetMap_VirtualMods_vmods, f_nVModMapKeys, little_endian);
|
|
length -= f_nVModMapKeys * 1;
|
|
}
|
|
if ((f_present & (1 << 3)) != 0) {
|
|
struct_SetExplicit(tvb, offsetp, t, little_endian, f_totalKeyExplicit);
|
|
length -= f_totalKeyExplicit * 2;
|
|
}
|
|
if ((f_present & (1 << 2)) != 0) {
|
|
struct_KeyModMap(tvb, offsetp, t, little_endian, f_totalModMapKeys);
|
|
length -= f_totalModMapKeys * 2;
|
|
}
|
|
if ((f_present & (1 << 7)) != 0) {
|
|
struct_KeyVModMap(tvb, offsetp, t, little_endian, f_totalVModMapKeys);
|
|
length -= f_totalVModMapKeys * 4;
|
|
}
|
|
}
|
|
|
|
static void xkbGetCompatMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_groups;
|
|
int f_getAllSI;
|
|
int f_firstSI;
|
|
int f_nSI;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_groups = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_groups, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetCompatMap_groups_mask_Group1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetCompatMap_groups_mask_Group2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetCompatMap_groups_mask_Group3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetCompatMap_groups_mask_Group4, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_getAllSI = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_getAllSI, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstSI = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_firstSI, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nSI = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_nSI, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
static void xkbGetCompatMap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_deviceID;
|
|
int f_groupsRtrn;
|
|
int f_firstSIRtrn;
|
|
int f_nSIRtrn;
|
|
int f_nTotalSI;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetCompatMap");
|
|
|
|
REPLY(reply);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-GetCompatMap)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_groupsRtrn = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_groupsRtrn, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetCompatMap_reply_groupsRtrn_mask_Group4, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_firstSIRtrn = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_firstSIRtrn, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nSIRtrn = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_nSIRtrn, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nTotalSI = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetCompatMap_reply_nTotalSI, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(16);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetCompatMap_reply_si_rtrn, (16 * f_nSIRtrn), little_endian);
|
|
struct_ModDef(tvb, offsetp, t, little_endian, popcount(f_groupsRtrn));
|
|
}
|
|
|
|
static void xkbSetCompatMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_recomputeActions;
|
|
int f_truncateSI;
|
|
int f_groups;
|
|
int f_firstSI;
|
|
int f_nSI;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(1);
|
|
f_recomputeActions = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_recomputeActions, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_truncateSI = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_truncateSI, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_groups = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_groups, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetCompatMap_groups_mask_Group1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetCompatMap_groups_mask_Group2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetCompatMap_groups_mask_Group3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetCompatMap_groups_mask_Group4, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_firstSI = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_firstSI, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nSI = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetCompatMap_nSI, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_SetCompatMap_si, (16 * f_nSI), little_endian);
|
|
length -= (16 * f_nSI) * 1;
|
|
struct_ModDef(tvb, offsetp, t, little_endian, popcount(f_groups));
|
|
length -= popcount(f_groups) * 4;
|
|
}
|
|
|
|
static void xkbGetIndicatorState(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetIndicatorState_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
static void xkbGetIndicatorState_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_deviceID;
|
|
int f_state;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetIndicatorState");
|
|
|
|
REPLY(reply);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetIndicatorState_reply_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-GetIndicatorState)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_state = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetIndicatorState_reply_state, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
}
|
|
|
|
static void xkbGetIndicatorMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_which;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_which = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_which, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xkbGetIndicatorMap_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_deviceID;
|
|
int f_which;
|
|
int f_realIndicators;
|
|
int f_nIndicators;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetIndicatorMap");
|
|
|
|
REPLY(reply);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-GetIndicatorMap)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_which = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_which, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_realIndicators = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_realIndicators, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_nIndicators = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetIndicatorMap_reply_nIndicators, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(15);
|
|
struct_IndicatorMap(tvb, offsetp, t, little_endian, f_nIndicators);
|
|
}
|
|
|
|
static void xkbSetIndicatorMap(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_which;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetIndicatorMap_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_which = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetIndicatorMap_which, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_IndicatorMap(tvb, offsetp, t, little_endian, popcount(f_which));
|
|
length -= popcount(f_which) * 12;
|
|
}
|
|
|
|
static void xkbGetNamedIndicator(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_ledClass;
|
|
int f_ledID;
|
|
int f_indicator;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_ledClass = field16(tvb, offsetp, t, hf_x11_xkb_GetNamedIndicator_ledClass, little_endian);
|
|
f_ledID = field16(tvb, offsetp, t, hf_x11_xkb_GetNamedIndicator_ledID, little_endian);
|
|
UNUSED(2);
|
|
f_indicator = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_indicator, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xkbGetNamedIndicator_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_deviceID;
|
|
int f_indicator;
|
|
int f_found;
|
|
int f_on;
|
|
int f_realIndicator;
|
|
int f_ndx;
|
|
int f_map_flags;
|
|
int f_map_whichGroups;
|
|
int f_map_groups;
|
|
int f_map_whichMods;
|
|
int f_map_mods;
|
|
int f_map_realMods;
|
|
int f_map_vmod;
|
|
int f_map_ctrls;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetNamedIndicator");
|
|
|
|
REPLY(reply);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-GetNamedIndicator)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_indicator = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_indicator, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_found = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_found, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_on = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_on, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_realIndicator = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_realIndicator, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_ndx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_ndx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_map_flags = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_map_flags, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_flags_mask_LEDDrivesKB, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_flags_mask_NoAutomatic, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_flags_mask_NoExplicit, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_map_whichGroups = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseBase, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseLatched, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseLocked, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseEffective, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_whichGroups_mask_UseCompat, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_map_groups = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_map_groups, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_groups_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_map_whichMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_map_whichMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseBase, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseLatched, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseLocked, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseEffective, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_whichMods_mask_UseCompat, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_map_mods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_map_mods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_mods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_map_realMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_map_realMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_realMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_map_vmod = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_map_vmod, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_vmod_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_map_ctrls = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_RepeatKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_SlowKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_BounceKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_StickyKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_MouseKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_MouseKeysAccel, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AccessXKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AccessXTimeoutMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AccessXFeedbackMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_AudibleBellMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_Overlay1Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_Overlay2Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNamedIndicator_reply_map_ctrls_mask_IgnoreGroupLockMask, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void xkbSetNamedIndicator(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_ledClass;
|
|
int f_ledID;
|
|
int f_indicator;
|
|
int f_setState;
|
|
int f_on;
|
|
int f_setMap;
|
|
int f_createMap;
|
|
int f_map_flags;
|
|
int f_map_whichGroups;
|
|
int f_map_groups;
|
|
int f_map_whichMods;
|
|
int f_map_realMods;
|
|
int f_map_vmods;
|
|
int f_map_ctrls;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_ledClass = field16(tvb, offsetp, t, hf_x11_xkb_SetNamedIndicator_ledClass, little_endian);
|
|
f_ledID = field16(tvb, offsetp, t, hf_x11_xkb_SetNamedIndicator_ledID, little_endian);
|
|
UNUSED(2);
|
|
f_indicator = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_indicator, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_setState = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_setState, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_on = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_on, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_setMap = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_setMap, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_createMap = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_createMap, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_map_flags = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_map_flags, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_flags_mask_LEDDrivesKB, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_flags_mask_NoAutomatic, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_flags_mask_NoExplicit, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_map_whichGroups = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_map_whichGroups, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseBase, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseLatched, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseLocked, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseEffective, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_whichGroups_mask_UseCompat, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_map_groups = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_map_groups, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_groups_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_map_whichMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_map_whichMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseBase, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseLatched, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseLocked, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseEffective, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_whichMods_mask_UseCompat, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_map_realMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_map_realMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_realMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_realMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_realMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_realMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_realMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_realMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_map_vmods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_map_vmods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_vmods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_map_ctrls = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetNamedIndicator_map_ctrls, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_RepeatKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_SlowKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_BounceKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_StickyKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_MouseKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_MouseKeysAccel, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AccessXKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AccessXTimeoutMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AccessXFeedbackMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_AudibleBellMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_Overlay1Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_Overlay2Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNamedIndicator_map_ctrls_mask_IgnoreGroupLockMask, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xkbGetNames(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_which;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_which = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetNames_which, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_Keycodes, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_Geometry, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_Symbols, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_PhysSymbols, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_Types, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_Compat, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_KeyTypeNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_KTLevelNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_IndicatorNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_KeyNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_KeyAliases, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_VirtualModNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_GroupNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_which_mask_RGNames, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
}
|
|
static void xkbGetNames_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_deviceID;
|
|
int f_which;
|
|
int f_minKeyCode;
|
|
int f_maxKeyCode;
|
|
int f_nTypes;
|
|
int f_groupNames;
|
|
int f_virtualMods;
|
|
int f_firstKey;
|
|
int f_nKeys;
|
|
int f_indicators;
|
|
int f_nRadioGroups;
|
|
int f_nKeyAliases;
|
|
int f_nKTLevels;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetNames");
|
|
|
|
REPLY(reply);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-GetNames)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_which = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_which, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_Keycodes, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_Geometry, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_Symbols, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_PhysSymbols, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_Types, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_Compat, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_KeyTypeNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_KTLevelNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_IndicatorNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_KeyNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_KeyAliases, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_VirtualModNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_GroupNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_which_mask_RGNames, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_minKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_minKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_maxKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_maxKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_groupNames = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_groupNames, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_groupNames_mask_Group1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_groupNames_mask_Group2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_groupNames_mask_Group3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_groupNames_mask_Group4, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_virtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_virtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetNames_reply_virtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_firstKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_firstKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_indicators = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_indicators, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_nRadioGroups = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nRadioGroups, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyAliases = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nKeyAliases, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKTLevels = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_nKTLevels, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(4);
|
|
if ((f_which & (1 << 0)) != 0) {
|
|
int f_keycodesName;
|
|
f_keycodesName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Keycodes_keycodesName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 1)) != 0) {
|
|
int f_geometryName;
|
|
f_geometryName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Geometry_geometryName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 2)) != 0) {
|
|
int f_symbolsName;
|
|
f_symbolsName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Symbols_symbolsName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 3)) != 0) {
|
|
int f_physSymbolsName;
|
|
f_physSymbolsName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_PhysSymbols_physSymbolsName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 4)) != 0) {
|
|
int f_typesName;
|
|
f_typesName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Types_typesName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 5)) != 0) {
|
|
int f_compatName;
|
|
f_compatName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetNames_reply_Compat_compatName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 6)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_KeyTypeNames_typeNames, hf_x11_xkb_GetNames_reply_KeyTypeNames_typeNames_item, f_nTypes, little_endian);
|
|
}
|
|
if ((f_which & (1 << 7)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_KTLevelNames_nLevelsPerType, f_nKTLevels, little_endian);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_KTLevelNames_ktLevelNames, hf_x11_xkb_GetNames_reply_KTLevelNames_ktLevelNames_item, (length - 56) / 4, little_endian);
|
|
}
|
|
if ((f_which & (1 << 8)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_IndicatorNames_indicatorNames, hf_x11_xkb_GetNames_reply_IndicatorNames_indicatorNames_item, popcount(f_indicators), little_endian);
|
|
}
|
|
if ((f_which & (1 << 11)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_VirtualModNames_virtualModNames, hf_x11_xkb_GetNames_reply_VirtualModNames_virtualModNames_item, popcount(f_virtualMods), little_endian);
|
|
}
|
|
if ((f_which & (1 << 12)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_GroupNames_groups, hf_x11_xkb_GetNames_reply_GroupNames_groups_item, popcount(f_groupNames), little_endian);
|
|
}
|
|
if ((f_which & (1 << 9)) != 0) {
|
|
struct_KeyName(tvb, offsetp, t, little_endian, f_nKeys);
|
|
}
|
|
if ((f_which & (1 << 10)) != 0) {
|
|
struct_KeyAlias(tvb, offsetp, t, little_endian, f_nKeyAliases);
|
|
}
|
|
if ((f_which & (1 << 13)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetNames_reply_RGNames_radioGroupNames, hf_x11_xkb_GetNames_reply_RGNames_radioGroupNames_item, f_nRadioGroups, little_endian);
|
|
}
|
|
}
|
|
|
|
static void xkbSetNames(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_virtualMods;
|
|
int f_which;
|
|
int f_firstType;
|
|
int f_nTypes;
|
|
int f_firstKTLevelt;
|
|
int f_nKTLevels;
|
|
int f_indicators;
|
|
int f_groupNames;
|
|
int f_nRadioGroups;
|
|
int f_firstKey;
|
|
int f_nKeys;
|
|
int f_nKeyAliases;
|
|
int f_totalKTLevelNames;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_virtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetNames_virtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_virtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_which = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetNames_which, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_Keycodes, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_Geometry, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_Symbols, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_PhysSymbols, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_Types, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_Compat, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_KeyTypeNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_KTLevelNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_IndicatorNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_KeyNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_KeyAliases, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_VirtualModNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_GroupNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_which_mask_RGNames, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_firstType = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_firstType, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_nTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKTLevelt = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_firstKTLevelt, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKTLevels = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_nKTLevels, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_indicators = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_indicators, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_groupNames = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetNames_groupNames, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_groupNames_mask_Group1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_groupNames_mask_Group2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_groupNames_mask_Group3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetNames_groupNames_mask_Group4, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_nRadioGroups = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_nRadioGroups, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_firstKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_nKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyAliases = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_nKeyAliases, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_totalKTLevelNames = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_totalKTLevelNames, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
if ((f_which & (1 << 0)) != 0) {
|
|
int f_keycodesName;
|
|
f_keycodesName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_Keycodes_keycodesName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 1)) != 0) {
|
|
int f_geometryName;
|
|
f_geometryName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_Geometry_geometryName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 2)) != 0) {
|
|
int f_symbolsName;
|
|
f_symbolsName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_Symbols_symbolsName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 3)) != 0) {
|
|
int f_physSymbolsName;
|
|
f_physSymbolsName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_PhysSymbols_physSymbolsName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 4)) != 0) {
|
|
int f_typesName;
|
|
f_typesName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_Types_typesName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 5)) != 0) {
|
|
int f_compatName;
|
|
f_compatName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetNames_Compat_compatName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 6)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_KeyTypeNames_typeNames, hf_x11_xkb_SetNames_KeyTypeNames_typeNames_item, f_nTypes, little_endian);
|
|
length -= f_nTypes * 4;
|
|
}
|
|
if ((f_which & (1 << 7)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_SetNames_KTLevelNames_nLevelsPerType, f_nKTLevels, little_endian);
|
|
length -= f_nKTLevels * 1;
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_KTLevelNames_ktLevelNames, hf_x11_xkb_SetNames_KTLevelNames_ktLevelNames_item, (length - 52) / 4, little_endian);
|
|
length -= (length - 52) / 4 * 4;
|
|
}
|
|
if ((f_which & (1 << 8)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_IndicatorNames_indicatorNames, hf_x11_xkb_SetNames_IndicatorNames_indicatorNames_item, popcount(f_indicators), little_endian);
|
|
length -= popcount(f_indicators) * 4;
|
|
}
|
|
if ((f_which & (1 << 11)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_VirtualModNames_virtualModNames, hf_x11_xkb_SetNames_VirtualModNames_virtualModNames_item, popcount(f_virtualMods), little_endian);
|
|
length -= popcount(f_virtualMods) * 4;
|
|
}
|
|
if ((f_which & (1 << 12)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_GroupNames_groups, hf_x11_xkb_SetNames_GroupNames_groups_item, popcount(f_groupNames), little_endian);
|
|
length -= popcount(f_groupNames) * 4;
|
|
}
|
|
if ((f_which & (1 << 9)) != 0) {
|
|
struct_KeyName(tvb, offsetp, t, little_endian, f_nKeys);
|
|
length -= f_nKeys * 1;
|
|
}
|
|
if ((f_which & (1 << 10)) != 0) {
|
|
struct_KeyAlias(tvb, offsetp, t, little_endian, f_nKeyAliases);
|
|
length -= f_nKeyAliases * 2;
|
|
}
|
|
if ((f_which & (1 << 13)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_SetNames_RGNames_radioGroupNames, hf_x11_xkb_SetNames_RGNames_radioGroupNames_item, f_nRadioGroups, little_endian);
|
|
length -= f_nRadioGroups * 4;
|
|
}
|
|
}
|
|
|
|
static void xkbGetGeometry(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_name;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xkbGetGeometry_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_deviceID;
|
|
int f_name;
|
|
int f_found;
|
|
int f_widthMM;
|
|
int f_heightMM;
|
|
int f_nProperties;
|
|
int f_nColors;
|
|
int f_nShapes;
|
|
int f_nSections;
|
|
int f_nDoodads;
|
|
int f_nKeyAliases;
|
|
int f_baseColorNdx;
|
|
int f_labelColorNdx;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetGeometry");
|
|
|
|
REPLY(reply);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_reply_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-GetGeometry)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_reply_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_found = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_reply_found, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_widthMM = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_reply_widthMM, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_heightMM = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_reply_heightMM, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nProperties = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_reply_nProperties, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nColors = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_reply_nColors, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nShapes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_reply_nShapes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nSections = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_reply_nSections, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nDoodads = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_reply_nDoodads, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nKeyAliases = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_reply_nKeyAliases, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_baseColorNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_reply_baseColorNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_labelColorNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetGeometry_reply_labelColorNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
struct_CountedString16(tvb, offsetp, t, little_endian, 1);
|
|
struct_Property(tvb, offsetp, t, little_endian, f_nProperties);
|
|
struct_CountedString16(tvb, offsetp, t, little_endian, f_nColors);
|
|
struct_Shape(tvb, offsetp, t, little_endian, f_nShapes);
|
|
struct_Section(tvb, offsetp, t, little_endian, f_nSections);
|
|
struct_Doodad(tvb, offsetp, t, little_endian, f_nDoodads);
|
|
struct_KeyAlias(tvb, offsetp, t, little_endian, f_nKeyAliases);
|
|
}
|
|
|
|
static void xkbSetGeometry(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_nShapes;
|
|
int f_nSections;
|
|
int f_name;
|
|
int f_widthMM;
|
|
int f_heightMM;
|
|
int f_nProperties;
|
|
int f_nColors;
|
|
int f_nDoodads;
|
|
int f_nKeyAliases;
|
|
int f_baseColorNdx;
|
|
int f_labelColorNdx;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetGeometry_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nShapes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetGeometry_nShapes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nSections = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetGeometry_nSections, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetGeometry_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_widthMM = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetGeometry_widthMM, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_heightMM = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetGeometry_heightMM, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nProperties = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetGeometry_nProperties, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nColors = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetGeometry_nColors, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nDoodads = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetGeometry_nDoodads, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nKeyAliases = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetGeometry_nKeyAliases, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_baseColorNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetGeometry_baseColorNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_labelColorNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetGeometry_labelColorNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
struct_CountedString16(tvb, offsetp, t, little_endian, 1);
|
|
struct_Property(tvb, offsetp, t, little_endian, f_nProperties);
|
|
length -= f_nProperties * 0;
|
|
struct_CountedString16(tvb, offsetp, t, little_endian, f_nColors);
|
|
length -= f_nColors * 0;
|
|
struct_Shape(tvb, offsetp, t, little_endian, f_nShapes);
|
|
length -= f_nShapes * 0;
|
|
struct_Section(tvb, offsetp, t, little_endian, f_nSections);
|
|
length -= f_nSections * 0;
|
|
struct_Doodad(tvb, offsetp, t, little_endian, f_nDoodads);
|
|
length -= f_nDoodads * 20;
|
|
struct_KeyAlias(tvb, offsetp, t, little_endian, f_nKeyAliases);
|
|
length -= f_nKeyAliases * 2;
|
|
}
|
|
|
|
static void xkbPerClientFlags(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_change;
|
|
int f_value;
|
|
int f_ctrlsToChange;
|
|
int f_autoCtrls;
|
|
int f_autoCtrlsValues;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_change = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_change, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_change_mask_DetectableAutoRepeat, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_change_mask_GrabsUseXKBState, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_change_mask_AutoResetControls, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_change_mask_LookupStateWhenGrabbed, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_change_mask_SendEventUsesXKBState, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_value = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_value, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_value_mask_DetectableAutoRepeat, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_value_mask_GrabsUseXKBState, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_value_mask_AutoResetControls, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_value_mask_LookupStateWhenGrabbed, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_value_mask_SendEventUsesXKBState, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_ctrlsToChange = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_ctrlsToChange, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_RepeatKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_SlowKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_BounceKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_StickyKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_MouseKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_MouseKeysAccel, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AccessXKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AccessXTimeoutMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AccessXFeedbackMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_AudibleBellMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_Overlay1Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_Overlay2Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_ctrlsToChange_mask_IgnoreGroupLockMask, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_autoCtrls = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_autoCtrls, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrls_mask_RepeatKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrls_mask_SlowKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrls_mask_BounceKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrls_mask_StickyKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrls_mask_MouseKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrls_mask_MouseKeysAccel, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrls_mask_AccessXKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrls_mask_AccessXTimeoutMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrls_mask_AccessXFeedbackMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrls_mask_AudibleBellMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrls_mask_Overlay1Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrls_mask_Overlay2Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrls_mask_IgnoreGroupLockMask, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_autoCtrlsValues = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_autoCtrlsValues, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_RepeatKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_SlowKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_BounceKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_StickyKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_MouseKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_MouseKeysAccel, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AccessXKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AccessXTimeoutMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AccessXFeedbackMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_AudibleBellMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_Overlay1Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_Overlay2Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_autoCtrlsValues_mask_IgnoreGroupLockMask, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
}
|
|
static void xkbPerClientFlags_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_deviceID;
|
|
int f_supported;
|
|
int f_value;
|
|
int f_autoCtrls;
|
|
int f_autoCtrlsValues;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-PerClientFlags");
|
|
|
|
REPLY(reply);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_reply_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-PerClientFlags)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_supported = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_reply_supported, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_supported_mask_DetectableAutoRepeat, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_supported_mask_GrabsUseXKBState, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_supported_mask_AutoResetControls, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_supported_mask_LookupStateWhenGrabbed, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_supported_mask_SendEventUsesXKBState, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_value = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_reply_value, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_value_mask_DetectableAutoRepeat, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_value_mask_GrabsUseXKBState, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_value_mask_AutoResetControls, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_value_mask_LookupStateWhenGrabbed, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_value_mask_SendEventUsesXKBState, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_autoCtrls = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_reply_autoCtrls, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_RepeatKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_SlowKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_BounceKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_StickyKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_MouseKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_MouseKeysAccel, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AccessXKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AccessXTimeoutMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AccessXFeedbackMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_AudibleBellMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_Overlay1Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_Overlay2Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrls_mask_IgnoreGroupLockMask, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_autoCtrlsValues = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_RepeatKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_SlowKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_BounceKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_StickyKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_MouseKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_MouseKeysAccel, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AccessXKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AccessXTimeoutMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AccessXFeedbackMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_AudibleBellMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_Overlay1Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_Overlay2Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_PerClientFlags_reply_autoCtrlsValues_mask_IgnoreGroupLockMask, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
}
|
|
|
|
static void xkbListComponents(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_maxNames;
|
|
int f_keymapsSpecLen;
|
|
int f_keycodesSpecLen;
|
|
int f_typesSpecLen;
|
|
int f_compatMapSpecLen;
|
|
int f_symbolsSpecLen;
|
|
int f_geometrySpecLen;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_maxNames = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_maxNames, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_keymapsSpecLen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_keymapsSpecLen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_ListComponents_keymapsSpec, f_keymapsSpecLen, little_endian);
|
|
length -= f_keymapsSpecLen * 1;
|
|
f_keycodesSpecLen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_keycodesSpecLen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_ListComponents_keycodesSpec, f_keycodesSpecLen, little_endian);
|
|
length -= f_keycodesSpecLen * 1;
|
|
f_typesSpecLen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_typesSpecLen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_ListComponents_typesSpec, f_typesSpecLen, little_endian);
|
|
length -= f_typesSpecLen * 1;
|
|
f_compatMapSpecLen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_compatMapSpecLen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_ListComponents_compatMapSpec, f_compatMapSpecLen, little_endian);
|
|
length -= f_compatMapSpecLen * 1;
|
|
f_symbolsSpecLen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_symbolsSpecLen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_ListComponents_symbolsSpec, f_symbolsSpecLen, little_endian);
|
|
length -= f_symbolsSpecLen * 1;
|
|
f_geometrySpecLen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_geometrySpecLen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_ListComponents_geometrySpec, f_geometrySpecLen, little_endian);
|
|
length -= f_geometrySpecLen * 1;
|
|
}
|
|
static void xkbListComponents_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_deviceID;
|
|
int f_nKeymaps;
|
|
int f_nKeycodes;
|
|
int f_nTypes;
|
|
int f_nCompatMaps;
|
|
int f_nSymbols;
|
|
int f_nGeometries;
|
|
int f_extra;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-ListComponents");
|
|
|
|
REPLY(reply);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-ListComponents)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_nKeymaps = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nKeymaps, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nKeycodes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nKeycodes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nTypes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nTypes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nCompatMaps = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nCompatMaps, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nSymbols = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nSymbols, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nGeometries = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_nGeometries, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_extra = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ListComponents_reply_extra, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(10);
|
|
struct_Listing(tvb, offsetp, t, little_endian, f_nKeymaps);
|
|
struct_Listing(tvb, offsetp, t, little_endian, f_nKeycodes);
|
|
struct_Listing(tvb, offsetp, t, little_endian, f_nTypes);
|
|
struct_Listing(tvb, offsetp, t, little_endian, f_nCompatMaps);
|
|
struct_Listing(tvb, offsetp, t, little_endian, f_nSymbols);
|
|
struct_Listing(tvb, offsetp, t, little_endian, f_nGeometries);
|
|
}
|
|
|
|
static void xkbGetKbdByName(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_need;
|
|
int f_want;
|
|
int f_load;
|
|
int f_keymapsSpecLen;
|
|
int f_keycodesSpecLen;
|
|
int f_typesSpecLen;
|
|
int f_compatMapSpecLen;
|
|
int f_symbolsSpecLen;
|
|
int f_geometrySpecLen;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_need = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_need, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_need_mask_Types, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_need_mask_CompatMap, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_need_mask_ClientSymbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_need_mask_ServerSymbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_need_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_need_mask_KeyNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_need_mask_Geometry, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_need_mask_OtherNames, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_want = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_want, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_want_mask_Types, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_want_mask_CompatMap, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_want_mask_ClientSymbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_want_mask_ServerSymbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_want_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_want_mask_KeyNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_want_mask_Geometry, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_want_mask_OtherNames, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_load = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_load, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_keymapsSpecLen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_keymapsSpecLen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_keymapsSpec, f_keymapsSpecLen, little_endian);
|
|
length -= f_keymapsSpecLen * 1;
|
|
f_keycodesSpecLen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_keycodesSpecLen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_keycodesSpec, f_keycodesSpecLen, little_endian);
|
|
length -= f_keycodesSpecLen * 1;
|
|
f_typesSpecLen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_typesSpecLen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_typesSpec, f_typesSpecLen, little_endian);
|
|
length -= f_typesSpecLen * 1;
|
|
f_compatMapSpecLen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_compatMapSpecLen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_compatMapSpec, f_compatMapSpecLen, little_endian);
|
|
length -= f_compatMapSpecLen * 1;
|
|
f_symbolsSpecLen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_symbolsSpecLen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_symbolsSpec, f_symbolsSpecLen, little_endian);
|
|
length -= f_symbolsSpecLen * 1;
|
|
f_geometrySpecLen = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_geometrySpecLen, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_geometrySpec, f_geometrySpecLen, little_endian);
|
|
length -= f_geometrySpecLen * 1;
|
|
}
|
|
static void xkbGetKbdByName_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_deviceID;
|
|
int f_minKeyCode;
|
|
int f_maxKeyCode;
|
|
int f_loaded;
|
|
int f_newKeyboard;
|
|
int f_found;
|
|
int f_reported;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetKbdByName");
|
|
|
|
REPLY(reply);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-GetKbdByName)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_minKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_maxKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_maxKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_loaded = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_loaded, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_newKeyboard = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_newKeyboard, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_found = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_found, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_found_mask_Types, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_found_mask_CompatMap, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_found_mask_ClientSymbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_found_mask_ServerSymbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_found_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_found_mask_KeyNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_found_mask_Geometry, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_found_mask_OtherNames, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_reported = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_reported, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_reported_mask_Types, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_reported_mask_CompatMap, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_reported_mask_ClientSymbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_reported_mask_ServerSymbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_reported_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_reported_mask_KeyNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_reported_mask_Geometry, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_reported_mask_OtherNames, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
UNUSED(16);
|
|
if ((f_reported & (1 << 0)) != 0) {
|
|
int f_typeDeviceID;
|
|
int f_typeMinKeyCode;
|
|
int f_typeMaxKeyCode;
|
|
int f_present;
|
|
int f_firstType;
|
|
int f_nTypes;
|
|
int f_totalTypes;
|
|
int f_firstKeySym;
|
|
int f_totalSyms;
|
|
int f_nKeySyms;
|
|
int f_firstKeyAction;
|
|
int f_totalActions;
|
|
int f_nKeyActions;
|
|
int f_firstKeyBehavior;
|
|
int f_nKeyBehaviors;
|
|
int f_totalKeyBehaviors;
|
|
int f_firstKeyExplicit;
|
|
int f_nKeyExplicit;
|
|
int f_totalKeyExplicit;
|
|
int f_firstModMapKey;
|
|
int f_nModMapKeys;
|
|
int f_totalModMapKeys;
|
|
int f_firstVModMapKey;
|
|
int f_nVModMapKeys;
|
|
int f_totalVModMapKeys;
|
|
int f_virtualMods;
|
|
f_typeDeviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_typeDeviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
f_typeMinKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_typeMinKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_typeMaxKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_typeMaxKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_present = field16(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_Types_present, little_endian);
|
|
f_firstType = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstType, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeySym = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeySym, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalSyms = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalSyms, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nKeySyms = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeySyms, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyAction = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeyAction, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalActions = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalActions, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nKeyActions = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeyActions, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyBehavior = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeyBehavior, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyBehaviors = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeyBehaviors, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalKeyBehaviors = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalKeyBehaviors, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstVModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_firstVModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nVModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_nVModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalVModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_totalVModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_virtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_Types_virtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
if ((f_present & (1 << 0)) != 0) {
|
|
struct_KeyType(tvb, offsetp, t, little_endian, f_nTypes);
|
|
}
|
|
if ((f_present & (1 << 1)) != 0) {
|
|
struct_KeySymMap(tvb, offsetp, t, little_endian, f_nKeySyms);
|
|
}
|
|
if ((f_present & (1 << 4)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_Types_KeyActions_acts_rtrn_count, f_nKeyActions, little_endian);
|
|
struct_Action(tvb, offsetp, t, little_endian, f_totalActions);
|
|
}
|
|
if ((f_present & (1 << 5)) != 0) {
|
|
struct_SetBehavior(tvb, offsetp, t, little_endian, f_totalKeyBehaviors);
|
|
}
|
|
if ((f_present & (1 << 6)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_Types_VirtualMods_vmods_rtrn, f_nVModMapKeys, little_endian);
|
|
}
|
|
if ((f_present & (1 << 3)) != 0) {
|
|
struct_SetExplicit(tvb, offsetp, t, little_endian, f_totalKeyExplicit);
|
|
}
|
|
if ((f_present & (1 << 2)) != 0) {
|
|
struct_KeyModMap(tvb, offsetp, t, little_endian, f_totalModMapKeys);
|
|
}
|
|
if ((f_present & (1 << 7)) != 0) {
|
|
struct_KeyVModMap(tvb, offsetp, t, little_endian, f_totalVModMapKeys);
|
|
}
|
|
}
|
|
if ((f_reported & (1 << 1)) != 0) {
|
|
int f_compatDeviceID;
|
|
int f_groupsRtrn;
|
|
int f_firstSIRtrn;
|
|
int f_nSIRtrn;
|
|
int f_nTotalSI;
|
|
f_compatDeviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_compatDeviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_groupsRtrn = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_CompatMap_groupsRtrn_mask_Group4, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_firstSIRtrn = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_firstSIRtrn, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nSIRtrn = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_nSIRtrn, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nTotalSI = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_CompatMap_nTotalSI, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(16);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_CompatMap_si_rtrn, (16 * f_nSIRtrn), little_endian);
|
|
struct_ModDef(tvb, offsetp, t, little_endian, popcount(f_groupsRtrn));
|
|
}
|
|
if ((f_reported & (1 << 2)) != 0) {
|
|
int f_clientDeviceID;
|
|
int f_clientMinKeyCode;
|
|
int f_clientMaxKeyCode;
|
|
int f_present;
|
|
int f_firstType;
|
|
int f_nTypes;
|
|
int f_totalTypes;
|
|
int f_firstKeySym;
|
|
int f_totalSyms;
|
|
int f_nKeySyms;
|
|
int f_firstKeyAction;
|
|
int f_totalActions;
|
|
int f_nKeyActions;
|
|
int f_firstKeyBehavior;
|
|
int f_nKeyBehaviors;
|
|
int f_totalKeyBehaviors;
|
|
int f_firstKeyExplicit;
|
|
int f_nKeyExplicit;
|
|
int f_totalKeyExplicit;
|
|
int f_firstModMapKey;
|
|
int f_nModMapKeys;
|
|
int f_totalModMapKeys;
|
|
int f_firstVModMapKey;
|
|
int f_nVModMapKeys;
|
|
int f_totalVModMapKeys;
|
|
int f_virtualMods;
|
|
f_clientDeviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_clientDeviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
f_clientMinKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_clientMinKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_clientMaxKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_clientMaxKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_present = field16(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_present, little_endian);
|
|
f_firstType = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_firstType, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_nTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_totalTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeySym = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_firstKeySym, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalSyms = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_totalSyms, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nKeySyms = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_nKeySyms, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyAction = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_firstKeyAction, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalActions = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_totalActions, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nKeyActions = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_nKeyActions, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyBehavior = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_firstKeyBehavior, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyBehaviors = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_nKeyBehaviors, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalKeyBehaviors = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_totalKeyBehaviors, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_firstKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_nKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_totalKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_firstModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_nModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_totalModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstVModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_firstVModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nVModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_nVModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalVModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_totalVModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_virtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_virtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
if ((f_present & (1 << 0)) != 0) {
|
|
struct_KeyType(tvb, offsetp, t, little_endian, f_nTypes);
|
|
}
|
|
if ((f_present & (1 << 1)) != 0) {
|
|
struct_KeySymMap(tvb, offsetp, t, little_endian, f_nKeySyms);
|
|
}
|
|
if ((f_present & (1 << 4)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_KeyActions_acts_rtrn_count, f_nKeyActions, little_endian);
|
|
struct_Action(tvb, offsetp, t, little_endian, f_totalActions);
|
|
}
|
|
if ((f_present & (1 << 5)) != 0) {
|
|
struct_SetBehavior(tvb, offsetp, t, little_endian, f_totalKeyBehaviors);
|
|
}
|
|
if ((f_present & (1 << 6)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_ClientSymbols_VirtualMods_vmods_rtrn, f_nVModMapKeys, little_endian);
|
|
}
|
|
if ((f_present & (1 << 3)) != 0) {
|
|
struct_SetExplicit(tvb, offsetp, t, little_endian, f_totalKeyExplicit);
|
|
}
|
|
if ((f_present & (1 << 2)) != 0) {
|
|
struct_KeyModMap(tvb, offsetp, t, little_endian, f_totalModMapKeys);
|
|
}
|
|
if ((f_present & (1 << 7)) != 0) {
|
|
struct_KeyVModMap(tvb, offsetp, t, little_endian, f_totalVModMapKeys);
|
|
}
|
|
}
|
|
if ((f_reported & (1 << 3)) != 0) {
|
|
int f_serverDeviceID;
|
|
int f_serverMinKeyCode;
|
|
int f_serverMaxKeyCode;
|
|
int f_present;
|
|
int f_firstType;
|
|
int f_nTypes;
|
|
int f_totalTypes;
|
|
int f_firstKeySym;
|
|
int f_totalSyms;
|
|
int f_nKeySyms;
|
|
int f_firstKeyAction;
|
|
int f_totalActions;
|
|
int f_nKeyActions;
|
|
int f_firstKeyBehavior;
|
|
int f_nKeyBehaviors;
|
|
int f_totalKeyBehaviors;
|
|
int f_firstKeyExplicit;
|
|
int f_nKeyExplicit;
|
|
int f_totalKeyExplicit;
|
|
int f_firstModMapKey;
|
|
int f_nModMapKeys;
|
|
int f_totalModMapKeys;
|
|
int f_firstVModMapKey;
|
|
int f_nVModMapKeys;
|
|
int f_totalVModMapKeys;
|
|
int f_virtualMods;
|
|
f_serverDeviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_serverDeviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
f_serverMinKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_serverMinKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_serverMaxKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_serverMaxKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_present = field16(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_present, little_endian);
|
|
f_firstType = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_firstType, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_nTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_totalTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeySym = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_firstKeySym, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalSyms = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_totalSyms, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nKeySyms = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_nKeySyms, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyAction = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_firstKeyAction, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalActions = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_totalActions, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nKeyActions = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_nKeyActions, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyBehavior = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_firstKeyBehavior, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyBehaviors = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_nKeyBehaviors, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalKeyBehaviors = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_totalKeyBehaviors, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_firstKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_nKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_totalKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_firstModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_nModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_totalModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstVModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_firstVModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nVModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_nVModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalVModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_totalVModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_virtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_virtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
if ((f_present & (1 << 0)) != 0) {
|
|
struct_KeyType(tvb, offsetp, t, little_endian, f_nTypes);
|
|
}
|
|
if ((f_present & (1 << 1)) != 0) {
|
|
struct_KeySymMap(tvb, offsetp, t, little_endian, f_nKeySyms);
|
|
}
|
|
if ((f_present & (1 << 4)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_KeyActions_acts_rtrn_count, f_nKeyActions, little_endian);
|
|
struct_Action(tvb, offsetp, t, little_endian, f_totalActions);
|
|
}
|
|
if ((f_present & (1 << 5)) != 0) {
|
|
struct_SetBehavior(tvb, offsetp, t, little_endian, f_totalKeyBehaviors);
|
|
}
|
|
if ((f_present & (1 << 6)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_ServerSymbols_VirtualMods_vmods_rtrn, f_nVModMapKeys, little_endian);
|
|
}
|
|
if ((f_present & (1 << 3)) != 0) {
|
|
struct_SetExplicit(tvb, offsetp, t, little_endian, f_totalKeyExplicit);
|
|
}
|
|
if ((f_present & (1 << 2)) != 0) {
|
|
struct_KeyModMap(tvb, offsetp, t, little_endian, f_totalModMapKeys);
|
|
}
|
|
if ((f_present & (1 << 7)) != 0) {
|
|
struct_KeyVModMap(tvb, offsetp, t, little_endian, f_totalVModMapKeys);
|
|
}
|
|
}
|
|
if ((f_reported & (1 << 4)) != 0) {
|
|
int f_indicatorDeviceID;
|
|
int f_which;
|
|
int f_realIndicators;
|
|
int f_nIndicators;
|
|
f_indicatorDeviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_indicatorDeviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_which = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_which, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_realIndicators = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_realIndicators, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_nIndicators = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_IndicatorMaps_nIndicators, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(15);
|
|
struct_IndicatorMap(tvb, offsetp, t, little_endian, f_nIndicators);
|
|
}
|
|
if ((f_reported & (1 << 5)) != 0) {
|
|
int f_keyDeviceID;
|
|
int f_which;
|
|
int f_keyMinKeyCode;
|
|
int f_keyMaxKeyCode;
|
|
int f_nTypes;
|
|
int f_groupNames;
|
|
int f_virtualMods;
|
|
int f_firstKey;
|
|
int f_nKeys;
|
|
int f_indicators;
|
|
int f_nRadioGroups;
|
|
int f_nKeyAliases;
|
|
int f_nKTLevels;
|
|
f_keyDeviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyDeviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_which = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_which, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Keycodes, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Geometry, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Symbols, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_PhysSymbols, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Types, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_Compat, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KeyTypeNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KTLevelNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_IndicatorNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KeyNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_KeyAliases, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_VirtualModNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_GroupNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_which_mask_RGNames, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_keyMinKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyMinKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_keyMaxKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_keyMaxKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_groupNames = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_groupNames_mask_Group4, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_virtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_KeyNames_virtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_firstKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_firstKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_indicators = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_indicators, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_nRadioGroups = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nRadioGroups, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyAliases = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nKeyAliases, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKTLevels = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_nKTLevels, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(4);
|
|
if ((f_which & (1 << 0)) != 0) {
|
|
int f_keycodesName;
|
|
f_keycodesName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Keycodes_keycodesName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 1)) != 0) {
|
|
int f_geometryName;
|
|
f_geometryName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Geometry_geometryName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 2)) != 0) {
|
|
int f_symbolsName;
|
|
f_symbolsName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Symbols_symbolsName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 3)) != 0) {
|
|
int f_physSymbolsName;
|
|
f_physSymbolsName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_PhysSymbols_physSymbolsName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 4)) != 0) {
|
|
int f_typesName;
|
|
f_typesName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Types_typesName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 5)) != 0) {
|
|
int f_compatName;
|
|
f_compatName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_KeyNames_Compat_compatName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 6)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_KeyTypeNames_typeNames, hf_x11_xkb_GetKbdByName_reply_KeyNames_KeyTypeNames_typeNames_item, f_nTypes, little_endian);
|
|
}
|
|
if ((f_which & (1 << 7)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_KTLevelNames_nLevelsPerType, f_nKTLevels, little_endian);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_KTLevelNames_ktLevelNames, hf_x11_xkb_GetKbdByName_reply_KeyNames_KTLevelNames_ktLevelNames_item, (length - 230) / 4, little_endian);
|
|
}
|
|
if ((f_which & (1 << 8)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_IndicatorNames_indicatorNames, hf_x11_xkb_GetKbdByName_reply_KeyNames_IndicatorNames_indicatorNames_item, popcount(f_indicators), little_endian);
|
|
}
|
|
if ((f_which & (1 << 11)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_VirtualModNames_virtualModNames, hf_x11_xkb_GetKbdByName_reply_KeyNames_VirtualModNames_virtualModNames_item, popcount(f_virtualMods), little_endian);
|
|
}
|
|
if ((f_which & (1 << 12)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_GroupNames_groups, hf_x11_xkb_GetKbdByName_reply_KeyNames_GroupNames_groups_item, popcount(f_groupNames), little_endian);
|
|
}
|
|
if ((f_which & (1 << 9)) != 0) {
|
|
struct_KeyName(tvb, offsetp, t, little_endian, f_nKeys);
|
|
}
|
|
if ((f_which & (1 << 10)) != 0) {
|
|
struct_KeyAlias(tvb, offsetp, t, little_endian, f_nKeyAliases);
|
|
}
|
|
if ((f_which & (1 << 13)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_KeyNames_RGNames_radioGroupNames, hf_x11_xkb_GetKbdByName_reply_KeyNames_RGNames_radioGroupNames_item, f_nRadioGroups, little_endian);
|
|
}
|
|
}
|
|
if ((f_reported & (1 << 7)) != 0) {
|
|
int f_otherDeviceID;
|
|
int f_which;
|
|
int f_otherMinKeyCode;
|
|
int f_otherMaxKeyCode;
|
|
int f_nTypes;
|
|
int f_groupNames;
|
|
int f_virtualMods;
|
|
int f_firstKey;
|
|
int f_nKeys;
|
|
int f_indicators;
|
|
int f_nRadioGroups;
|
|
int f_nKeyAliases;
|
|
int f_nKTLevels;
|
|
f_otherDeviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_otherDeviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_which = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_which, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_Keycodes, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_Geometry, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_Symbols, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_PhysSymbols, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_Types, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_Compat, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_KeyTypeNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_KTLevelNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_IndicatorNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_KeyNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_KeyAliases, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_VirtualModNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_GroupNames, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_which_mask_RGNames, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_otherMinKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_otherMinKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_otherMaxKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_otherMaxKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_nTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_groupNames = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_groupNames, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_groupNames_mask_Group1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_groupNames_mask_Group2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_groupNames_mask_Group3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_groupNames_mask_Group4, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_virtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetKbdByName_reply_OtherNames_virtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_firstKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_firstKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_nKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_indicators = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_indicators, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_nRadioGroups = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_nRadioGroups, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyAliases = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_nKeyAliases, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKTLevels = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_nKTLevels, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(4);
|
|
if ((f_which & (1 << 0)) != 0) {
|
|
int f_keycodesName;
|
|
f_keycodesName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_Keycodes_keycodesName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 1)) != 0) {
|
|
int f_geometryName;
|
|
f_geometryName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_Geometry_geometryName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 2)) != 0) {
|
|
int f_symbolsName;
|
|
f_symbolsName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_Symbols_symbolsName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 3)) != 0) {
|
|
int f_physSymbolsName;
|
|
f_physSymbolsName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_PhysSymbols_physSymbolsName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 4)) != 0) {
|
|
int f_typesName;
|
|
f_typesName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_Types_typesName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 5)) != 0) {
|
|
int f_compatName;
|
|
f_compatName = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_OtherNames_Compat_compatName, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
if ((f_which & (1 << 6)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_OtherNames_KeyTypeNames_typeNames, hf_x11_xkb_GetKbdByName_reply_OtherNames_KeyTypeNames_typeNames_item, f_nTypes, little_endian);
|
|
}
|
|
if ((f_which & (1 << 7)) != 0) {
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_OtherNames_KTLevelNames_nLevelsPerType, f_nKTLevels, little_endian);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_OtherNames_KTLevelNames_ktLevelNames, hf_x11_xkb_GetKbdByName_reply_OtherNames_KTLevelNames_ktLevelNames_item, (length - 279) / 4, little_endian);
|
|
}
|
|
if ((f_which & (1 << 8)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_OtherNames_IndicatorNames_indicatorNames, hf_x11_xkb_GetKbdByName_reply_OtherNames_IndicatorNames_indicatorNames_item, popcount(f_indicators), little_endian);
|
|
}
|
|
if ((f_which & (1 << 11)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_OtherNames_VirtualModNames_virtualModNames, hf_x11_xkb_GetKbdByName_reply_OtherNames_VirtualModNames_virtualModNames_item, popcount(f_virtualMods), little_endian);
|
|
}
|
|
if ((f_which & (1 << 12)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_OtherNames_GroupNames_groups, hf_x11_xkb_GetKbdByName_reply_OtherNames_GroupNames_groups_item, popcount(f_groupNames), little_endian);
|
|
}
|
|
if ((f_which & (1 << 9)) != 0) {
|
|
struct_KeyName(tvb, offsetp, t, little_endian, f_nKeys);
|
|
}
|
|
if ((f_which & (1 << 10)) != 0) {
|
|
struct_KeyAlias(tvb, offsetp, t, little_endian, f_nKeyAliases);
|
|
}
|
|
if ((f_which & (1 << 13)) != 0) {
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xkb_GetKbdByName_reply_OtherNames_RGNames_radioGroupNames, hf_x11_xkb_GetKbdByName_reply_OtherNames_RGNames_radioGroupNames_item, f_nRadioGroups, little_endian);
|
|
}
|
|
}
|
|
if ((f_reported & (1 << 6)) != 0) {
|
|
int f_geometryDeviceID;
|
|
int f_name;
|
|
int f_geometryFound;
|
|
int f_widthMM;
|
|
int f_heightMM;
|
|
int f_nProperties;
|
|
int f_nColors;
|
|
int f_nShapes;
|
|
int f_nSections;
|
|
int f_nDoodads;
|
|
int f_nKeyAliases;
|
|
int f_baseColorNdx;
|
|
int f_labelColorNdx;
|
|
f_geometryDeviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometryDeviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_geometryFound = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_geometryFound, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_widthMM = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_widthMM, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_heightMM = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_heightMM, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nProperties = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nProperties, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nColors = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nColors, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nShapes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nShapes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nSections = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nSections, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nDoodads = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nDoodads, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nKeyAliases = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_nKeyAliases, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_baseColorNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_baseColorNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_labelColorNdx = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetKbdByName_reply_Geometry_labelColorNdx, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
struct_CountedString16(tvb, offsetp, t, little_endian, 1);
|
|
struct_Property(tvb, offsetp, t, little_endian, f_nProperties);
|
|
struct_CountedString16(tvb, offsetp, t, little_endian, f_nColors);
|
|
struct_Shape(tvb, offsetp, t, little_endian, f_nShapes);
|
|
struct_Section(tvb, offsetp, t, little_endian, f_nSections);
|
|
struct_Doodad(tvb, offsetp, t, little_endian, f_nDoodads);
|
|
struct_KeyAlias(tvb, offsetp, t, little_endian, f_nKeyAliases);
|
|
}
|
|
}
|
|
|
|
static void xkbGetDeviceInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_wanted;
|
|
int f_allButtons;
|
|
int f_firstButton;
|
|
int f_nButtons;
|
|
int f_ledClass;
|
|
int f_ledID;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_wanted = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_wanted, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_wanted_mask_Keyboards, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_wanted_mask_ButtonActions, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_wanted_mask_IndicatorNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_wanted_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_wanted_mask_IndicatorState, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_allButtons = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_allButtons, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstButton = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_firstButton, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nButtons = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_nButtons, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_ledClass = field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_ledClass, little_endian);
|
|
f_ledID = field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_ledID, little_endian);
|
|
}
|
|
static void xkbGetDeviceInfo_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_deviceID;
|
|
int f_present;
|
|
int f_supported;
|
|
int f_unsupported;
|
|
int f_nDeviceLedFBs;
|
|
int f_firstBtnWanted;
|
|
int f_nBtnsWanted;
|
|
int f_firstBtnRtrn;
|
|
int f_nBtnsRtrn;
|
|
int f_totalBtns;
|
|
int f_hasOwnState;
|
|
int f_dfltKbdFB;
|
|
int f_dfltLedFB;
|
|
int f_devType;
|
|
int f_nameLen;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceInfo");
|
|
|
|
REPLY(reply);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-GetDeviceInfo)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_present = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_present, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_present_mask_Keyboards, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_present_mask_ButtonActions, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_present_mask_IndicatorNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_present_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_present_mask_IndicatorState, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_supported = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_supported, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_supported_mask_Keyboards, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_supported_mask_ButtonActions, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_supported_mask_IndicatorNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_supported_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_supported_mask_IndicatorState, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_unsupported = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_unsupported, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_Keyboards, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_ButtonActions, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_IndicatorNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_GetDeviceInfo_reply_unsupported_mask_IndicatorState, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_nDeviceLedFBs = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nDeviceLedFBs, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_firstBtnWanted = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_firstBtnWanted, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nBtnsWanted = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nBtnsWanted, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstBtnRtrn = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_firstBtnRtrn, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nBtnsRtrn = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nBtnsRtrn, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_totalBtns = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_totalBtns, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_hasOwnState = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_hasOwnState, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_dfltKbdFB = field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_reply_dfltKbdFB, little_endian);
|
|
f_dfltLedFB = field16(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_reply_dfltLedFB, little_endian);
|
|
UNUSED(2);
|
|
f_devType = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_devType, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_nameLen = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_GetDeviceInfo_reply_nameLen, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_GetDeviceInfo_reply_name, f_nameLen, little_endian);
|
|
struct_Action(tvb, offsetp, t, little_endian, f_nBtnsRtrn);
|
|
struct_DeviceLedInfo(tvb, offsetp, t, little_endian, f_nDeviceLedFBs);
|
|
}
|
|
|
|
static void xkbSetDeviceInfo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_deviceSpec;
|
|
int f_firstBtn;
|
|
int f_nBtns;
|
|
int f_change;
|
|
int f_nDeviceLedFBs;
|
|
f_deviceSpec = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_deviceSpec, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_firstBtn = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_firstBtn, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nBtns = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_nBtns, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_change = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_change, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetDeviceInfo_change_mask_Keyboards, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetDeviceInfo_change_mask_ButtonActions, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetDeviceInfo_change_mask_IndicatorNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetDeviceInfo_change_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_SetDeviceInfo_change_mask_IndicatorState, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_nDeviceLedFBs = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetDeviceInfo_nDeviceLedFBs, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
struct_Action(tvb, offsetp, t, little_endian, f_nBtns);
|
|
length -= f_nBtns * 8;
|
|
struct_DeviceLedInfo(tvb, offsetp, t, little_endian, f_nDeviceLedFBs);
|
|
length -= f_nDeviceLedFBs * 0;
|
|
}
|
|
|
|
static void xkbSetDebuggingFlags(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_msgLength;
|
|
int f_affectFlags;
|
|
int f_flags;
|
|
int f_affectCtrls;
|
|
int f_ctrls;
|
|
f_msgLength = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_msgLength, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
f_affectFlags = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_affectFlags, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_flags = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_flags, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_affectCtrls = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_affectCtrls, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_ctrls = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_ctrls, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_SetDebuggingFlags_message, f_msgLength, little_endian);
|
|
length -= f_msgLength * 1;
|
|
}
|
|
static void xkbSetDebuggingFlags_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_currentFlags;
|
|
int f_currentCtrls;
|
|
int f_supportedFlags;
|
|
int f_supportedCtrls;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-SetDebuggingFlags");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xkb-SetDebuggingFlags)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_currentFlags = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_currentFlags, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_currentCtrls = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_currentCtrls, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_supportedFlags = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_supportedFlags, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_supportedCtrls = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_SetDebuggingFlags_reply_supportedCtrls, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
}
|
|
|
|
static void xkbNewKeyboardNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_deviceID;
|
|
int f_oldDeviceID;
|
|
int f_minKeyCode;
|
|
int f_maxKeyCode;
|
|
int f_oldMinKeyCode;
|
|
int f_oldMaxKeyCode;
|
|
int f_requestMajor;
|
|
int f_requestMinor;
|
|
int f_changed;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NewKeyboardNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
CARD16(event_sequencenumber);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NewKeyboardNotify_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_oldDeviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NewKeyboardNotify_oldDeviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_minKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NewKeyboardNotify_minKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_maxKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NewKeyboardNotify_maxKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_oldMinKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NewKeyboardNotify_oldMinKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_oldMaxKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NewKeyboardNotify_oldMaxKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_requestMajor = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NewKeyboardNotify_requestMajor, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_requestMinor = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NewKeyboardNotify_requestMinor, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_changed = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_NewKeyboardNotify_changed, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NewKeyboardNotify_changed_mask_Keycodes, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NewKeyboardNotify_changed_mask_Geometry, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NewKeyboardNotify_changed_mask_DeviceID, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
UNUSED(14);
|
|
}
|
|
|
|
static void xkbMapNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_deviceID;
|
|
int f_ptrBtnActions;
|
|
int f_changed;
|
|
int f_minKeyCode;
|
|
int f_maxKeyCode;
|
|
int f_firstType;
|
|
int f_nTypes;
|
|
int f_firstKeySym;
|
|
int f_nKeySyms;
|
|
int f_firstKeyAct;
|
|
int f_nKeyActs;
|
|
int f_firstKeyBehavior;
|
|
int f_nKeyBehavior;
|
|
int f_firstKeyExplicit;
|
|
int f_nKeyExplicit;
|
|
int f_firstModMapKey;
|
|
int f_nModMapKeys;
|
|
int f_firstVModMapKey;
|
|
int f_nVModMapKeys;
|
|
int f_virtualMods;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
CARD16(event_sequencenumber);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_ptrBtnActions = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_ptrBtnActions, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_changed = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_MapNotify_changed, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_changed_mask_KeyTypes, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_changed_mask_KeySyms, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_changed_mask_ModifierMap, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_changed_mask_ExplicitComponents, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_changed_mask_KeyActions, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_changed_mask_KeyBehaviors, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_changed_mask_VirtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_changed_mask_VirtualModMap, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_minKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_minKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_maxKeyCode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_maxKeyCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstType = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstType, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_nTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeySym = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeySym, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeySyms = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeySyms, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyAct = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeyAct, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyActs = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeyActs, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyBehavior = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeyBehavior, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyBehavior = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeyBehavior, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyExplicit = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_nKeyExplicit, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_nModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstVModMapKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_firstVModMapKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nVModMapKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_MapNotify_nVModMapKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_virtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_MapNotify_virtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_MapNotify_virtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
|
|
static void xkbStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_deviceID;
|
|
int f_mods;
|
|
int f_baseMods;
|
|
int f_latchedMods;
|
|
int f_lockedMods;
|
|
int f_group;
|
|
int f_baseGroup;
|
|
int f_latchedGroup;
|
|
int f_lockedGroup;
|
|
int f_compatState;
|
|
int f_grabMods;
|
|
int f_compatGrabMods;
|
|
int f_lookupMods;
|
|
int f_compatLoockupMods;
|
|
int f_ptrBtnState;
|
|
int f_changed;
|
|
int f_keycode;
|
|
int f_eventType;
|
|
int f_requestMajor;
|
|
int f_requestMinor;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_StateNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
CARD16(event_sequencenumber);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_StateNotify_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_mods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_StateNotify_mods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_mods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_mods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_mods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_mods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_mods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_mods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_mods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_mods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_mods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_baseMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_StateNotify_baseMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_baseMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_baseMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_baseMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_baseMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_baseMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_baseMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_baseMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_baseMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_baseMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_latchedMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_StateNotify_latchedMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_latchedMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_latchedMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_latchedMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_latchedMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_latchedMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_latchedMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_latchedMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_latchedMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_latchedMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_lockedMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_StateNotify_lockedMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lockedMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lockedMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lockedMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lockedMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lockedMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lockedMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lockedMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lockedMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lockedMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_group = field8(tvb, offsetp, t, hf_x11_xkb_StateNotify_group, little_endian);
|
|
f_baseGroup = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_StateNotify_baseGroup, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_latchedGroup = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_StateNotify_latchedGroup, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_lockedGroup = field8(tvb, offsetp, t, hf_x11_xkb_StateNotify_lockedGroup, little_endian);
|
|
f_compatState = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_StateNotify_compatState, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatState_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatState_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatState_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatState_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatState_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatState_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatState_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatState_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatState_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_grabMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_StateNotify_grabMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_grabMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_grabMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_grabMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_grabMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_grabMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_grabMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_grabMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_grabMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_grabMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_compatGrabMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_StateNotify_compatGrabMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatGrabMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatGrabMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatGrabMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatGrabMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatGrabMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatGrabMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatGrabMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatGrabMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatGrabMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_lookupMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_StateNotify_lookupMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lookupMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lookupMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lookupMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lookupMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lookupMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lookupMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lookupMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lookupMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_lookupMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_compatLoockupMods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_StateNotify_compatLoockupMods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatLoockupMods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatLoockupMods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatLoockupMods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatLoockupMods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatLoockupMods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatLoockupMods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatLoockupMods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatLoockupMods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_compatLoockupMods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_ptrBtnState = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_StateNotify_ptrBtnState, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_ptrBtnState_mask_Shift, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_ptrBtnState_mask_Lock, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_ptrBtnState_mask_Control, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_ptrBtnState_mask_Mod5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_ptrBtnState_mask_Button1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_ptrBtnState_mask_Button2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_ptrBtnState_mask_Button3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_ptrBtnState_mask_Button4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_ptrBtnState_mask_Button5, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_changed = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_StateNotify_changed, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_ModifierState, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_ModifierBase, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_ModifierLatch, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_ModifierLock, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_GroupState, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_GroupBase, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_GroupLatch, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_GroupLock, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_CompatState, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_GrabMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_CompatGrabMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_LookupMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_CompatLookupMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_StateNotify_changed_mask_PointerButtons, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_keycode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_StateNotify_keycode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_eventType = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_StateNotify_eventType, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_requestMajor = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_StateNotify_requestMajor, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_requestMinor = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_StateNotify_requestMinor, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xkbControlsNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_deviceID;
|
|
int f_numGroups;
|
|
int f_changedControls;
|
|
int f_enabledControls;
|
|
int f_enabledControlChanges;
|
|
int f_keycode;
|
|
int f_eventType;
|
|
int f_requestMajor;
|
|
int f_requestMinor;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
CARD16(event_sequencenumber);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_numGroups = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_numGroups, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
f_changedControls = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_changedControls, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_changedControls_mask_GroupsWrap, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_changedControls_mask_InternalMods, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_changedControls_mask_IgnoreLockMods, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_changedControls_mask_PerKeyRepeat, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_changedControls_mask_ControlsEnabled, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_enabledControls = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_enabledControls, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControls_mask_RepeatKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControls_mask_SlowKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControls_mask_BounceKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControls_mask_StickyKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControls_mask_MouseKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControls_mask_MouseKeysAccel, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControls_mask_AccessXKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControls_mask_AccessXTimeoutMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControls_mask_AccessXFeedbackMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControls_mask_AudibleBellMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControls_mask_Overlay1Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControls_mask_Overlay2Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControls_mask_IgnoreGroupLockMask, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_enabledControlChanges = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_enabledControlChanges, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_RepeatKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_SlowKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_BounceKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_StickyKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_MouseKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_MouseKeysAccel, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AccessXKeys, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AccessXTimeoutMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AccessXFeedbackMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_AudibleBellMask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_Overlay1Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_Overlay2Mask, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ControlsNotify_enabledControlChanges_mask_IgnoreGroupLockMask, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_keycode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_keycode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_eventType = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_eventType, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_requestMajor = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_requestMajor, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_requestMinor = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ControlsNotify_requestMinor, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(4);
|
|
}
|
|
|
|
static void xkbIndicatorStateNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_deviceID;
|
|
int f_state;
|
|
int f_stateChanged;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
CARD16(event_sequencenumber);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
f_state = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_state, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_stateChanged = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_IndicatorStateNotify_stateChanged, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
}
|
|
|
|
static void xkbIndicatorMapNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_deviceID;
|
|
int f_state;
|
|
int f_mapChanged;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
CARD16(event_sequencenumber);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
f_state = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_state, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mapChanged = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_IndicatorMapNotify_mapChanged, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
}
|
|
|
|
static void xkbNamesNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_deviceID;
|
|
int f_changed;
|
|
int f_firstType;
|
|
int f_nTypes;
|
|
int f_firstLevelName;
|
|
int f_nLevelNames;
|
|
int f_nRadioGroups;
|
|
int f_nKeyAliases;
|
|
int f_changedGroupNames;
|
|
int f_changedVirtualMods;
|
|
int f_firstKey;
|
|
int f_nKeys;
|
|
int f_changedIndicators;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NamesNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
CARD16(event_sequencenumber);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NamesNotify_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_changed = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_NamesNotify_changed, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_Keycodes, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_Geometry, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_Symbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_PhysSymbols, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_Types, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_Compat, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_KeyTypeNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_KTLevelNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_IndicatorNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_KeyNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_KeyAliases, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_VirtualModNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_GroupNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changed_mask_RGNames, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_firstType = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NamesNotify_firstType, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nTypes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nTypes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_firstLevelName = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NamesNotify_firstLevelName, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nLevelNames = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nLevelNames, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_nRadioGroups = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nRadioGroups, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeyAliases = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nKeyAliases, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_changedGroupNames = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_NamesNotify_changedGroupNames, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedGroupNames_mask_Group4, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_changedVirtualMods = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_NamesNotify_changedVirtualMods, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_0, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_1, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_2, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_3, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_4, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_5, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_6, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_7, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_8, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_9, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_10, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_11, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_12, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_13, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_14, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_NamesNotify_changedVirtualMods_mask_15, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_firstKey = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NamesNotify_firstKey, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nKeys = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NamesNotify_nKeys, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_changedIndicators = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_NamesNotify_changedIndicators, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(4);
|
|
}
|
|
|
|
static void xkbCompatMapNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_deviceID;
|
|
int f_changedGroups;
|
|
int f_firstSI;
|
|
int f_nSI;
|
|
int f_nTotalSI;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
CARD16(event_sequencenumber);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_changedGroups = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_changedGroups, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_CompatMapNotify_changedGroups_mask_Group4, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_firstSI = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_firstSI, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nSI = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_nSI, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_nTotalSI = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_CompatMapNotify_nTotalSI, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(16);
|
|
}
|
|
|
|
static void xkbBellNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_deviceID;
|
|
int f_bellClass;
|
|
int f_bellID;
|
|
int f_percent;
|
|
int f_pitch;
|
|
int f_duration;
|
|
int f_name;
|
|
int f_window;
|
|
int f_eventOnly;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_BellNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
CARD16(event_sequencenumber);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_BellNotify_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_bellClass = field8(tvb, offsetp, t, hf_x11_xkb_BellNotify_bellClass, little_endian);
|
|
f_bellID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_BellNotify_bellID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_percent = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_BellNotify_percent, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_pitch = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_BellNotify_pitch, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_duration = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_BellNotify_duration, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_BellNotify_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_BellNotify_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_eventOnly = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_BellNotify_eventOnly, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(7);
|
|
}
|
|
|
|
static void xkbActionMessage(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_deviceID;
|
|
int f_keycode;
|
|
int f_press;
|
|
int f_keyEventFollows;
|
|
int f_mods;
|
|
int f_group;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ActionMessage_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
CARD16(event_sequencenumber);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ActionMessage_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_keycode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ActionMessage_keycode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_press = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ActionMessage_press, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_keyEventFollows = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ActionMessage_keyEventFollows, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_mods = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_ActionMessage_mods, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ActionMessage_mods_mask_Shift, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ActionMessage_mods_mask_Lock, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ActionMessage_mods_mask_Control, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ActionMessage_mods_mask_1, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ActionMessage_mods_mask_2, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ActionMessage_mods_mask_3, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ActionMessage_mods_mask_4, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ActionMessage_mods_mask_5, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ActionMessage_mods_mask_Any, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
f_group = field8(tvb, offsetp, t, hf_x11_xkb_ActionMessage_group, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xkb_ActionMessage_message, 8, little_endian);
|
|
UNUSED(10);
|
|
}
|
|
|
|
static void xkbAccessXNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_deviceID;
|
|
int f_keycode;
|
|
int f_detailt;
|
|
int f_slowKeysDelay;
|
|
int f_debounceDelay;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
CARD16(event_sequencenumber);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_keycode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_keycode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_detailt = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_detailt, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_AccessXNotify_detailt_mask_SKPress, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_AccessXNotify_detailt_mask_SKAccept, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_AccessXNotify_detailt_mask_SKReject, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_AccessXNotify_detailt_mask_SKRelease, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_AccessXNotify_detailt_mask_BKAccept, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_AccessXNotify_detailt_mask_BKReject, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_AccessXNotify_detailt_mask_AXKWarning, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_slowKeysDelay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_slowKeysDelay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_debounceDelay = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_AccessXNotify_debounceDelay, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(16);
|
|
}
|
|
|
|
static void xkbExtensionDeviceNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_deviceID;
|
|
int f_reason;
|
|
int f_ledClass;
|
|
int f_ledID;
|
|
int f_ledsDefined;
|
|
int f_ledState;
|
|
int f_firstButton;
|
|
int f_nButtons;
|
|
int f_supported;
|
|
int f_unsupported;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
CARD16(event_sequencenumber);
|
|
f_deviceID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_deviceID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_reason = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_reason, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_reason_mask_Keyboards, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_reason_mask_ButtonActions, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_reason_mask_IndicatorNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_reason_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_reason_mask_IndicatorState, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_ledClass = field16(tvb, offsetp, t, hf_x11_xkb_ExtensionDeviceNotify_ledClass, little_endian);
|
|
f_ledID = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_ledID, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_ledsDefined = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_ledsDefined, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_ledState = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_ledState, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_firstButton = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_firstButton, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_nButtons = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_nButtons, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_supported = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_supported, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_supported_mask_Keyboards, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_supported_mask_ButtonActions, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_supported_mask_IndicatorNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_supported_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_supported_mask_IndicatorState, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
f_unsupported = VALUE16(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_xkb_ExtensionDeviceNotify_unsupported, tvb, *offsetp, 2, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_Keyboards, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_ButtonActions, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_IndicatorNames, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_IndicatorMaps, tvb, *offsetp, 2, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_xkb_ExtensionDeviceNotify_unsupported_mask_IndicatorState, tvb, *offsetp, 2, little_endian);
|
|
}
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
}
|
|
static const value_string xkb_extension_minor[] = {
|
|
{ 0, "UseExtension" },
|
|
{ 1, "SelectEvents" },
|
|
{ 3, "Bell" },
|
|
{ 4, "GetState" },
|
|
{ 5, "LatchLockState" },
|
|
{ 6, "GetControls" },
|
|
{ 7, "SetControls" },
|
|
{ 8, "GetMap" },
|
|
{ 9, "SetMap" },
|
|
{ 10, "GetCompatMap" },
|
|
{ 11, "SetCompatMap" },
|
|
{ 12, "GetIndicatorState" },
|
|
{ 13, "GetIndicatorMap" },
|
|
{ 14, "SetIndicatorMap" },
|
|
{ 15, "GetNamedIndicator" },
|
|
{ 16, "SetNamedIndicator" },
|
|
{ 17, "GetNames" },
|
|
{ 18, "SetNames" },
|
|
{ 19, "GetGeometry" },
|
|
{ 20, "SetGeometry" },
|
|
{ 21, "PerClientFlags" },
|
|
{ 22, "ListComponents" },
|
|
{ 23, "GetKbdByName" },
|
|
{ 24, "GetDeviceInfo" },
|
|
{ 25, "SetDeviceInfo" },
|
|
{ 101, "SetDebuggingFlags" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info xkb_events[] = {
|
|
{ "xkb-NewKeyboardNotify", xkbNewKeyboardNotify },
|
|
{ "xkb-MapNotify", xkbMapNotify },
|
|
{ "xkb-StateNotify", xkbStateNotify },
|
|
{ "xkb-ControlsNotify", xkbControlsNotify },
|
|
{ "xkb-IndicatorStateNotify", xkbIndicatorStateNotify },
|
|
{ "xkb-IndicatorMapNotify", xkbIndicatorMapNotify },
|
|
{ "xkb-NamesNotify", xkbNamesNotify },
|
|
{ "xkb-CompatMapNotify", xkbCompatMapNotify },
|
|
{ "xkb-BellNotify", xkbBellNotify },
|
|
{ "xkb-ActionMessage", xkbActionMessage },
|
|
{ "xkb-AccessXNotify", xkbAccessXNotify },
|
|
{ "xkb-ExtensionDeviceNotify", xkbExtensionDeviceNotify },
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info xkb_replies[] = {
|
|
{ 0, xkbUseExtension_Reply },
|
|
{ 4, xkbGetState_Reply },
|
|
{ 6, xkbGetControls_Reply },
|
|
{ 8, xkbGetMap_Reply },
|
|
{ 10, xkbGetCompatMap_Reply },
|
|
{ 12, xkbGetIndicatorState_Reply },
|
|
{ 13, xkbGetIndicatorMap_Reply },
|
|
{ 15, xkbGetNamedIndicator_Reply },
|
|
{ 17, xkbGetNames_Reply },
|
|
{ 19, xkbGetGeometry_Reply },
|
|
{ 21, xkbPerClientFlags_Reply },
|
|
{ 22, xkbListComponents_Reply },
|
|
{ 23, xkbGetKbdByName_Reply },
|
|
{ 24, xkbGetDeviceInfo_Reply },
|
|
{ 101, xkbSetDebuggingFlags_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_xkb(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(xkb_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, xkb_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
xkbUseExtension(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
xkbSelectEvents(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
xkbBell(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
xkbGetState(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
xkbLatchLockState(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
xkbGetControls(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
xkbSetControls(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
xkbGetMap(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 9:
|
|
xkbSetMap(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 10:
|
|
xkbGetCompatMap(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 11:
|
|
xkbSetCompatMap(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 12:
|
|
xkbGetIndicatorState(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 13:
|
|
xkbGetIndicatorMap(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 14:
|
|
xkbSetIndicatorMap(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 15:
|
|
xkbGetNamedIndicator(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 16:
|
|
xkbSetNamedIndicator(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 17:
|
|
xkbGetNames(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 18:
|
|
xkbSetNames(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 19:
|
|
xkbGetGeometry(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 20:
|
|
xkbSetGeometry(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 21:
|
|
xkbPerClientFlags(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 22:
|
|
xkbListComponents(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 23:
|
|
xkbGetKbdByName(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 24:
|
|
xkbGetDeviceInfo(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 25:
|
|
xkbSetDeviceInfo(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 101:
|
|
xkbSetDebuggingFlags(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_xkb(void)
|
|
{
|
|
set_handler("XKEYBOARD", dispatch_xkb, xkb_errors, xkb_events, xkb_replies);
|
|
}
|
|
|
|
static int struct_size_PRINTER(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_nameLen;
|
|
int f_descLen;
|
|
f_nameLen = VALUE32(tvb, *offsetp + size + 0);
|
|
size += f_nameLen * 1;
|
|
f_descLen = VALUE32(tvb, *offsetp + size + 4);
|
|
size += f_descLen * 1;
|
|
return size + 8;
|
|
}
|
|
|
|
static void struct_PRINTER(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_nameLen;
|
|
int f_descLen;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_PRINTER, tvb, *offsetp, struct_size_PRINTER(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_nameLen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_PRINTER_nameLen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_PRINTER_name, f_nameLen, little_endian);
|
|
f_descLen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_PRINTER_descLen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_PRINTER_description, f_descLen, little_endian);
|
|
}
|
|
}
|
|
|
|
static void xprintPrintQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xprintPrintQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintQueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xprint-PrintQueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintQueryVersion_reply_major_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintQueryVersion_reply_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xprintPrintGetPrinterList(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_printerNameLen;
|
|
int f_localeLen;
|
|
f_printerNameLen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetPrinterList_printerNameLen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_localeLen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetPrinterList_localeLen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetPrinterList_printer_name, f_printerNameLen, little_endian);
|
|
length -= f_printerNameLen * 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetPrinterList_locale, f_localeLen, little_endian);
|
|
length -= f_localeLen * 1;
|
|
}
|
|
static void xprintPrintGetPrinterList_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_listCount;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetPrinterList");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xprint-PrintGetPrinterList)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_listCount = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetPrinterList_reply_listCount, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
struct_PRINTER(tvb, offsetp, t, little_endian, f_listCount);
|
|
}
|
|
|
|
static void xprintPrintRehashPrinterList(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
|
|
static void xprintCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_id;
|
|
int f_printerNameLen;
|
|
int f_localeLen;
|
|
f_context_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_CreateContext_context_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_printerNameLen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_CreateContext_printerNameLen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_localeLen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_CreateContext_localeLen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xprint_CreateContext_printerName, f_printerNameLen, little_endian);
|
|
length -= f_printerNameLen * 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xprint_CreateContext_locale, f_localeLen, little_endian);
|
|
length -= f_localeLen * 1;
|
|
}
|
|
|
|
static void xprintPrintSetContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintSetContext_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xprintPrintGetContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xprintPrintGetContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xprint-PrintGetContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetContext_reply_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xprintPrintDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintDestroyContext_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xprintPrintGetScreenOfContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xprintPrintGetScreenOfContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_root;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetScreenOfContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xprint-PrintGetScreenOfContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_root = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetScreenOfContext_reply_root, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xprintPrintStartJob(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_output_mode;
|
|
f_output_mode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintStartJob_output_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xprintPrintEndJob(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_cancel;
|
|
f_cancel = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintEndJob_cancel, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xprintPrintStartDoc(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_driver_mode;
|
|
f_driver_mode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintStartDoc_driver_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xprintPrintEndDoc(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_cancel;
|
|
f_cancel = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintEndDoc_cancel, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xprintPrintPutDocumentData(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
int f_len_data;
|
|
int f_len_fmt;
|
|
int f_len_options;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_len_data = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_len_data, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_len_fmt = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_len_fmt, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_len_options = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintPutDocumentData_len_options, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintPutDocumentData_data, f_len_data, little_endian);
|
|
length -= f_len_data * 1;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintPutDocumentData_doc_format, (length - 16) / 1, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintPutDocumentData_options, (length - 16) / 1, little_endian);
|
|
}
|
|
|
|
static void xprintPrintGetDocumentData(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
int f_max_bytes;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_max_bytes = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_max_bytes, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xprintPrintGetDocumentData_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status_code;
|
|
int f_finished_flag;
|
|
int f_dataLen;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetDocumentData");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xprint-PrintGetDocumentData)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_status_code = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_reply_status_code, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_finished_flag = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_reply_finished_flag, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_dataLen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetDocumentData_reply_dataLen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(12);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetDocumentData_reply_data, f_dataLen, little_endian);
|
|
}
|
|
|
|
static void xprintPrintStartPage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintStartPage_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xprintPrintEndPage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_cancel;
|
|
f_cancel = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintEndPage_cancel, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void xprintPrintSelectInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintSelectInput_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xprintPrintInputSelected(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintInputSelected_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xprintPrintInputSelected_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintInputSelected");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xprint-PrintInputSelected)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xprintPrintGetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
int f_pool;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetAttributes_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pool = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetAttributes_pool, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
static void xprintPrintGetAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_stringLen;
|
|
int f_attributes;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetAttributes");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xprint-PrintGetAttributes)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_stringLen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetAttributes_reply_stringLen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
f_attributes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetAttributes_reply_attributes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xprintPrintGetOneAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
int f_nameLen;
|
|
int f_pool;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_nameLen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_nameLen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pool = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_pool, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetOneAttributes_name, f_nameLen, little_endian);
|
|
length -= f_nameLen * 1;
|
|
}
|
|
static void xprintPrintGetOneAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_valueLen;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetOneAttributes");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xprint-PrintGetOneAttributes)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_valueLen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetOneAttributes_reply_valueLen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintGetOneAttributes_reply_value, f_valueLen, little_endian);
|
|
}
|
|
|
|
static void xprintPrintSetAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
int f_stringLen;
|
|
int f_pool;
|
|
int f_rule;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_stringLen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_stringLen, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_pool = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_pool, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_rule = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintSetAttributes_rule, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xprint_PrintSetAttributes_attributes, (length - 16) / 1, little_endian);
|
|
}
|
|
|
|
static void xprintPrintGetPageDimensions(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xprintPrintGetPageDimensions_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_width;
|
|
int f_height;
|
|
int f_offset_x;
|
|
int f_offset_y;
|
|
int f_reproducible_width;
|
|
int f_reproducible_height;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetPageDimensions");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xprint-PrintGetPageDimensions)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_offset_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_offset_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_offset_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_offset_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_reproducible_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_reproducible_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_reproducible_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetPageDimensions_reply_reproducible_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xprintPrintQueryScreens(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xprintPrintQueryScreens_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_listCount;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintQueryScreens");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xprint-PrintQueryScreens)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_listCount = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintQueryScreens_reply_listCount, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xprint_PrintQueryScreens_reply_roots, hf_x11_xprint_PrintQueryScreens_reply_roots_item, f_listCount, little_endian);
|
|
}
|
|
|
|
static void xprintPrintSetImageResolution(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
int f_image_resolution;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_image_resolution = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_image_resolution, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
static void xprintPrintSetImageResolution_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_status;
|
|
int f_previous_resolutions;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintSetImageResolution");
|
|
|
|
REPLY(reply);
|
|
f_status = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_reply_status, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xprint-PrintSetImageResolution)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_previous_resolutions = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintSetImageResolution_reply_previous_resolutions, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xprintPrintGetImageResolution(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetImageResolution_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xprintPrintGetImageResolution_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_image_resolution;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-PrintGetImageResolution");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xprint-PrintGetImageResolution)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_image_resolution = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_PrintGetImageResolution_reply_image_resolution, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xprintNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_detail;
|
|
int f_context;
|
|
int f_cancel;
|
|
f_detail = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_Notify_detail, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
CARD16(event_sequencenumber);
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_Notify_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_cancel = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_Notify_cancel, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xprintAttributNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_detail;
|
|
int f_context;
|
|
f_detail = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_AttributNotify_detail, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
CARD16(event_sequencenumber);
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xprint_AttributNotify_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static const value_string xprint_extension_minor[] = {
|
|
{ 0, "PrintQueryVersion" },
|
|
{ 1, "PrintGetPrinterList" },
|
|
{ 2, "CreateContext" },
|
|
{ 3, "PrintSetContext" },
|
|
{ 4, "PrintGetContext" },
|
|
{ 5, "PrintDestroyContext" },
|
|
{ 6, "PrintGetScreenOfContext" },
|
|
{ 7, "PrintStartJob" },
|
|
{ 8, "PrintEndJob" },
|
|
{ 9, "PrintStartDoc" },
|
|
{ 10, "PrintEndDoc" },
|
|
{ 11, "PrintPutDocumentData" },
|
|
{ 12, "PrintGetDocumentData" },
|
|
{ 13, "PrintStartPage" },
|
|
{ 14, "PrintEndPage" },
|
|
{ 15, "PrintSelectInput" },
|
|
{ 16, "PrintInputSelected" },
|
|
{ 17, "PrintGetAttributes" },
|
|
{ 18, "PrintSetAttributes" },
|
|
{ 19, "PrintGetOneAttributes" },
|
|
{ 20, "PrintRehashPrinterList" },
|
|
{ 21, "PrintGetPageDimensions" },
|
|
{ 22, "PrintQueryScreens" },
|
|
{ 23, "PrintSetImageResolution" },
|
|
{ 24, "PrintGetImageResolution" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info xprint_events[] = {
|
|
{ "xprint-Notify", xprintNotify },
|
|
{ "xprint-AttributNotify", xprintAttributNotify },
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info xprint_replies[] = {
|
|
{ 0, xprintPrintQueryVersion_Reply },
|
|
{ 1, xprintPrintGetPrinterList_Reply },
|
|
{ 4, xprintPrintGetContext_Reply },
|
|
{ 6, xprintPrintGetScreenOfContext_Reply },
|
|
{ 12, xprintPrintGetDocumentData_Reply },
|
|
{ 16, xprintPrintInputSelected_Reply },
|
|
{ 17, xprintPrintGetAttributes_Reply },
|
|
{ 19, xprintPrintGetOneAttributes_Reply },
|
|
{ 21, xprintPrintGetPageDimensions_Reply },
|
|
{ 22, xprintPrintQueryScreens_Reply },
|
|
{ 23, xprintPrintSetImageResolution_Reply },
|
|
{ 24, xprintPrintGetImageResolution_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_xprint(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(xprint_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, xprint_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
xprintPrintQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
xprintPrintGetPrinterList(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
xprintCreateContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
xprintPrintSetContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
xprintPrintGetContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
xprintPrintDestroyContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
xprintPrintGetScreenOfContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
xprintPrintStartJob(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
xprintPrintEndJob(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 9:
|
|
xprintPrintStartDoc(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 10:
|
|
xprintPrintEndDoc(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 11:
|
|
xprintPrintPutDocumentData(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 12:
|
|
xprintPrintGetDocumentData(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 13:
|
|
xprintPrintStartPage(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 14:
|
|
xprintPrintEndPage(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 15:
|
|
xprintPrintSelectInput(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 16:
|
|
xprintPrintInputSelected(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 17:
|
|
xprintPrintGetAttributes(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 18:
|
|
xprintPrintSetAttributes(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 19:
|
|
xprintPrintGetOneAttributes(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 20:
|
|
xprintPrintRehashPrinterList(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 21:
|
|
xprintPrintGetPageDimensions(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 22:
|
|
xprintPrintQueryScreens(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 23:
|
|
xprintPrintSetImageResolution(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 24:
|
|
xprintPrintGetImageResolution(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_xprint(void)
|
|
{
|
|
set_handler("XpExtension", dispatch_xprint, xprint_errors, xprint_events, xprint_replies);
|
|
}
|
|
|
|
static void xselinuxQueryVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_client_major;
|
|
int f_client_minor;
|
|
f_client_major = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_client_major, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_client_minor = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_client_minor, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
static void xselinuxQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_server_major;
|
|
int f_server_minor;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_server_major = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_reply_server_major, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_server_minor = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_QueryVersion_reply_server_minor, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xselinuxSetDeviceCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_len;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_SetDeviceCreateContext_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetDeviceCreateContext_context, f_context_len, little_endian);
|
|
length -= f_context_len * 1;
|
|
}
|
|
|
|
static void xselinuxGetDeviceCreateContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xselinuxGetDeviceCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceCreateContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-GetDeviceCreateContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetDeviceCreateContext_reply_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetDeviceCreateContext_reply_context, f_context_len, little_endian);
|
|
}
|
|
|
|
static void xselinuxSetDeviceContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device;
|
|
int f_context_len;
|
|
f_device = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_SetDeviceContext_device, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_SetDeviceContext_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetDeviceContext_context, f_context_len, little_endian);
|
|
length -= f_context_len * 1;
|
|
}
|
|
|
|
static void xselinuxGetDeviceContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_device;
|
|
f_device = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetDeviceContext_device, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xselinuxGetDeviceContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetDeviceContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-GetDeviceContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetDeviceContext_reply_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetDeviceContext_reply_context, f_context_len, little_endian);
|
|
}
|
|
|
|
static void xselinuxSetWindowCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_len;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_SetWindowCreateContext_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetWindowCreateContext_context, f_context_len, little_endian);
|
|
length -= f_context_len * 1;
|
|
}
|
|
|
|
static void xselinuxGetWindowCreateContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xselinuxGetWindowCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetWindowCreateContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-GetWindowCreateContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetWindowCreateContext_reply_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetWindowCreateContext_reply_context, f_context_len, little_endian);
|
|
}
|
|
|
|
static void xselinuxGetWindowContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetWindowContext_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xselinuxGetWindowContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetWindowContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-GetWindowContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetWindowContext_reply_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetWindowContext_reply_context, f_context_len, little_endian);
|
|
}
|
|
|
|
static int struct_size_ListItem(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_object_context_len;
|
|
int f_data_context_len;
|
|
f_object_context_len = VALUE32(tvb, *offsetp + size + 4);
|
|
f_data_context_len = VALUE32(tvb, *offsetp + size + 8);
|
|
size += f_object_context_len * 1;
|
|
size += f_data_context_len * 1;
|
|
return size + 12;
|
|
}
|
|
|
|
static void struct_ListItem(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_name;
|
|
int f_object_context_len;
|
|
int f_data_context_len;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_ListItem, tvb, *offsetp, struct_size_ListItem(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_name = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ListItem_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_object_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ListItem_object_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_data_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ListItem_data_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_ListItem_object_context, f_object_context_len, little_endian);
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_ListItem_data_context, f_data_context_len, little_endian);
|
|
}
|
|
}
|
|
|
|
static void xselinuxSetPropertyCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_len;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_SetPropertyCreateContext_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetPropertyCreateContext_context, f_context_len, little_endian);
|
|
length -= f_context_len * 1;
|
|
}
|
|
|
|
static void xselinuxGetPropertyCreateContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xselinuxGetPropertyCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyCreateContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-GetPropertyCreateContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetPropertyCreateContext_reply_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyCreateContext_reply_context, f_context_len, little_endian);
|
|
}
|
|
|
|
static void xselinuxSetPropertyUseContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_len;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_SetPropertyUseContext_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetPropertyUseContext_context, f_context_len, little_endian);
|
|
length -= f_context_len * 1;
|
|
}
|
|
|
|
static void xselinuxGetPropertyUseContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xselinuxGetPropertyUseContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyUseContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-GetPropertyUseContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetPropertyUseContext_reply_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyUseContext_reply_context, f_context_len, little_endian);
|
|
}
|
|
|
|
static void xselinuxGetPropertyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_property;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetPropertyContext_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_property = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetPropertyContext_property, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xselinuxGetPropertyContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-GetPropertyContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetPropertyContext_reply_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyContext_reply_context, f_context_len, little_endian);
|
|
}
|
|
|
|
static void xselinuxGetPropertyDataContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_property;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetPropertyDataContext_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_property = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetPropertyDataContext_property, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xselinuxGetPropertyDataContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPropertyDataContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-GetPropertyDataContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetPropertyDataContext_reply_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetPropertyDataContext_reply_context, f_context_len, little_endian);
|
|
}
|
|
|
|
static void xselinuxListProperties(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_ListProperties_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xselinuxListProperties_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_properties_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-ListProperties");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-ListProperties)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_properties_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_ListProperties_reply_properties_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
struct_ListItem(tvb, offsetp, t, little_endian, f_properties_len);
|
|
}
|
|
|
|
static void xselinuxSetSelectionCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_len;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_SetSelectionCreateContext_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetSelectionCreateContext_context, f_context_len, little_endian);
|
|
length -= f_context_len * 1;
|
|
}
|
|
|
|
static void xselinuxGetSelectionCreateContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xselinuxGetSelectionCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionCreateContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-GetSelectionCreateContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetSelectionCreateContext_reply_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionCreateContext_reply_context, f_context_len, little_endian);
|
|
}
|
|
|
|
static void xselinuxSetSelectionUseContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_len;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_SetSelectionUseContext_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_SetSelectionUseContext_context, f_context_len, little_endian);
|
|
length -= f_context_len * 1;
|
|
}
|
|
|
|
static void xselinuxGetSelectionUseContext(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xselinuxGetSelectionUseContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionUseContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-GetSelectionUseContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetSelectionUseContext_reply_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionUseContext_reply_context, f_context_len, little_endian);
|
|
}
|
|
|
|
static void xselinuxGetSelectionContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_selection;
|
|
f_selection = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetSelectionContext_selection, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xselinuxGetSelectionContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-GetSelectionContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetSelectionContext_reply_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionContext_reply_context, f_context_len, little_endian);
|
|
}
|
|
|
|
static void xselinuxGetSelectionDataContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_selection;
|
|
f_selection = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetSelectionDataContext_selection, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xselinuxGetSelectionDataContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetSelectionDataContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-GetSelectionDataContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetSelectionDataContext_reply_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetSelectionDataContext_reply_context, f_context_len, little_endian);
|
|
}
|
|
|
|
static void xselinuxListSelections(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xselinuxListSelections_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_selections_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSelections");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-ListSelections)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_selections_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_ListSelections_reply_selections_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
struct_ListItem(tvb, offsetp, t, little_endian, f_selections_len);
|
|
}
|
|
|
|
static void xselinuxGetClientContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_resource;
|
|
f_resource = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetClientContext_resource, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xselinuxGetClientContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_context_len;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetClientContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xselinux-GetClientContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_len = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xselinux_GetClientContext_reply_context_len, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfByte(tvb, offsetp, t, hf_x11_xselinux_GetClientContext_reply_context, f_context_len, little_endian);
|
|
}
|
|
static const value_string xselinux_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "SetDeviceCreateContext" },
|
|
{ 2, "GetDeviceCreateContext" },
|
|
{ 3, "SetDeviceContext" },
|
|
{ 4, "GetDeviceContext" },
|
|
{ 5, "SetWindowCreateContext" },
|
|
{ 6, "GetWindowCreateContext" },
|
|
{ 7, "GetWindowContext" },
|
|
{ 8, "SetPropertyCreateContext" },
|
|
{ 9, "GetPropertyCreateContext" },
|
|
{ 10, "SetPropertyUseContext" },
|
|
{ 11, "GetPropertyUseContext" },
|
|
{ 12, "GetPropertyContext" },
|
|
{ 13, "GetPropertyDataContext" },
|
|
{ 14, "ListProperties" },
|
|
{ 15, "SetSelectionCreateContext" },
|
|
{ 16, "GetSelectionCreateContext" },
|
|
{ 17, "SetSelectionUseContext" },
|
|
{ 18, "GetSelectionUseContext" },
|
|
{ 19, "GetSelectionContext" },
|
|
{ 20, "GetSelectionDataContext" },
|
|
{ 21, "ListSelections" },
|
|
{ 22, "GetClientContext" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info xselinux_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info xselinux_replies[] = {
|
|
{ 0, xselinuxQueryVersion_Reply },
|
|
{ 2, xselinuxGetDeviceCreateContext_Reply },
|
|
{ 4, xselinuxGetDeviceContext_Reply },
|
|
{ 6, xselinuxGetWindowCreateContext_Reply },
|
|
{ 7, xselinuxGetWindowContext_Reply },
|
|
{ 9, xselinuxGetPropertyCreateContext_Reply },
|
|
{ 11, xselinuxGetPropertyUseContext_Reply },
|
|
{ 12, xselinuxGetPropertyContext_Reply },
|
|
{ 13, xselinuxGetPropertyDataContext_Reply },
|
|
{ 14, xselinuxListProperties_Reply },
|
|
{ 16, xselinuxGetSelectionCreateContext_Reply },
|
|
{ 18, xselinuxGetSelectionUseContext_Reply },
|
|
{ 19, xselinuxGetSelectionContext_Reply },
|
|
{ 20, xselinuxGetSelectionDataContext_Reply },
|
|
{ 21, xselinuxListSelections_Reply },
|
|
{ 22, xselinuxGetClientContext_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_xselinux(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(xselinux_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, xselinux_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
xselinuxQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
xselinuxSetDeviceCreateContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
xselinuxGetDeviceCreateContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
xselinuxSetDeviceContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
xselinuxGetDeviceContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
xselinuxSetWindowCreateContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
xselinuxGetWindowCreateContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
xselinuxGetWindowContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
xselinuxSetPropertyCreateContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 9:
|
|
xselinuxGetPropertyCreateContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 10:
|
|
xselinuxSetPropertyUseContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 11:
|
|
xselinuxGetPropertyUseContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 12:
|
|
xselinuxGetPropertyContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 13:
|
|
xselinuxGetPropertyDataContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 14:
|
|
xselinuxListProperties(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 15:
|
|
xselinuxSetSelectionCreateContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 16:
|
|
xselinuxGetSelectionCreateContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 17:
|
|
xselinuxSetSelectionUseContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 18:
|
|
xselinuxGetSelectionUseContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 19:
|
|
xselinuxGetSelectionContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 20:
|
|
xselinuxGetSelectionDataContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 21:
|
|
xselinuxListSelections(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 22:
|
|
xselinuxGetClientContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_xselinux(void)
|
|
{
|
|
set_handler("SELinux", dispatch_xselinux, xselinux_errors, xselinux_events, xselinux_replies);
|
|
}
|
|
|
|
static void xtestGetVersion(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
f_major_version = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_GetVersion_major_version, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
f_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_GetVersion_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
static void xtestGetVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major_version;
|
|
int f_minor_version;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetVersion");
|
|
|
|
REPLY(reply);
|
|
f_major_version = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_GetVersion_reply_major_version, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xtest-GetVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor_version = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_GetVersion_reply_minor_version, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xtestCompareCursor(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
int f_cursor;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_CompareCursor_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_cursor = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_CompareCursor_cursor, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xtestCompareCursor_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_same;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-CompareCursor");
|
|
|
|
REPLY(reply);
|
|
f_same = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_CompareCursor_reply_same, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xtest-CompareCursor)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xtestFakeInput(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_type;
|
|
int f_detail;
|
|
int f_time;
|
|
int f_root;
|
|
int f_rootX;
|
|
int f_rootY;
|
|
int f_deviceid;
|
|
f_type = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_FakeInput_type, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_detail = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_FakeInput_detail, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_FakeInput_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_root = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_FakeInput_root, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(8);
|
|
f_rootX = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_FakeInput_rootX, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_rootY = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_FakeInput_rootY, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(7);
|
|
f_deviceid = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_FakeInput_deviceid, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
|
|
static void xtestGrabControl(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_impervious;
|
|
f_impervious = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xtest_GrabControl_impervious, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
static const value_string xtest_extension_minor[] = {
|
|
{ 0, "GetVersion" },
|
|
{ 1, "CompareCursor" },
|
|
{ 2, "FakeInput" },
|
|
{ 3, "GrabControl" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info xtest_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info xtest_replies[] = {
|
|
{ 0, xtestGetVersion_Reply },
|
|
{ 1, xtestCompareCursor_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_xtest(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(xtest_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, xtest_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
xtestGetVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
xtestCompareCursor(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
xtestFakeInput(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
xtestGrabControl(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_xtest(void)
|
|
{
|
|
set_handler("XTEST", dispatch_xtest, xtest_errors, xtest_events, xtest_replies);
|
|
}
|
|
|
|
static void struct_Rational(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_numerator;
|
|
int f_denominator;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Rational, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_numerator = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Rational_numerator, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_denominator = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Rational_denominator, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static void struct_Format(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_visual;
|
|
int f_depth;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_Format, tvb, *offsetp, 8, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_visual = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Format_visual, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_depth = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_Format_depth, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
}
|
|
|
|
static int struct_size_AdaptorInfo(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_name_size;
|
|
int f_num_formats;
|
|
f_name_size = VALUE16(tvb, *offsetp + size + 4);
|
|
f_num_formats = VALUE16(tvb, *offsetp + size + 8);
|
|
size += f_name_size * 1;
|
|
size += f_num_formats * 8;
|
|
return size + 12;
|
|
}
|
|
|
|
static void struct_AdaptorInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_base_id;
|
|
int f_name_size;
|
|
int f_num_ports;
|
|
int f_num_formats;
|
|
int f_type;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_AdaptorInfo, tvb, *offsetp, struct_size_AdaptorInfo(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_base_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_AdaptorInfo_base_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_name_size = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_AdaptorInfo_name_size, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_ports = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_AdaptorInfo_num_ports, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_formats = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_AdaptorInfo_num_formats, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_type = VALUE8(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_AdaptorInfo_type, tvb, *offsetp, 1, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_AdaptorInfo_type_mask_InputMask, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_AdaptorInfo_type_mask_OutputMask, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_AdaptorInfo_type_mask_VideoMask, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_AdaptorInfo_type_mask_StillMask, tvb, *offsetp, 1, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_AdaptorInfo_type_mask_ImageMask, tvb, *offsetp, 1, little_endian);
|
|
}
|
|
*offsetp += 1;
|
|
UNUSED(1);
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_AdaptorInfo_name, f_name_size, little_endian);
|
|
struct_Format(tvb, offsetp, t, little_endian, f_num_formats);
|
|
}
|
|
}
|
|
|
|
static int struct_size_EncodingInfo(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_name_size;
|
|
f_name_size = VALUE16(tvb, *offsetp + size + 4);
|
|
size += f_name_size * 1;
|
|
return size + 20;
|
|
}
|
|
|
|
static void struct_EncodingInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_encoding;
|
|
int f_name_size;
|
|
int f_width;
|
|
int f_height;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_EncodingInfo, tvb, *offsetp, struct_size_EncodingInfo(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_encoding = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_EncodingInfo_encoding, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_name_size = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_EncodingInfo_name_size, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_EncodingInfo_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_EncodingInfo_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(2);
|
|
struct_Rational(tvb, offsetp, t, little_endian, 1);
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_EncodingInfo_name, f_name_size, little_endian);
|
|
}
|
|
}
|
|
|
|
static int struct_size_AttributeInfo(tvbuff_t *tvb, int *offsetp, int little_endian _U_)
|
|
{
|
|
int size = 0;
|
|
int f_size;
|
|
f_size = VALUE32(tvb, *offsetp + size + 12);
|
|
size += f_size * 1;
|
|
return size + 16;
|
|
}
|
|
|
|
static void struct_AttributeInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_flags;
|
|
int f_min;
|
|
int f_max;
|
|
int f_size;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_AttributeInfo, tvb, *offsetp, struct_size_AttributeInfo(tvb, offsetp, little_endian), little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_flags = VALUE32(tvb, *offsetp);
|
|
{
|
|
proto_item *ti = proto_tree_add_item(t, hf_x11_struct_AttributeInfo_flags, tvb, *offsetp, 4, little_endian);
|
|
proto_tree *bitmask_tree = proto_item_add_subtree(ti, ett_x11_rectangle);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_AttributeInfo_flags_mask_Gettable, tvb, *offsetp, 4, little_endian);
|
|
proto_tree_add_item(bitmask_tree, hf_x11_struct_AttributeInfo_flags_mask_Settable, tvb, *offsetp, 4, little_endian);
|
|
}
|
|
*offsetp += 4;
|
|
f_min = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_AttributeInfo_min, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_max = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_AttributeInfo_max, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_size = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_AttributeInfo_size, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_AttributeInfo_name, f_size, little_endian);
|
|
}
|
|
}
|
|
|
|
static void struct_ImageFormatInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_id;
|
|
int f_type;
|
|
int f_byte_order;
|
|
int f_bpp;
|
|
int f_num_planes;
|
|
int f_depth;
|
|
int f_red_mask;
|
|
int f_green_mask;
|
|
int f_blue_mask;
|
|
int f_format;
|
|
int f_y_sample_bits;
|
|
int f_u_sample_bits;
|
|
int f_v_sample_bits;
|
|
int f_vhorz_y_period;
|
|
int f_vhorz_u_period;
|
|
int f_vhorz_v_period;
|
|
int f_vvert_y_period;
|
|
int f_vvert_u_period;
|
|
int f_vvert_v_period;
|
|
int f_vscanline_order;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_ImageFormatInfo, tvb, *offsetp, 82, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_type = field8(tvb, offsetp, t, hf_x11_struct_ImageFormatInfo_type, little_endian);
|
|
f_byte_order = field8(tvb, offsetp, t, hf_x11_struct_ImageFormatInfo_byte_order, little_endian);
|
|
UNUSED(2);
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_ImageFormatInfo_guid, 16, little_endian);
|
|
f_bpp = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_bpp, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_num_planes = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_num_planes, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(2);
|
|
f_depth = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_depth, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
f_red_mask = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_red_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_green_mask = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_green_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_blue_mask = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_blue_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_format = field8(tvb, offsetp, t, hf_x11_struct_ImageFormatInfo_format, little_endian);
|
|
UNUSED(3);
|
|
f_y_sample_bits = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_y_sample_bits, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_u_sample_bits = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_u_sample_bits, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_v_sample_bits = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_v_sample_bits, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_vhorz_y_period = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_vhorz_y_period, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_vhorz_u_period = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_vhorz_u_period, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_vhorz_v_period = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_vhorz_v_period, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_vvert_y_period = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_vvert_y_period, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_vvert_u_period = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_vvert_u_period, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_vvert_v_period = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_vvert_v_period, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
listOfByte(tvb, offsetp, t, hf_x11_struct_ImageFormatInfo_vcomp_order, 32, little_endian);
|
|
f_vscanline_order = field8(tvb, offsetp, t, hf_x11_struct_ImageFormatInfo_vscanline_order, little_endian);
|
|
UNUSED(11);
|
|
}
|
|
}
|
|
|
|
static void xvVideoNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_reason;
|
|
int f_time;
|
|
int f_drawable;
|
|
int f_port;
|
|
f_reason = field8(tvb, offsetp, t, hf_x11_xv_VideoNotify_reason, little_endian);
|
|
CARD16(event_sequencenumber);
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_VideoNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_VideoNotify_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_VideoNotify_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xvPortNotify(tvbuff_t *tvb, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_time;
|
|
int f_port;
|
|
int f_attribute;
|
|
int f_value;
|
|
UNUSED(1);
|
|
CARD16(event_sequencenumber);
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PortNotify_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PortNotify_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_attribute = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PortNotify_attribute, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_value = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PortNotify_value, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xvQueryExtension(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xvQueryExtension_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major;
|
|
int f_minor;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryExtension");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xv-QueryExtension)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryExtension_reply_major, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_minor = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryExtension_reply_minor, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xvQueryAdaptors(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_window;
|
|
f_window = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryAdaptors_window, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xvQueryAdaptors_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_adaptors;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryAdaptors");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xv-QueryAdaptors)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_adaptors = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryAdaptors_reply_num_adaptors, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(22);
|
|
struct_AdaptorInfo(tvb, offsetp, t, little_endian, f_num_adaptors);
|
|
}
|
|
|
|
static void xvQueryEncodings(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryEncodings_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xvQueryEncodings_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_encodings;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryEncodings");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xv-QueryEncodings)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_encodings = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryEncodings_reply_num_encodings, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(22);
|
|
struct_EncodingInfo(tvb, offsetp, t, little_endian, f_num_encodings);
|
|
}
|
|
|
|
static void xvGrabPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_time;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GrabPort_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_time = field32(tvb, offsetp, t, hf_x11_xv_GrabPort_time, little_endian);
|
|
}
|
|
static void xvGrabPort_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_result;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GrabPort");
|
|
|
|
REPLY(reply);
|
|
f_result = field8(tvb, offsetp, t, hf_x11_xv_GrabPort_reply_result, little_endian);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xv-GrabPort)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xvUngrabPort(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_time;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_UngrabPort_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_time = field32(tvb, offsetp, t, hf_x11_xv_UngrabPort_time, little_endian);
|
|
}
|
|
|
|
static void xvPutVideo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_drawable;
|
|
int f_gc;
|
|
int f_vid_x;
|
|
int f_vid_y;
|
|
int f_vid_w;
|
|
int f_vid_h;
|
|
int f_drw_x;
|
|
int f_drw_y;
|
|
int f_drw_w;
|
|
int f_drw_h;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutVideo_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutVideo_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_gc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutVideo_gc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_vid_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vid_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vid_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vid_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutVideo_vid_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutVideo_drw_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xvPutStill(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_drawable;
|
|
int f_gc;
|
|
int f_vid_x;
|
|
int f_vid_y;
|
|
int f_vid_w;
|
|
int f_vid_h;
|
|
int f_drw_x;
|
|
int f_drw_y;
|
|
int f_drw_w;
|
|
int f_drw_h;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutStill_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutStill_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_gc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutStill_gc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_vid_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutStill_vid_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vid_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutStill_vid_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vid_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutStill_vid_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vid_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutStill_vid_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutStill_drw_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutStill_drw_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutStill_drw_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutStill_drw_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xvGetVideo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_drawable;
|
|
int f_gc;
|
|
int f_vid_x;
|
|
int f_vid_y;
|
|
int f_vid_w;
|
|
int f_vid_h;
|
|
int f_drw_x;
|
|
int f_drw_y;
|
|
int f_drw_w;
|
|
int f_drw_h;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetVideo_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetVideo_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_gc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetVideo_gc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_vid_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vid_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vid_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vid_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetVideo_vid_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetVideo_drw_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xvGetStill(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_drawable;
|
|
int f_gc;
|
|
int f_vid_x;
|
|
int f_vid_y;
|
|
int f_vid_w;
|
|
int f_vid_h;
|
|
int f_drw_x;
|
|
int f_drw_y;
|
|
int f_drw_w;
|
|
int f_drw_h;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetStill_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetStill_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_gc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetStill_gc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_vid_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetStill_vid_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vid_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetStill_vid_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vid_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetStill_vid_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vid_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetStill_vid_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetStill_drw_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetStill_drw_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetStill_drw_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetStill_drw_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xvStopVideo(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_drawable;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_StopVideo_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_StopVideo_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xvSelectVideoNotify(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_drawable;
|
|
int f_onoff;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_SelectVideoNotify_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_onoff = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_SelectVideoNotify_onoff, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void xvSelectPortNotify(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_onoff;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_SelectPortNotify_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_onoff = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_SelectPortNotify_onoff, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
|
|
static void xvQueryBestSize(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_vid_w;
|
|
int f_vid_h;
|
|
int f_drw_w;
|
|
int f_drw_h;
|
|
int f_motion;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryBestSize_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_vid_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryBestSize_vid_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_vid_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryBestSize_vid_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryBestSize_drw_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryBestSize_drw_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_motion = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryBestSize_motion, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
static void xvQueryBestSize_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_actual_width;
|
|
int f_actual_height;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryBestSize");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xv-QueryBestSize)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_actual_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryBestSize_reply_actual_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_actual_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryBestSize_reply_actual_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
static void xvSetPortAttribute(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_attribute;
|
|
int f_value;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_SetPortAttribute_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_attribute = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_SetPortAttribute_attribute, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_value = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_SetPortAttribute_value, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xvGetPortAttribute(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_attribute;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetPortAttribute_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_attribute = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetPortAttribute_attribute, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xvGetPortAttribute_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_value;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-GetPortAttribute");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xv-GetPortAttribute)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_value = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GetPortAttribute_reply_value, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xvQueryPortAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryPortAttributes_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xvQueryPortAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_attributes;
|
|
int f_text_size;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryPortAttributes");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xv-QueryPortAttributes)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_attributes = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryPortAttributes_reply_num_attributes, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_text_size = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryPortAttributes_reply_text_size, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(16);
|
|
struct_AttributeInfo(tvb, offsetp, t, little_endian, f_num_attributes);
|
|
}
|
|
|
|
static void xvListImageFormats(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ListImageFormats_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xvListImageFormats_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_formats;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-ListImageFormats");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xv-ListImageFormats)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_formats = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ListImageFormats_reply_num_formats, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
struct_ImageFormatInfo(tvb, offsetp, t, little_endian, f_num_formats);
|
|
}
|
|
|
|
static void xvQueryImageAttributes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_id;
|
|
int f_width;
|
|
int f_height;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
static void xvQueryImageAttributes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num_planes;
|
|
int f_data_size;
|
|
int f_width;
|
|
int f_height;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryImageAttributes");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xv-QueryImageAttributes)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num_planes = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_num_planes, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_data_size = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_data_size, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_QueryImageAttributes_reply_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
UNUSED(12);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xv_QueryImageAttributes_reply_pitches, hf_x11_xv_QueryImageAttributes_reply_pitches_item, f_num_planes, little_endian);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xv_QueryImageAttributes_reply_offsets, hf_x11_xv_QueryImageAttributes_reply_offsets_item, f_num_planes, little_endian);
|
|
}
|
|
|
|
static void xvPutImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_drawable;
|
|
int f_gc;
|
|
int f_id;
|
|
int f_src_x;
|
|
int f_src_y;
|
|
int f_src_w;
|
|
int f_src_h;
|
|
int f_drw_x;
|
|
int f_drw_y;
|
|
int f_drw_w;
|
|
int f_drw_h;
|
|
int f_width;
|
|
int f_height;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_gc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_gc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_src_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_src_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_src_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_src_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_src_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_drw_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_drw_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_drw_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_drw_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_PutImage_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xv_PutImage_data, (length - 40) / 1, little_endian);
|
|
}
|
|
|
|
static void xvShmPutImage(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port;
|
|
int f_drawable;
|
|
int f_gc;
|
|
int f_shmseg;
|
|
int f_id;
|
|
int f_offset;
|
|
int f_src_x;
|
|
int f_src_y;
|
|
int f_src_w;
|
|
int f_src_h;
|
|
int f_drw_x;
|
|
int f_drw_y;
|
|
int f_drw_w;
|
|
int f_drw_h;
|
|
int f_width;
|
|
int f_height;
|
|
int f_send_event;
|
|
f_port = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_port, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drawable = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drawable, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_gc = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_gc, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_shmseg = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_shmseg, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_offset = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_offset, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_src_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_src_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_src_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_x = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_x, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_y = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_y, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_w = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_w, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_drw_h = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_drw_h, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_send_event = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_ShmPutImage_send_event, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
UNUSED(3);
|
|
}
|
|
static const value_string xv_extension_minor[] = {
|
|
{ 0, "QueryExtension" },
|
|
{ 1, "QueryAdaptors" },
|
|
{ 2, "QueryEncodings" },
|
|
{ 3, "GrabPort" },
|
|
{ 4, "UngrabPort" },
|
|
{ 5, "PutVideo" },
|
|
{ 6, "PutStill" },
|
|
{ 7, "GetVideo" },
|
|
{ 8, "GetStill" },
|
|
{ 9, "StopVideo" },
|
|
{ 10, "SelectVideoNotify" },
|
|
{ 11, "SelectPortNotify" },
|
|
{ 12, "QueryBestSize" },
|
|
{ 13, "SetPortAttribute" },
|
|
{ 14, "GetPortAttribute" },
|
|
{ 15, "QueryPortAttributes" },
|
|
{ 16, "ListImageFormats" },
|
|
{ 17, "QueryImageAttributes" },
|
|
{ 18, "PutImage" },
|
|
{ 19, "ShmPutImage" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info xv_events[] = {
|
|
{ "xv-VideoNotify", xvVideoNotify },
|
|
{ "xv-PortNotify", xvPortNotify },
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info xv_replies[] = {
|
|
{ 0, xvQueryExtension_Reply },
|
|
{ 1, xvQueryAdaptors_Reply },
|
|
{ 2, xvQueryEncodings_Reply },
|
|
{ 3, xvGrabPort_Reply },
|
|
{ 12, xvQueryBestSize_Reply },
|
|
{ 14, xvGetPortAttribute_Reply },
|
|
{ 15, xvQueryPortAttributes_Reply },
|
|
{ 16, xvListImageFormats_Reply },
|
|
{ 17, xvQueryImageAttributes_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_xv(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(xv_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, xv_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
xvQueryExtension(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
xvQueryAdaptors(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
xvQueryEncodings(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
xvGrabPort(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
xvUngrabPort(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
xvPutVideo(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
xvPutStill(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
xvGetVideo(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
xvGetStill(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 9:
|
|
xvStopVideo(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 10:
|
|
xvSelectVideoNotify(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 11:
|
|
xvSelectPortNotify(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 12:
|
|
xvQueryBestSize(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 13:
|
|
xvSetPortAttribute(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 14:
|
|
xvGetPortAttribute(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 15:
|
|
xvQueryPortAttributes(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 16:
|
|
xvListImageFormats(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 17:
|
|
xvQueryImageAttributes(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 18:
|
|
xvPutImage(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 19:
|
|
xvShmPutImage(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_xv(void)
|
|
{
|
|
set_handler("XVideo", dispatch_xv, xv_errors, xv_events, xv_replies);
|
|
}
|
|
|
|
static void struct_SurfaceInfo(tvbuff_t *tvb, int *offsetp, proto_tree *root, int little_endian, int count)
|
|
{
|
|
int i;
|
|
for (i = 0; i < count; i++) {
|
|
proto_item *item;
|
|
proto_tree *t;
|
|
int f_id;
|
|
int f_chroma_format;
|
|
int f_pad0;
|
|
int f_max_width;
|
|
int f_max_height;
|
|
int f_subpicture_max_width;
|
|
int f_subpicture_max_height;
|
|
int f_mc_type;
|
|
int f_flags;
|
|
|
|
item = proto_tree_add_item(root, hf_x11_struct_SurfaceInfo, tvb, *offsetp, 24, little_endian);
|
|
t = proto_item_add_subtree(item, ett_x11_rectangle);
|
|
f_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SurfaceInfo_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_chroma_format = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SurfaceInfo_chroma_format, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_pad0 = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SurfaceInfo_pad0, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_max_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SurfaceInfo_max_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_max_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SurfaceInfo_max_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_subpicture_max_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SurfaceInfo_subpicture_max_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_subpicture_max_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SurfaceInfo_subpicture_max_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_mc_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SurfaceInfo_mc_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_flags = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_SurfaceInfo_flags, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
static void xvmcQueryVersion(tvbuff_t *tvb _U_, packet_info *pinfo _U_, int *offsetp _U_, proto_tree *t _U_, int little_endian _U_, int length _U_)
|
|
{
|
|
}
|
|
static void xvmcQueryVersion_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_major;
|
|
int f_minor;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-QueryVersion");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xvmc-QueryVersion)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_major = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_QueryVersion_reply_major, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_minor = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_QueryVersion_reply_minor, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xvmcListSurfaceTypes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port_id;
|
|
f_port_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_ListSurfaceTypes_port_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xvmcListSurfaceTypes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSurfaceTypes");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xvmc-ListSurfaceTypes)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_ListSurfaceTypes_reply_num, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
struct_SurfaceInfo(tvb, offsetp, t, little_endian, f_num);
|
|
}
|
|
|
|
static void xvmcCreateContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_id;
|
|
int f_port_id;
|
|
int f_surface_id;
|
|
int f_width;
|
|
int f_height;
|
|
int f_flags;
|
|
f_context_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateContext_context_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_port_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateContext_port_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_surface_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateContext_surface_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateContext_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateContext_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_flags = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateContext_flags, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xvmcCreateContext_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_width_actual;
|
|
int f_height_actual;
|
|
int f_flags_return;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateContext");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xvmc-CreateContext)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width_actual = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateContext_reply_width_actual, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height_actual = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateContext_reply_height_actual, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_flags_return = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateContext_reply_flags_return, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xvmc_CreateContext_reply_priv_data, hf_x11_xvmc_CreateContext_reply_priv_data_item, f_length, little_endian);
|
|
}
|
|
|
|
static void xvmcDestroyContext(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_context_id;
|
|
f_context_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_DestroyContext_context_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xvmcCreateSurface(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_surface_id;
|
|
int f_context_id;
|
|
f_surface_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateSurface_surface_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateSurface_context_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xvmcCreateSurface_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateSurface");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xvmc-CreateSurface)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(24);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xvmc_CreateSurface_reply_priv_data, hf_x11_xvmc_CreateSurface_reply_priv_data_item, f_length, little_endian);
|
|
}
|
|
|
|
static void xvmcDestroySurface(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_surface_id;
|
|
f_surface_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_DestroySurface_surface_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xvmcCreateSubpicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_subpicture_id;
|
|
int f_context;
|
|
int f_xvimage_id;
|
|
int f_width;
|
|
int f_height;
|
|
f_subpicture_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_subpicture_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_context = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_context, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_xvimage_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_xvimage_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_width, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_height, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
static void xvmcCreateSubpicture_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_width_actual;
|
|
int f_height_actual;
|
|
int f_num_palette_entries;
|
|
int f_entry_bytes;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-CreateSubpicture");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xvmc-CreateSubpicture)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_width_actual = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_width_actual, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_height_actual = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_height_actual, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_num_palette_entries = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_num_palette_entries, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_entry_bytes = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_CreateSubpicture_reply_entry_bytes, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
listOfByte(tvb, offsetp, t, hf_x11_xvmc_CreateSubpicture_reply_component_order, 4, little_endian);
|
|
UNUSED(12);
|
|
listOfCard32(tvb, offsetp, t, hf_x11_xvmc_CreateSubpicture_reply_priv_data, hf_x11_xvmc_CreateSubpicture_reply_priv_data_item, f_length, little_endian);
|
|
}
|
|
|
|
static void xvmcDestroySubpicture(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_subpicture_id;
|
|
f_subpicture_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_DestroySubpicture_subpicture_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
static void xvmcListSubpictureTypes(tvbuff_t *tvb, packet_info *pinfo _U_, int *offsetp, proto_tree *t, int little_endian, int length _U_)
|
|
{
|
|
int f_port_id;
|
|
int f_surface_id;
|
|
f_port_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_ListSubpictureTypes_port_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_surface_id = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_ListSubpictureTypes_surface_id, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
static void xvmcListSubpictureTypes_Reply(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int f_length, length, sequence_number;
|
|
int f_num;
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-ListSubpictureTypes");
|
|
|
|
REPLY(reply);
|
|
UNUSED(1);
|
|
sequence_number = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_uint_format(t, hf_x11_reply_sequencenumber, tvb, *offsetp, 2, sequence_number,
|
|
"sequencenumber: %d (xvmc-ListSubpictureTypes)", sequence_number);
|
|
*offsetp += 2;
|
|
f_length = VALUE32(tvb, *offsetp);
|
|
length = f_length * 4 + 32;
|
|
proto_tree_add_item(t, hf_x11_replylength, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_num = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xvmc_ListSubpictureTypes_reply_num, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
UNUSED(20);
|
|
struct_ImageFormatInfo(tvb, offsetp, t, little_endian, f_num);
|
|
}
|
|
static const value_string xvmc_extension_minor[] = {
|
|
{ 0, "QueryVersion" },
|
|
{ 1, "ListSurfaceTypes" },
|
|
{ 2, "CreateContext" },
|
|
{ 3, "DestroyContext" },
|
|
{ 4, "CreateSurface" },
|
|
{ 5, "DestroySurface" },
|
|
{ 6, "CreateSubpicture" },
|
|
{ 7, "DestroySubpicture" },
|
|
{ 8, "ListSubpictureTypes" },
|
|
{ 0, NULL }
|
|
};
|
|
const x11_event_info xvmc_events[] = {
|
|
{ NULL, NULL }
|
|
};
|
|
static x11_reply_info xvmc_replies[] = {
|
|
{ 0, xvmcQueryVersion_Reply },
|
|
{ 1, xvmcListSurfaceTypes_Reply },
|
|
{ 2, xvmcCreateContext_Reply },
|
|
{ 4, xvmcCreateSurface_Reply },
|
|
{ 6, xvmcCreateSubpicture_Reply },
|
|
{ 8, xvmcListSubpictureTypes_Reply },
|
|
{ 0, NULL }
|
|
};
|
|
|
|
static void dispatch_xvmc(tvbuff_t *tvb, packet_info *pinfo, int *offsetp, proto_tree *t, int little_endian)
|
|
{
|
|
int minor, length;
|
|
minor = CARD8(xvmc_extension_minor);
|
|
length = REQUEST_LENGTH();
|
|
|
|
col_append_fstr(pinfo->cinfo, COL_INFO, "-%s",
|
|
val_to_str(minor, xvmc_extension_minor,
|
|
"<Unknown opcode %d>"));
|
|
switch (minor) {
|
|
case 0:
|
|
xvmcQueryVersion(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 1:
|
|
xvmcListSurfaceTypes(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 2:
|
|
xvmcCreateContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 3:
|
|
xvmcDestroyContext(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 4:
|
|
xvmcCreateSurface(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 5:
|
|
xvmcDestroySurface(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 6:
|
|
xvmcCreateSubpicture(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 7:
|
|
xvmcDestroySubpicture(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
case 8:
|
|
xvmcListSubpictureTypes(tvb, pinfo, offsetp, t, little_endian, length);
|
|
break;
|
|
/* No need for a default case here, since Unknown is printed above,
|
|
and UNDECODED() is taken care of by dissect_x11_request */
|
|
}
|
|
}
|
|
|
|
static void register_xvmc(void)
|
|
{
|
|
set_handler("XVideo-MotionCompensation", dispatch_xvmc, xvmc_errors, xvmc_events, xvmc_replies);
|
|
}
|
|
static void register_x11_extensions(void)
|
|
{
|
|
register_bigreq();
|
|
register_composite();
|
|
register_damage();
|
|
register_dpms();
|
|
register_dri2();
|
|
register_ge();
|
|
register_glx();
|
|
register_randr();
|
|
register_record();
|
|
register_render();
|
|
register_res();
|
|
register_screensaver();
|
|
register_shape();
|
|
register_shm();
|
|
register_sync();
|
|
register_xc_misc();
|
|
register_xevie();
|
|
register_xf86dri();
|
|
register_xf86vidmode();
|
|
register_xfixes();
|
|
register_xinerama();
|
|
register_xinput();
|
|
register_xkb();
|
|
register_xprint();
|
|
register_xselinux();
|
|
register_xtest();
|
|
register_xv();
|
|
register_xvmc();
|
|
}
|