9#ifndef __PCAP_MODULE_H__
10#define __PCAP_MODULE_H__
14#include "ws_symbol_export.h"
27#define BLOCK_TYPE_SHB 0x0A0D0D0A
28#define BLOCK_TYPE_IDB 0x00000001
29#define BLOCK_TYPE_PB 0x00000002
30#define BLOCK_TYPE_SPB 0x00000003
31#define BLOCK_TYPE_NRB 0x00000004
32#define BLOCK_TYPE_ISB 0x00000005
33#define BLOCK_TYPE_EPB 0x00000006
34#define BLOCK_TYPE_IRIG_TS 0x00000007
35#define BLOCK_TYPE_ARINC_429 0x00000008
36#define BLOCK_TYPE_SYSTEMD_JOURNAL_EXPORT 0x00000009
37#define BLOCK_TYPE_DSB 0x0000000A
38#define BLOCK_TYPE_HP_MIB 0x00000101
39#define BLOCK_TYPE_HP_CEB 0x00000102
40#define BLOCK_TYPE_SYSDIG_MI 0x00000201
41#define BLOCK_TYPE_SYSDIG_PL_V1 0x00000202
42#define BLOCK_TYPE_SYSDIG_FDL_V1 0x00000203
43#define BLOCK_TYPE_SYSDIG_EVENT 0x00000204
44#define BLOCK_TYPE_SYSDIG_IL_V1 0x00000205
45#define BLOCK_TYPE_SYSDIG_UL_V1 0x00000206
46#define BLOCK_TYPE_SYSDIG_PL_V2 0x00000207
47#define BLOCK_TYPE_SYSDIG_EVF 0x00000208
48#define BLOCK_TYPE_SYSDIG_PL_V3 0x00000209
49#define BLOCK_TYPE_SYSDIG_PL_V4 0x00000210
50#define BLOCK_TYPE_SYSDIG_PL_V5 0x00000211
51#define BLOCK_TYPE_SYSDIG_PL_V6 0x00000212
52#define BLOCK_TYPE_SYSDIG_PL_V7 0x00000213
53#define BLOCK_TYPE_SYSDIG_PL_V8 0x00000214
54#define BLOCK_TYPE_SYSDIG_PL_V9 0x00000215
55#define BLOCK_TYPE_SYSDIG_EVENT_V2 0x00000216
56#define BLOCK_TYPE_SYSDIG_EVF_V2 0x00000217
57#define BLOCK_TYPE_SYSDIG_FDL_V2 0x00000218
58#define BLOCK_TYPE_SYSDIG_IL_V2 0x00000219
59#define BLOCK_TYPE_SYSDIG_UL_V2 0x00000220
60#define BLOCK_TYPE_SYSDIG_EVENT_V2_LARGE 0x00000221
61#define BLOCK_TYPE_SYSDIG_EVF_V2_LARGE 0x00000222
62#define BLOCK_TYPE_CB_COPY 0x00000BAD
63#define BLOCK_TYPE_CB_NO_COPY 0x40000BAD
64#define BLOCK_TYPE_LEGACY_DPIB 0x80000001
103typedef bool (*block_reader)(
wtap* wth,
FILE_T fh, uint32_t block_type,
104 uint32_t block_content_length,
107 int *err,
char **err_info);
109 int *err,
char **err_info);
117 block_processor processor;
120 GHashTable *option_handlers;
132typedef bool (*option_parser)(
wtap_block_t block,
bool byte_swapped,
133 unsigned option_length,
134 const uint8_t *option_content,
135 int *err,
char **err_info);
136typedef uint32_t (*option_sizer)(
unsigned option_id,
wtap_optval_t *optval);
137typedef bool (*option_writer)(
wtap_dumper *wdh,
unsigned option_id,
144GHashTable *pcapng_create_option_handler_table(
void);
151void register_pcapng_option_handler(
unsigned block_type,
unsigned option_code,
152 option_parser parser,
154 option_writer writer);
171 OPT_SECTION_BYTE_ORDER,
174} pcapng_opt_byte_order_e;
185 unsigned opt_cont_buf_len,
191 pcapng_opt_byte_order_e byte_order,
192 int *err,
char **err_info);
200 uint16_t option_code, uint16_t option_length,
201 const uint8_t *option_content);
206 pcapng_opt_byte_order_e byte_order,
207 uint16_t option_code, uint16_t option_length,
208 const uint8_t *option_content);
213 pcapng_opt_byte_order_e byte_order,
214 uint16_t option_code, uint16_t option_length,
215 const uint8_t *option_content);
220 pcapng_opt_byte_order_e byte_order,
221 uint16_t option_code, uint16_t option_length,
222 const uint8_t *option_content);
227 pcapng_opt_byte_order_e byte_order,
228 uint16_t option_code, uint16_t option_length,
229 const uint8_t *option_content);
232void pcapng_process_string_option(
wtapng_block_t *wblock, uint16_t option_code,
233 uint16_t option_length,
const uint8_t *option_content);
236void pcapng_process_bytes_option(
wtapng_block_t *wblock, uint16_t option_code,
237 uint16_t option_length,
const uint8_t *option_content);
244 compute_option_size_func compute_option_size;
248uint32_t pcapng_compute_options_size(
wtap_block_t block, compute_option_size_func compute_option_size);
252 wtap_opttype_e option_type,
254 int *err,
char **err_info);
257bool pcapng_write_options(
wtap_dumper *wdh, pcapng_opt_byte_order_e byte_order,
259 int *err,
char **err_info);
266 int* err,
char** err_info);
269 const uint8_t* value, uint16_t length);
273 custom_option_parser parser;
274 custom_option_processor processor;
292bool pcapng_write_block_header(
wtap_dumper *wdh, uint32_t block_type,
293 uint32_t block_content_length,
int *err);
299pcapng_write_padding(
wtap_dumper *wdh,
size_t pad,
int *err)
302 const uint32_t zero_pad = 0;
303 if (!wtap_dump_file_write(wdh, &zero_pad, pad, err))
314bool pcapng_write_block_footer(
wtap_dumper *wdh, uint32_t block_content_length,
331void *pcapng_get_cb_section_info_data(
section_info_t *section_info,
340void *pcapng_get_lb_section_info_data(
section_info_t *section_info,
Definition pcapng_module.h:242
Definition pcapng_module.h:272
Definition pcapng_module.h:321
Definition pcapng_module.h:90
uint16_t version_major
Definition pcapng_module.h:92
int64_t shb_off
Definition pcapng_module.h:95
uint16_t version_minor
Definition pcapng_module.h:93
GHashTable * local_block_data
Definition pcapng_module.h:97
GHashTable * custom_block_data
Definition pcapng_module.h:96
GArray * interfaces
Definition pcapng_module.h:94
bool byte_swapped
Definition pcapng_module.h:91
Definition wtap_opttypes.h:272
Wiretap dumper handle and associated state.
Definition wtap_module.h:163
Definition file_wrappers.c:97
Definition wtap_module.h:58
Definition pcapng_module.h:78
Definition wtap_opttypes.h:525