3 * Wireshark - Network traffic analyzer
4 * By Gerald Combs <gerald@wireshark.org>
5 * Copyright 1998 Gerald Combs
7 * SPDX-License-Identifier: GPL-2.0-or-later
11 #ifndef __FILE_PCAPNG_H__
12 #define __FILE_PCAPNG_H__
15 * Structure to pass to block data dissectors.
18 proto_item
*block_item
;
19 proto_tree
*block_tree
;
24 /* Callback for local block data dissection */
25 typedef void (local_block_dissect_t
)(proto_tree
*tree
, packet_info
*pinfo
, tvbuff_t
*tvb
, block_data_arg
*argp
);
27 /* Callback for local block option dissection function */
28 typedef void (local_block_option_dissect_t
)(proto_tree
*option_tree
, proto_item
*option_item
,
29 packet_info
*pinfo
, tvbuff_t
*tvb
, int offset
,
30 int unknown_option_hf
,
31 uint32_t option_code
, uint32_t option_length
,
36 local_block_dissect_t
*dissector
;
38 const value_string
*option_vals
;
39 local_block_option_dissect_t
*option_dissector
;
40 } local_block_callback_info_t
;
42 /* Routine for a local block dissector to register with main pcapng dissector.
43 * For an in-tree example, please see file-pcapng-darwin.c */
44 void register_pcapng_local_block_dissector(uint32_t block_number
, local_block_callback_info_t
*info
);
47 /* Can be called by local block type dissectors block dissector callback */
48 int dissect_options(proto_tree
*tree
, packet_info
*pinfo
,
49 uint32_t block_type
, tvbuff_t
*tvb
, int offset
, unsigned encoding
,
54 /* Used by custom dissector */
58 uint32_t block_number
;
59 uint32_t section_number
;
60 uint32_t interface_number
;
61 uint32_t darwin_process_event_number
;
62 uint32_t frame_number
;
64 wmem_array_t
*interfaces
;
65 wmem_array_t
*darwin_process_events
;
68 struct interface_description
{
71 uint64_t timestamp_resolution
;
72 uint64_t timestamp_offset
;
75 struct darwin_process_event_description
{
79 /* Dissect one PCAPNG Block */
80 extern int dissect_block(proto_tree
*tree
, packet_info
*pinfo
, tvbuff_t
*tvb
, struct info
*info
);