2006-06-13 13:21:12 +00:00
|
|
|
/* next_tvb.h
|
|
|
|
* Definitions for "next tvb" list
|
|
|
|
*
|
|
|
|
* Wireshark - Network traffic analyzer
|
|
|
|
* By Gerald Combs <gerald@wireshark.org>
|
|
|
|
* Copyright 1998 Gerald Combs
|
|
|
|
*
|
2018-02-08 16:59:17 +00:00
|
|
|
* SPDX-License-Identifier: GPL-2.0-or-later
|
2006-06-13 13:21:12 +00:00
|
|
|
*/
|
2014-02-25 20:42:35 +00:00
|
|
|
/* The buffers returned by these functions are all allocated with a
|
|
|
|
* packet lifetime or are static buffers and does not have have to be freed.
|
2006-06-13 13:21:12 +00:00
|
|
|
* However, take into account that when the packet dissection
|
|
|
|
* completes, these buffers will be automatically reclaimed/freed.
|
|
|
|
* If you need the buffer to remain for a longer scope than packet lifetime
|
2015-01-12 00:48:54 +00:00
|
|
|
* you must copy the content to an wmem_file_scope() buffer.
|
2006-06-13 13:21:12 +00:00
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef __NEXT_TVB_H__
|
|
|
|
#define __NEXT_TVB_H__
|
|
|
|
|
2013-03-01 23:53:11 +00:00
|
|
|
#include "ws_symbol_export.h"
|
|
|
|
|
2006-06-13 13:21:12 +00:00
|
|
|
typedef enum {
|
|
|
|
NTVB_HANDLE,
|
2010-12-20 05:35:29 +00:00
|
|
|
NTVB_UINT,
|
2006-06-14 08:11:29 +00:00
|
|
|
NTVB_STRING
|
2006-06-13 13:21:12 +00:00
|
|
|
} next_tvb_call_e;
|
|
|
|
|
2010-12-20 05:58:42 +00:00
|
|
|
/* For old code that hasn't yet been changed. */
|
|
|
|
#define NTVB_PORT NTVB_UINT
|
|
|
|
|
2006-06-13 13:21:12 +00:00
|
|
|
typedef struct next_tvb_item {
|
|
|
|
struct next_tvb_item *next;
|
|
|
|
struct next_tvb_item *previous;
|
|
|
|
next_tvb_call_e type;
|
|
|
|
dissector_handle_t handle;
|
|
|
|
dissector_table_t table;
|
2010-12-20 05:35:29 +00:00
|
|
|
guint32 uint_val;
|
2006-06-13 13:21:12 +00:00
|
|
|
const gchar *string;
|
|
|
|
tvbuff_t *tvb;
|
|
|
|
proto_tree *tree;
|
|
|
|
} next_tvb_item_t;
|
|
|
|
|
|
|
|
typedef struct {
|
|
|
|
next_tvb_item_t *first;
|
|
|
|
next_tvb_item_t *last;
|
|
|
|
int count;
|
|
|
|
} next_tvb_list_t;
|
|
|
|
|
2013-03-01 23:53:11 +00:00
|
|
|
WS_DLL_PUBLIC void next_tvb_init(next_tvb_list_t *list);
|
|
|
|
WS_DLL_PUBLIC void next_tvb_add_handle(next_tvb_list_t *list, tvbuff_t *tvb, proto_tree *tree, dissector_handle_t handle);
|
|
|
|
WS_DLL_PUBLIC void next_tvb_add_uint(next_tvb_list_t *list, tvbuff_t *tvb, proto_tree *tree, dissector_table_t table, guint32 uint_val);
|
|
|
|
WS_DLL_PUBLIC void next_tvb_add_string(next_tvb_list_t *list, tvbuff_t *tvb, proto_tree *tree, dissector_table_t table, const gchar *string);
|
|
|
|
WS_DLL_PUBLIC void next_tvb_call(next_tvb_list_t *list, packet_info *pinfo, proto_tree *tree, dissector_handle_t handle, dissector_handle_t data_handle);
|
2006-06-13 13:21:12 +00:00
|
|
|
|
|
|
|
#endif /* __NEXT_TVB_H__ */
|