forked from osmocom/wireshark
![Jeff Morriss](/assets/img/avatar_default.png)
Add a target ("x11-dissector") to build the X11 dissector. Put the X11-related files (back) in the source distribution. svn path=/trunk/; revision=29871
21967 lines
881 KiB
C
21967 lines
881 KiB
C
/* Do not modify this file. */
|
|
/* It was automatically generated by ../../tools/process-x11-xcb.pl
|
|
using xcbproto version 1.5-4-ga507629 */
|
|
/* $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);
|
|
}
|
|
}
|
|
|
|
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_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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_PICTFORMINFO_type, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_RedirectWindow_update, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_RedirectSubwindows_update, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_UnredirectWindow_update, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_composite_UnredirectSubwindows_update, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_Create_level, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_Subtract_repair, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_parts = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_Subtract_parts, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_damage_Notify_level, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_ForceLevel_power_level, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
}
|
|
|
|
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 = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_dpms_Info_reply_power_level, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
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 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_tree_add_item(t, hf_x11_randr_SetScreenConfig_rotation, 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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_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 (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 = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetScreenConfig_reply_subpixel_order, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
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_tree_add_item(t, hf_x11_randr_SelectInput_enable, 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_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_rotations, 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_tree_add_item(t, hf_x11_randr_GetScreenInfo_reply_rotation, 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_tree_add_item(t, hf_x11_struct_ModeInfo_mode_flags, 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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_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 (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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_connection, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_subpixel_order = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputInfo_reply_subpixel_order, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ChangeOutputProperty_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetOutputProperty_reply_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_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 (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_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_rotation, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_rotations = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetCrtcInfo_reply_rotations, 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_tree_add_item(t, hf_x11_randr_SetCrtcConfig_rotation, 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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetCrtcConfig_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 (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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_GetPanning_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 (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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_SetPanning_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 (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_tree_add_item(t, hf_x11_randr_ScreenChangeNotify_rotation, 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 = VALUE16(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_ScreenChangeNotify_subpixel_order, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
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_tree_add_item(t, hf_x11_struct_CrtcChange_rotation, 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_tree_add_item(t, hf_x11_struct_OutputChange_rotation, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_connection = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OutputChange_connection, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_subpixel_order = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OutputChange_subpixel_order, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
}
|
|
}
|
|
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_OutputProperty_status, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_randr_Notify_subCode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Composite_op, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Composite_mask, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Trapezoids_op, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_Triangles_op, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_TriStrip_op, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_TriFan_op, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs8_op, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs16_op, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_CompositeGlyphs32_op, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_render_FillRectangles_op, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Notify_shape_kind, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Rectangles_operation, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_destination_kind = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Rectangles_destination_kind, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_ordering = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Rectangles_ordering, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Mask_operation, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_destination_kind = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Mask_destination_kind, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Mask_source_bitmap, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Combine_operation, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_destination_kind = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Combine_destination_kind, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_source_kind = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Combine_source_kind, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_Offset_destination_kind, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_GetRectangles_source_kind, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_shape_GetRectangles_reply_ordering, 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-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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRIGGER_wait_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
struct_INT64(tvb, offsetp, t, little_endian, 1);
|
|
f_test_type = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_TRIGGER_test_type, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
}
|
|
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_QueryAlarm_reply_state, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_sync_AlarmNotify_state, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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_drm_client_key_low;
|
|
int f_drm_client_key_high;
|
|
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_drm_client_key_low = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_drm_client_key_low, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_drm_client_key_high = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_OpenConnection_reply_drm_client_key_high, 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_visual;
|
|
int f_screen;
|
|
int f_context;
|
|
f_visual = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_visual, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_screen = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xf86dri_CreateContext_screen, 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_tree_add_item(t, hf_x11_xf86vidmode_GetModeLine_reply_flags, 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_tree_add_item(t, hf_x11_xf86vidmode_ModModeLine_flags, 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_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_flags, 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_tree_add_item(t, hf_x11_xf86vidmode_AddModeLine_after_flags, 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_tree_add_item(t, hf_x11_xf86vidmode_DeleteModeLine_flags, 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_tree_add_item(t, hf_x11_xf86vidmode_ValidateModeLine_flags, 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_tree_add_item(t, hf_x11_xf86vidmode_SwitchToMode_flags, 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_tree_add_item(t, hf_x11_xf86vidmode_GetDotClocks_reply_flags, 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_tree_add_item(t, hf_x11_xf86vidmode_GetPermissions_reply_permissions, 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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ChangeSaveSet_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_target = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ChangeSaveSet_target, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_map = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_ChangeSaveSet_map, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SelectionNotify_subtype, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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_tree_add_item(t, hf_x11_xfixes_SelectSelectionInput_event_mask, 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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_subtype, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CursorNotify_name, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
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_tree_add_item(t, hf_x11_xfixes_SelectCursorInput_event_mask, 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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_CreateRegionFromWindow_kind, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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);
|
|
}
|
|
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetGCClipRegion_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_dest_kind, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetWindowShapeRegion_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_SetPictureClipRegion_region, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorName_reply_atom, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xfixes_GetCursorImageAndName_reply_cursor_atom, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_DeviceInfo_device_use, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_InputClassInfo_class_id, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceMode_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceMode_reply_status, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangeDeviceDontPropagateList_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_stop, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceMotionEvents_reply_device_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangeKeyboardDevice_reply_status, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_ChangePointerDevice_reply_status, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDevice_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDevice_this_device_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_other_device_mode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDevice_other_device_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDevice_reply_status, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_UngrabDevice_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
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_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_modifiers, 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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_key, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_this_device_mode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_this_device_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_other_device_mode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceKey_other_device_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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_tree_add_item(t, hf_x11_xinput_UngrabDeviceKey_modifiers, 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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceKey_key, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_modifiers, tvb, *offsetp, 2, little_endian);
|
|
*offsetp += 2;
|
|
f_this_device_mode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_this_device_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_other_device_mode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_other_device_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_button = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GrabDeviceButton_button, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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_tree_add_item(t, hf_x11_xinput_UngrabDeviceButton_modifiers, 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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_UngrabDeviceButton_button, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_AllowDeviceEvents_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_mode = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_AllowDeviceEvents_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceFocus_reply_focus, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceFocus_reply_revert_to, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceFocus_focus, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_time = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceFocus_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
f_revert_to = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceFocus_revert_to, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceModifierMapping_reply_status, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceButtonMapping_reply_status, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_SetDeviceValuators_reply_status, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_GetDeviceControl_reply_status, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_DeviceKeyPress_child, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_FocusIn_detail, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xinput_FocusIn_mode, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 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_tree_add_item(t, hf_x11_struct_AdaptorInfo_type, 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_tree_add_item(t, hf_x11_struct_AttributeInfo_flags, 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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_type, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
f_byte_order = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_byte_order, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_format, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_struct_ImageFormatInfo_vscanline_order, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_VideoNotify_reason, tvb, *offsetp, 1, little_endian);
|
|
*offsetp += 1;
|
|
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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GrabPort_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
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 = VALUE8(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_GrabPort_reply_result, 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 (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 = VALUE32(tvb, *offsetp);
|
|
proto_tree_add_item(t, hf_x11_xv_UngrabPort_time, tvb, *offsetp, 4, little_endian);
|
|
*offsetp += 4;
|
|
}
|
|
|
|
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_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_xprint();
|
|
register_xselinux();
|
|
register_xtest();
|
|
register_xv();
|
|
register_xvmc();
|
|
}
|