#define ND_PROTO_MAGICS enum ND_ProtocolLayer; void (*ND_ProtoFieldCB) (ND_Packet *packet, guchar *header, guchar *data); enum ND_ProtoFieldType; enum ND_ProtoFieldState; ND_Protocol* nd_proto_new (const char *name, ND_ProtocolLayer layer, guint64 magic); void nd_proto_free (ND_Protocol *proto); void nd_proto_field_set (const ND_ProtoInfo *pinf, ND_ProtoField *field, void *data); void nd_proto_field_set_for_menu (const ND_ProtoInfo *pinf, ND_ProtoField *field, void *data, ND_MenuData *menu, char *alt_form_str); const char* nd_proto_field_to_string (const ND_ProtoField *field); char* nd_proto_get_opt_key (ND_Protocol *proto); void nd_proto_4bit_hi_cb (ND_Packet *packet, guchar *header, guchar *data); void nd_proto_4bit_lo_cb (ND_Packet *packet, guchar *header, guchar *data); void nd_proto_8bit_cb (ND_Packet *packet, guchar *header, guchar *data); void nd_proto_16bit_cb (ND_Packet *packet, guchar *header, guchar *data); void nd_proto_24bit_cb (ND_Packet *packet, guchar *header, guchar *data); void nd_proto_32bit_cb (ND_Packet *packet, guchar *header, guchar *data); void nd_proto_cb_data_init (ND_ProtoCallbackData *cb_data, ND_Protocol *proto, guchar *data, guint offset, gboolean update_packet); void nd_proto_iterate_4bit_hi_cb (ND_Packet *packet, void *user_data, guint value); void nd_proto_iterate_4bit_lo_cb (ND_Packet *packet, void *user_data, guint value); void nd_proto_iterate_8bit_cb (ND_Packet *packet, void *user_data, guint value); void nd_proto_iterate_16bit_cb (ND_Packet *packet, void *user_data, guint value); void nd_proto_iterate_32bit_cb (ND_Packet *packet, void *user_data, guint value); #define DATA_TO_PTR (data) |
typedef enum {
ND_PROTO_LAYER_LINK = (1 << 0),
ND_PROTO_LAYER_NET = (1 << 1),
ND_PROTO_LAYER_TRANS = (1 << 2),
ND_PROTO_LAYER_APP = (1 << 3)
} ND_ProtocolLayer; |
typedef enum
{
ND_FIELD_STATE_NORMAL,
ND_FIELD_STATE_UNKN,
ND_FIELD_STATE_ERROR
} ND_ProtoFieldState; |
void nd_proto_field_set (const ND_ProtoInfo *pinf,
ND_ProtoField *field,
void *data); |
void nd_proto_field_set_for_menu (const ND_ProtoInfo *pinf,
ND_ProtoField *field,
void *data,
ND_MenuData *menu,
char *alt_form_str); |
void nd_proto_cb_data_init (ND_ProtoCallbackData *cb_data,
ND_Protocol *proto,
guchar *data,
guint offset,
gboolean update_packet); |
This function initializes the helper data structure that gets passed to the iterating callbacks (nd_proto_iterate_7bit_cb() and friends).
| cb_data : | pointer to ND_ProtoCallbackData structure |
| proto : | protocol to use in callback |
| data : | data pointer containing the header field data whose button was clicked |
| offset : | offset of the affected field in bytes from start of header |
| update_packet : | whether to call nd_packet_update() for each modified packet. |
void nd_proto_iterate_4bit_hi_cb (ND_Packet *packet,
void *user_data,
guint value); |
void nd_proto_iterate_4bit_lo_cb (ND_Packet *packet,
void *user_data,
guint value); |
void nd_proto_iterate_8bit_cb (ND_Packet *packet,
void *user_data,
guint value); |
void nd_proto_iterate_16bit_cb (ND_Packet *packet,
void *user_data,
guint value); |
void nd_proto_iterate_32bit_cb (ND_Packet *packet,
void *user_data,
guint value); |