aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Mann <mmann78@netscape.net>2014-06-16 13:23:28 -0400
committerMichael Mann <mmann78@netscape.net>2014-06-16 20:38:54 +0000
commita279fa7705b9baf3f6c779face3067b722c802b2 (patch)
treede7d4060c752c62a926acc7bc6f1a2e08c0179bc
parentcf99e6b198eb7d0c79b93065ec45322e38ac840f (diff)
Have ipmi "dissectors" register through the build process instead of "manually"
Change-Id: I6d6d32e8a1bc21dee9bf52b502e1a02e9511ecb2 Reviewed-on: https://code.wireshark.org/review/2253 Reviewed-by: Dmitry Bazhenov <dima_b@pigeonpoint.com> Reviewed-by: Evan Huus <eapache@gmail.com> Reviewed-by: Michael Mann <mmann78@netscape.net>
-rw-r--r--epan/CMakeLists.txt27
-rw-r--r--epan/dissectors/Makefile.common26
-rw-r--r--epan/dissectors/packet-ipmi-app.c4
-rw-r--r--epan/dissectors/packet-ipmi-bridge.c4
-rw-r--r--epan/dissectors/packet-ipmi-chassis.c4
-rw-r--r--epan/dissectors/packet-ipmi-picmg.c2
-rw-r--r--epan/dissectors/packet-ipmi-pps.c2
-rw-r--r--epan/dissectors/packet-ipmi-se.c2
-rw-r--r--epan/dissectors/packet-ipmi-storage.c2
-rw-r--r--epan/dissectors/packet-ipmi-transport.c2
-rw-r--r--epan/dissectors/packet-ipmi-update.c2
-rwxr-xr-xepan/dissectors/packet-ipmi-vita.c2
-rw-r--r--epan/dissectors/packet-ipmi.c23
-rw-r--r--epan/dissectors/packet-ipmi.h13
14 files changed, 45 insertions, 70 deletions
diff --git a/epan/CMakeLists.txt b/epan/CMakeLists.txt
index 524a76db15..946b0c3357 100644
--- a/epan/CMakeLists.txt
+++ b/epan/CMakeLists.txt
@@ -808,9 +808,19 @@ set(DISSECTOR_SRC
dissectors/packet-ipars.c
dissectors/packet-ipdc.c
dissectors/packet-ipfc.c
- dissectors/packet-ipmi-session.c
dissectors/packet-ipmi.c
+ dissectors/packet-ipmi-app.c
+ dissectors/packet-ipmi-bridge.c
+ dissectors/packet-ipmi-chassis.c
+ dissectors/packet-ipmi-picmg.c
+ dissectors/packet-ipmi-se.c
+ dissectors/packet-ipmi-session.c
+ dissectors/packet-ipmi-storage.c
dissectors/packet-ipmi-trace.c
+ dissectors/packet-ipmi-transport.c
+ dissectors/packet-ipmi-pps.c
+ dissectors/packet-ipmi-update.c
+ dissectors/packet-ipmi-vita.c
dissectors/packet-ipnet.c
dissectors/packet-ipoib.c
dissectors/packet-ipp.c
@@ -1400,22 +1410,7 @@ set(DIRTY_DISSECTOR_SRC
dissectors/packet-x11.c
)
-# IPMI sub-parsers for each network function code
-set(IPMI_SUBPARSERS
- dissectors/packet-ipmi-app.c
- dissectors/packet-ipmi-bridge.c
- dissectors/packet-ipmi-chassis.c
- dissectors/packet-ipmi-picmg.c
- dissectors/packet-ipmi-se.c
- dissectors/packet-ipmi-storage.c
- dissectors/packet-ipmi-transport.c
- dissectors/packet-ipmi-pps.c
- dissectors/packet-ipmi-update.c
- dissectors/packet-ipmi-vita.c
-)
-
set(DISSECTOR_SUPPORT_SRC
- ${IPMI_SUBPARSERS}
dissectors/packet-dcerpc-nt.c
dissectors/usb.c
register.c
diff --git a/epan/dissectors/Makefile.common b/epan/dissectors/Makefile.common
index 8359ce3e26..96444eb246 100644
--- a/epan/dissectors/Makefile.common
+++ b/epan/dissectors/Makefile.common
@@ -728,9 +728,19 @@ DISSECTOR_SRC = \
packet-ipars.c \
packet-ipdc.c \
packet-ipfc.c \
- packet-ipmi-session.c \
packet-ipmi.c \
+ packet-ipmi-app.c \
+ packet-ipmi-bridge.c \
+ packet-ipmi-chassis.c \
+ packet-ipmi-picmg.c \
+ packet-ipmi-se.c \
+ packet-ipmi-session.c \
+ packet-ipmi-storage.c \
packet-ipmi-trace.c \
+ packet-ipmi-transport.c \
+ packet-ipmi-pps.c \
+ packet-ipmi-update.c \
+ packet-ipmi-vita.c \
packet-ipnet.c \
packet-ipoib.c \
packet-ipp.c \
@@ -1705,24 +1715,10 @@ DISSECTOR_INCLUDES = \
$(GENERATED_HEADER_FILES) \
$(CUSTOM_HEADER_FILES)
-# IPMI sub-parsers for each network function code
-IPMI_SUBPARSERS = \
- packet-ipmi-app.c \
- packet-ipmi-bridge.c \
- packet-ipmi-chassis.c \
- packet-ipmi-picmg.c \
- packet-ipmi-se.c \
- packet-ipmi-storage.c \
- packet-ipmi-transport.c \
- packet-ipmi-pps.c \
- packet-ipmi-update.c \
- packet-ipmi-vita.c
-
# Dissector helpers. They're included in the source files in this
# directory, but they're not dissectors themselves, i.e. they're not
# used to generate "register.c").
DISSECTOR_SUPPORT_SRC = \
- $(IPMI_SUBPARSERS) \
packet-dcerpc-nt.c \
usb.c \
register.c
diff --git a/epan/dissectors/packet-ipmi-app.c b/epan/dissectors/packet-ipmi-app.c
index 97b71bc93f..f0a0bc7e99 100644
--- a/epan/dissectors/packet-ipmi-app.c
+++ b/epan/dissectors/packet-ipmi-app.c
@@ -29,6 +29,8 @@
#include "packet-ipmi.h"
+void proto_register_ipmi_app(void);
+
static gint ett_ipmi_app_01_byte2 = -1;
static gint ett_ipmi_app_01_byte3 = -1;
static gint ett_ipmi_app_01_byte6 = -1;
@@ -1045,7 +1047,7 @@ static ipmi_cmd_t cmd_app[] = {
};
void
-ipmi_register_app(gint proto_ipmi)
+proto_register_ipmi_app(void)
{
static hf_register_info hf[] = {
{ &hf_ipmi_app_01_dev_id,
diff --git a/epan/dissectors/packet-ipmi-bridge.c b/epan/dissectors/packet-ipmi-bridge.c
index 6da35fb6b5..de723556ee 100644
--- a/epan/dissectors/packet-ipmi-bridge.c
+++ b/epan/dissectors/packet-ipmi-bridge.c
@@ -27,6 +27,8 @@
#include "packet-ipmi.h"
+void proto_register_ipmi_bridge(void);
+
/* Bridge commands are not implemented (yet) */
@@ -134,7 +136,7 @@ static ipmi_cmd_t cmd_bridge[] = {
};
void
-ipmi_register_bridge(gint proto_ipmi _U_)
+proto_register_ipmi_bridge(void)
{
ipmi_register_netfn_cmdtab(IPMI_BRIDGE_REQ, IPMI_OEM_NONE, NULL, 0, NULL,
cmd_bridge, array_length(cmd_bridge));
diff --git a/epan/dissectors/packet-ipmi-chassis.c b/epan/dissectors/packet-ipmi-chassis.c
index 6d00fbc08c..a482cef5d4 100644
--- a/epan/dissectors/packet-ipmi-chassis.c
+++ b/epan/dissectors/packet-ipmi-chassis.c
@@ -27,6 +27,8 @@
#include "packet-ipmi.h"
+void proto_register_ipmi_chassis(void);
+
/* Local variables.
*/
static gint ett_ipmi_chs_bo00_byte1 = -1;
@@ -709,7 +711,7 @@ static ipmi_cmd_t cmd_chassis[] = {
};
void
-ipmi_register_chassis(gint proto_ipmi)
+proto_register_ipmi_chassis(void)
{
static hf_register_info hf[] = {
{ &hf_ipmi_chs_bo00_sip,
diff --git a/epan/dissectors/packet-ipmi-picmg.c b/epan/dissectors/packet-ipmi-picmg.c
index 04f2423747..9e53675091 100644
--- a/epan/dissectors/packet-ipmi-picmg.c
+++ b/epan/dissectors/packet-ipmi-picmg.c
@@ -2668,7 +2668,7 @@ static ipmi_cmd_t cmd_picmg[] = {
};
void
-ipmi_register_picmg(gint proto_ipmi)
+proto_register_ipmi_picmg(void)
{
static hf_register_info hf[] = {
{ &hf_ipmi_picmg_led_function,
diff --git a/epan/dissectors/packet-ipmi-pps.c b/epan/dissectors/packet-ipmi-pps.c
index f3d089018f..785d6ce870 100644
--- a/epan/dissectors/packet-ipmi-pps.c
+++ b/epan/dissectors/packet-ipmi-pps.c
@@ -97,7 +97,7 @@ static ipmi_cmd_t cmd_pps[] = {
};
void
-ipmi_register_pps(gint proto_ipmi _U_)
+proto_register_ipmi_pps(void)
{
static guint8 sig_pps[3] = { 0x0a, 0x40, 0x00 };
static guint8 sig_pps_rev[3] = { 0x00, 0x40, 0x0a };
diff --git a/epan/dissectors/packet-ipmi-se.c b/epan/dissectors/packet-ipmi-se.c
index 50c65c7b99..2603f73f03 100644
--- a/epan/dissectors/packet-ipmi-se.c
+++ b/epan/dissectors/packet-ipmi-se.c
@@ -2891,7 +2891,7 @@ static ipmi_cmd_t cmd_se[] = {
};
void
-ipmi_register_se(gint proto_ipmi)
+proto_register_ipmi_se(void)
{
static hf_register_info hf[] = {
{ &hf_ipmi_se_evt_rev,
diff --git a/epan/dissectors/packet-ipmi-storage.c b/epan/dissectors/packet-ipmi-storage.c
index 5f9d0ab6f9..6c04ac0d1c 100644
--- a/epan/dissectors/packet-ipmi-storage.c
+++ b/epan/dissectors/packet-ipmi-storage.c
@@ -743,7 +743,7 @@ static ipmi_cmd_t cmd_storage[] = {
};
void
-ipmi_register_storage(gint proto_ipmi)
+proto_register_ipmi_storage(void)
{
static hf_register_info hf[] = {
{ &hf_ipmi_stor_10_fruid,
diff --git a/epan/dissectors/packet-ipmi-transport.c b/epan/dissectors/packet-ipmi-transport.c
index acfa0bf97c..0e3d876940 100644
--- a/epan/dissectors/packet-ipmi-transport.c
+++ b/epan/dissectors/packet-ipmi-transport.c
@@ -2170,7 +2170,7 @@ static ipmi_cmd_t cmd_transport[] = {
};
void
-ipmi_register_transport(gint proto_ipmi)
+proto_register_ipmi_transport(void)
{
static hf_register_info hf[] = {
{ &hf_ipmi_trn_lan00_sip,
diff --git a/epan/dissectors/packet-ipmi-update.c b/epan/dissectors/packet-ipmi-update.c
index 713e481e12..cb42ac66ce 100644
--- a/epan/dissectors/packet-ipmi-update.c
+++ b/epan/dissectors/packet-ipmi-update.c
@@ -38,7 +38,7 @@ static ipmi_cmd_t cmd_update[] = {
};
void
-ipmi_register_update(gint proto_ipmi _U_)
+proto_register_ipmi_update(void)
{
ipmi_register_netfn_cmdtab(IPMI_UPDATE_REQ, IPMI_OEM_PPS, NULL, 0, NULL,
cmd_update, array_length(cmd_update));
diff --git a/epan/dissectors/packet-ipmi-vita.c b/epan/dissectors/packet-ipmi-vita.c
index d41b33d654..d0b5d0ba13 100755
--- a/epan/dissectors/packet-ipmi-vita.c
+++ b/epan/dissectors/packet-ipmi-vita.c
@@ -1298,7 +1298,7 @@ static ipmi_cmd_t cmd_vita[] = {
/* VITA 46.11 command set registrator
*/
void
-ipmi_register_vita(gint proto_ipmi)
+proto_register_ipmi_vita(void)
{
static const guint8 sig_vita[1] = { 3 };
diff --git a/epan/dissectors/packet-ipmi.c b/epan/dissectors/packet-ipmi.c
index 4eaff33c4a..d007f252c2 100644
--- a/epan/dissectors/packet-ipmi.c
+++ b/epan/dissectors/packet-ipmi.c
@@ -135,7 +135,7 @@ typedef struct {
static dissector_handle_t data_dissector;
-static gint proto_ipmi = -1;
+gint proto_ipmi = -1;
static gint proto_ipmb = -1;
static gint proto_kcs = -1;
static gint proto_tmode = -1;
@@ -1768,15 +1768,13 @@ proto_register_ipmi(void)
{ "pps", "Pigeon Point Systems", IPMI_OEM_PPS },
{ NULL, NULL, 0 }
};
-#if 0
+
static ei_register_info ei[] = {
{ &ei_impi_parser_not_implemented, { "ipmi.parser_not_implemented", PI_UNDECODED, PI_WARN, "[PARSER NOT IMPLEMENTED]", EXPFILL }},
};
-#endif
+
module_t *m;
-#if 0
expert_module_t* expert_ipmi;
-#endif
guint32 i;
proto_ipmi = proto_register_protocol("Intelligent Platform Management Interface",
@@ -1795,9 +1793,9 @@ proto_register_ipmi(void)
proto_register_field_array(proto_ipmi, hf, array_length(hf));
proto_register_subtree_array(ett, array_length(ett));
-#if 0
+
expert_ipmi = expert_register_protocol(proto_ipmi);
-#endif
+ expert_register_field_array(expert_ipmi, ei, array_length(ei));
ipmi_netfn_setdesc(IPMI_CHASSIS_REQ, "Chassis", 0);
ipmi_netfn_setdesc(IPMI_BRIDGE_REQ, "Bridge", 0);
@@ -1812,17 +1810,6 @@ proto_register_ipmi(void)
ipmi_netfn_setdesc(i, "OEM", 0);
}
- ipmi_register_chassis(proto_ipmi);
- ipmi_register_bridge(proto_ipmi);
- ipmi_register_se(proto_ipmi);
- ipmi_register_app(proto_ipmi);
- ipmi_register_update(proto_ipmi);
- ipmi_register_storage(proto_ipmi);
- ipmi_register_transport(proto_ipmi);
- ipmi_register_picmg(proto_ipmi);
- ipmi_register_pps(proto_ipmi);
- ipmi_register_vita(proto_ipmi);
-
new_register_dissector("ipmi", dissect_ipmi, proto_ipmi);
new_register_dissector("ipmb", dissect_ipmi, proto_ipmb);
new_register_dissector("kcs", dissect_kcs, proto_kcs);
diff --git a/epan/dissectors/packet-ipmi.h b/epan/dissectors/packet-ipmi.h
index ffc75b93c8..a0f9233a05 100644
--- a/epan/dissectors/packet-ipmi.h
+++ b/epan/dissectors/packet-ipmi.h
@@ -166,17 +166,8 @@ ipmi_netfn_t *ipmi_getnetfn(guint32 netfn, const guint8 *sig);
ipmi_cmd_t *ipmi_getcmd(ipmi_netfn_t *nf, guint32 cmd);
const char *ipmi_get_completion_code(guint8 completion, ipmi_cmd_t *cmd);
-/* Sub-registrars (ipmi_*.c) */
-void ipmi_register_app(int proto);
-void ipmi_register_bridge(int proto);
-void ipmi_register_chassis(int proto);
-void ipmi_register_picmg(int proto);
-void ipmi_register_pps(int proto);
-void ipmi_register_se(int proto);
-void ipmi_register_storage(int proto);
-void ipmi_register_transport(int proto);
-void ipmi_register_update(int proto);
-void ipmi_register_vita(int proto);
+/* Used for sub-registrars (ipmi_*.c) */
+extern gint proto_ipmi;
/* Main dissection routine */
#define IPMI_D_NONE 0x0001 /* Do not parse at all */