Revert "TODO epan/dissectors/asn1/kerberos/packet-kerberos-template.c new GSS flags"
[wireshark-sm.git] / epan / dissectors / file-pcapng.h
blob5b0810b000864c17323d41cce6b06b0309706d75
1 /* file-pcapng.h
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
8 */
11 #ifndef __FILE_PCAPNG_H__
12 #define __FILE_PCAPNG_H__
15 * Structure to pass to block data dissectors.
17 typedef struct {
18 proto_item *block_item;
19 proto_tree *block_tree;
20 struct info *info;
21 } block_data_arg;
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,
32 unsigned encoding);
34 typedef struct {
35 const char* name;
36 local_block_dissect_t *dissector;
37 int option_root_hf;
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,
50 void *user_data);
54 /* Used by custom dissector */
56 /* File info */
57 struct info {
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;
63 unsigned encoding;
64 wmem_array_t *interfaces;
65 wmem_array_t *darwin_process_events;
68 struct interface_description {
69 uint32_t link_type;
70 uint32_t snap_len;
71 uint64_t timestamp_resolution;
72 uint64_t timestamp_offset;
75 struct darwin_process_event_description {
76 uint32_t process_id;
79 /* Dissect one PCAPNG Block */
80 extern int dissect_block(proto_tree *tree, packet_info *pinfo, tvbuff_t *tvb, struct info *info);
82 #endif