diff options
Diffstat (limited to 'plugins/wimax')
-rw-r--r-- | plugins/wimax/Makefile.am | 99 | ||||
-rw-r--r-- | plugins/wimax/Makefile.common | 86 | ||||
-rw-r--r-- | plugins/wimax/Makefile.nmake | 95 | ||||
-rw-r--r-- | plugins/wimax/moduleinfo.nmake | 28 | ||||
-rw-r--r-- | plugins/wimax/packet-wmx.c | 22 | ||||
-rw-r--r-- | plugins/wimax/plugin.rc.in | 34 |
6 files changed, 308 insertions, 56 deletions
diff --git a/plugins/wimax/Makefile.am b/plugins/wimax/Makefile.am index 3bf4f0dc93..179122df4f 100644 --- a/plugins/wimax/Makefile.am +++ b/plugins/wimax/Makefile.am @@ -1,10 +1,10 @@ # Makefile.am -# Automake file for Wireshark WiMax Plugin +# Automake file for Wireshark WiMAX Plugin # # $Id$ # # Wireshark - Network traffic analyzer -# By Gerald Combs <gerald@ethereal.com> +# By Gerald Combs <gerald@wireshark.org> # Copyright 1998 Gerald Combs # # This program is free software; you can redistribute it and/or @@ -22,21 +22,23 @@ # Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # -INCLUDES = -I$(top_srcdir) +INCLUDES = -I$(top_srcdir) -I$(includedir) + +include Makefile.common + +if HAVE_WARNINGS_AS_ERRORS +AM_CFLAGS = -Werror +endif plugindir = @plugindir@ plugin_LTLIBRARIES = wimax.la -wimax_la_SOURCES = packet-wmx.c wimax_ffb_decoder.c wimax_fch_decoder.c wimax_pdu_decoder.c\ - wimax_cdma_code_decoder.c wimax_hack_decoder.c wimax_phy_attributes_decoder.c \ - mac_hd_generic_decoder.c mac_hd_type1_decoder.c mac_hd_type2_decoder.c \ - mac_mgmt_msg_decoder.c msg_dcd.c msg_ucd.c msg_dlmap.c msg_ulmap.c \ - msg_rng_req.c msg_rng_rsp.c msg_reg_req.c msg_reg_rsp.c msg_dreg.c \ - msg_dsa.c msg_dsc.c msg_dsd.c msg_arq.c msg_sbc.c msg_pkm.c msg_aas_fbck.c \ - msg_fpc.c msg_pmc.c msg_prc_lt_ctrl.c msg_aas_beam.c msg_res_cmd.c msg_rep.c \ - msg_clk_cmp.c msg_dsx_rvd.c wimax_harq_map_decoder.c \ - wimax_compact_dlmap_ie_decoder.c wimax_compact_ulmap_ie_decoder.c \ - wimax_utils.c crc.c crc_data.c wimax_tlv.c moduleinfo.h +wimax_la_SOURCES = \ + plugin.c \ + moduleinfo.h \ + $(DISSECTOR_SRC) \ + $(DISSECTOR_SUPPORT_SRC) \ + $(DISSECTOR_INCLUDES) wimax_la_LDFLAGS = -module -avoid-version wimax_la_LIBADD = @PLUGIN_LIBS@ @@ -45,12 +47,79 @@ wimax_la_LIBADD = @PLUGIN_LIBS@ # add them here. LIBS = +# +# Build plugin.c, which contains the plugin version[] string, a +# function plugin_register() that calls the register routines for all +# protocols, and a function plugin_reg_handoff() that calls the handoff +# registration routines for all protocols. +# +# We do this by scanning sources. If that turns out to be too slow, +# maybe we could just require every .o file to have an register routine +# of a given name (packet-aarp.o -> proto_register_aarp, etc.). +# +# Formatting conventions: The name of the proto_register_* routines an +# proto_reg_handoff_* routines must start in column zero, or must be +# preceded only by "void " starting in column zero, and must not be +# inside #if. +# +# DISSECTOR_SRC is assumed to have all the files that need to be scanned. +# +# For some unknown reason, having a big "for" loop in the Makefile +# to scan all the files doesn't work with some "make"s; they seem to +# pass only the first few names in the list to the shell, for some +# reason. +# +# Therefore, we have a script to generate the plugin.c file. +# The shell script runs slowly, as multiple greps and seds are run +# for each input file; this is especially slow on Windows. Therefore, +# if Python is present (as indicated by PYTHON being defined), we run +# a faster Python script to do that work instead. +# +# The first argument is the directory in which the source files live. +# The second argument is "plugin", to indicate that we should build +# a plugin.c file for a plugin. +# All subsequent arguments are the files to scan. +# +plugin.c: $(DISSECTOR_SRC) $(top_srcdir)/tools/make-dissector-reg \ + $(top_srcdir)/tools/make-dissector-reg.py + @if test -n $(PYTHON); then \ + echo Making plugin.c with python ; \ + $(PYTHON) $(top_srcdir)/tools/make-dissector-reg.py $(srcdir) \ + plugin $(DISSECTOR_SRC) ; \ + else \ + echo Making plugin.c with shell script ; \ + $(top_srcdir)/tools/make-dissector-reg $(srcdir) \ + $(plugin_src) plugin $(DISSECTOR_SRC) ; \ + fi + +# +# Currently plugin.c can be included in the distribution because +# we always build all protocol dissectors. We used to have to check +# whether or not to build the snmp dissector. If we again need to +# variably build something, making plugin.c non-portable, uncomment +# the dist-hook line below. +# +# Oh, yuk. We don't want to include "plugin.c" in the distribution, as +# its contents depend on the configuration, and therefore we want it +# to be built when the first "make" is done; however, Automake insists +# on putting *all* source into the distribution. +# +# We work around this by having a "dist-hook" rule that deletes +# "plugin.c", so that "dist" won't pick it up. +# +#dist-hook: +# @rm -f $(distdir)/plugin.c + CLEANFILES = \ wimax \ *~ MAINTAINERCLEANFILES = \ - Makefile.in + Makefile.in \ + plugin.c EXTRA_DIST = \ - Makefile.nmake + Makefile.common \ + Makefile.nmake \ + moduleinfo.nmake \ + plugin.rc.in diff --git a/plugins/wimax/Makefile.common b/plugins/wimax/Makefile.common new file mode 100644 index 0000000000..74c97f1d0f --- /dev/null +++ b/plugins/wimax/Makefile.common @@ -0,0 +1,86 @@ +# Makefile.common for WiMAX plugin +# Contains the stuff from Makefile.am and Makefile.nmake that is +# a) common to both files and +# b) portable between both files +# +# $Id$ +# +# Wireshark - Network traffic analyzer +# By Gerald Combs <gerald@wireshark.org> +# Copyright 1998 Gerald Combs +# +# This program is free software; you can redistribute it and/or +# modify it under the terms of the GNU General Public License +# as published by the Free Software Foundation; either version 2 +# of the License, or (at your option) any later version. +# +# This program is distributed in the hope that it will be useful, +# but WITHOUT ANY WARRANTY; without even the implied warranty of +# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +# GNU General Public License for more details. +# +# You should have received a copy of the GNU General Public License +# along with this program; if not, write to the Free Software +# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. + +# the name of the plugin +PLUGIN_NAME = wimax + +# the dissector sources (without any helpers) +DISSECTOR_SRC = \ + packet-wmx.c + +# corresponding headers +DISSECTOR_INCLUDES = \ + crc.h \ + wimax_bits.h \ + wimax_mac.h \ + wimax_tlv.h \ + wimax_utils.h \ + wmxtypes.h + +# 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 = \ + wimax_ffb_decoder.c \ + wimax_fch_decoder.c \ + wimax_pdu_decoder.c \ + wimax_cdma_code_decoder.c \ + wimax_hack_decoder.c \ + wimax_phy_attributes_decoder.c \ + mac_hd_generic_decoder.c \ + mac_hd_type1_decoder.c \ + mac_hd_type2_decoder.c \ + mac_mgmt_msg_decoder.c \ + msg_dcd.c \ + msg_ucd.c \ + msg_dlmap.c \ + msg_ulmap.c \ + msg_rng_req.c \ + msg_rng_rsp.c \ + msg_reg_req.c \ + msg_reg_rsp.c \ + msg_dreg.c \ + msg_dsa.c \ + msg_dsc.c \ + msg_dsd.c \ + msg_arq.c \ + msg_sbc.c \ + msg_pkm.c \ + msg_aas_fbck.c \ + msg_fpc.c \ + msg_pmc.c \ + msg_prc_lt_ctrl.c \ + msg_aas_beam.c \ + msg_res_cmd.c \ + msg_rep.c \ + msg_clk_cmp.c \ + msg_dsx_rvd.c \ + wimax_harq_map_decoder.c \ + wimax_compact_dlmap_ie_decoder.c \ + wimax_compact_ulmap_ie_decoder.c \ + wimax_utils.c \ + crc.c \ + crc_data.c \ + wimax_tlv.c diff --git a/plugins/wimax/Makefile.nmake b/plugins/wimax/Makefile.nmake index 1bf5985379..c928edd040 100644 --- a/plugins/wimax/Makefile.nmake +++ b/plugins/wimax/Makefile.nmake @@ -1,39 +1,96 @@ +# Makefile.nmake +# nmake file for Wireshark plugin # +# $Id$ # include ..\..\config.nmake -############### no need to modify below this line ######### +include moduleinfo.nmake -CFLAGS=/DHAVE_CONFIG_H /I../.. /I../../wiretap $(GLIB_CFLAGS) \ +include Makefile.common + +CFLAGS=/WX /DHAVE_CONFIG_H /I../.. /I../../wiretap $(GLIB_CFLAGS) \ /I$(PCAP_DIR)\include -D_U_="" $(LOCAL_CFLAGS) -#LDFLAGS = /NOLOGO /INCREMENTAL:no /MACHINE:I386 $(LOCAL_LDFLAGS) +LDFLAGS = /NOLOGO /INCREMENTAL:no /MACHINE:I386 $(LOCAL_LDFLAGS) !IFDEF ENABLE_LIBWIRESHARK LINK_PLUGIN_WITH=..\..\epan\libwireshark.lib CFLAGS=/DHAVE_WIN32_LIBWIRESHARK_LIB /D_NEED_VAR_IMPORT_ $(CFLAGS) -OBJECTS=packet-wmx.obj wimax_cdma_code_decoder.obj wimax_fch_decoder.obj \ - wimax_pdu_decoder.obj wimax_ffb_decoder.obj wimax_hack_decoder.obj \ - wimax_phy_attributes_decoder.obj mac_hd_generic_decoder.obj \ - mac_hd_type1_decoder.obj mac_hd_type2_decoder.obj \ - mac_mgmt_msg_decoder.obj msg_dcd.obj msg_ucd.obj msg_dlmap.obj msg_ulmap.obj \ - msg_rng_req.obj msg_rng_rsp.obj msg_reg_req.obj msg_reg_rsp.obj msg_dsa.obj \ - msg_dsc.obj msg_dsd.obj msg_arq.obj msg_sbc.obj msg_pkm.obj msg_aas_fbck.obj \ - msg_dreg.obj msg_fpc.obj msg_pmc.obj msg_prc_lt_ctrl.obj wimax_harq_map_decoder.obj \ - msg_aas_beam.obj msg_res_cmd.obj msg_rep.obj msg_clk_cmp.obj msg_dsx_rvd.obj \ - wimax_compact_dlmap_ie_decoder.obj wimax_compact_ulmap_ie_decoder.obj \ - wimax_utils.obj crc.obj crc_data.obj wimax_tlv.obj - -wimax.dll wimax.exp wimax.lib : $(OBJECTS) $(LINK_PLUGIN_WITH) - link -dll /out:wimax.dll $(LDFLAGS) $(OBJECTS) $(LINK_PLUGIN_WITH) \ - $(GLIB_LIBS) +DISSECTOR_OBJECTS = $(DISSECTOR_SRC:.c=.obj) + +DISSECTOR_SUPPORT_OBJECTS = $(DISSECTOR_SUPPORT_SRC:.c=.obj) + +OBJECTS = $(DISSECTOR_OBJECTS) $(DISSECTOR_SUPPORT_OBJECTS) plugin.obj + +RESOURCE=$(PLUGIN_NAME).res + +all: $(PLUGIN_NAME).dll + +$(PLUGIN_NAME).rc : moduleinfo.nmake + sed -e s/@PLUGIN_NAME@/$(PLUGIN_NAME)/ \ + -e s/@RC_MODULE_VERSION@/$(RC_MODULE_VERSION)/ \ + -e s/@RC_VERSION@/$(RC_VERSION)/ \ + -e s/@MODULE_VERSION@/$(MODULE_VERSION)/ \ + -e s/@PACKAGE@/$(PACKAGE)/ \ + -e s/@VERSION@/$(VERSION)/ \ + -e s/@MSVC_VARIANT@/$(MSVC_VARIANT)/ \ + < plugin.rc.in > $@ + +$(PLUGIN_NAME).dll $(PLUGIN_NAME).exp $(PLUGIN_NAME).lib : $(OBJECTS) $(LINK_PLUGIN_WITH) $(RESOURCE) + link -dll /out:$(PLUGIN_NAME).dll $(LDFLAGS) $(OBJECTS) $(LINK_PLUGIN_WITH) \ + $(GLIB_LIBS) $(RESOURCE) + +# +# Build plugin.c, which contains the plugin version[] string, a +# function plugin_register() that calls the register routines for all +# protocols, and a function plugin_reg_handoff() that calls the handoff +# registration routines for all protocols. +# +# We do this by scanning sources. If that turns out to be too slow, +# maybe we could just require every .o file to have an register routine +# of a given name (packet-aarp.o -> proto_register_aarp, etc.). +# +# Formatting conventions: The name of the proto_register_* routines an +# proto_reg_handoff_* routines must start in column zero, or must be +# preceded only by "void " starting in column zero, and must not be +# inside #if. +# +# DISSECTOR_SRC is assumed to have all the files that need to be scanned. +# +# For some unknown reason, having a big "for" loop in the Makefile +# to scan all the files doesn't work with some "make"s; they seem to +# pass only the first few names in the list to the shell, for some +# reason. +# +# Therefore, we have a script to generate the plugin.c file. +# The shell script runs slowly, as multiple greps and seds are run +# for each input file; this is especially slow on Windows. Therefore, +# if Python is present (as indicated by PYTHON being defined), we run +# a faster Python script to do that work instead. +# +# The first argument is the directory in which the source files live. +# The second argument is "plugin", to indicate that we should build +# a plugin.c file for a plugin. +# All subsequent arguments are the files to scan. +# +plugin.c: $(DISSECTOR_SRC) ../../tools/make-dissector-reg.py ../../tools/make-dissector-reg +!IFDEF PYTHON + @echo Making plugin.c (using python) + @$(PYTHON) "../../tools/make-dissector-reg.py" . plugin $(DISSECTOR_SRC) +!ELSE + @echo Making plugin.c (using sh) + @$(SH) ../../tools/make-dissector-reg . plugin $(DISSECTOR_SRC) +!ENDIF !ENDIF clean: - rm -f $(OBJECTS) wimax.dll wimax.exp wimax.lib $(PDB_FILE) + rm -f $(OBJECTS) $(RESOURCE) plugin.c *.pdb \ + $(PLUGIN_NAME).dll $(PLUGIN_NAME).dll.manifest $(PLUGIN_NAME).lib \ + $(PLUGIN_NAME).exp $(PLUGIN_NAME).rc distclean: clean diff --git a/plugins/wimax/moduleinfo.nmake b/plugins/wimax/moduleinfo.nmake new file mode 100644 index 0000000000..5003cd4930 --- /dev/null +++ b/plugins/wimax/moduleinfo.nmake @@ -0,0 +1,28 @@ +# +# $Id$ +# + +# The name +PACKAGE=m2m + +# The version +MODULE_VERSION_MAJOR=0 +MODULE_VERSION_MINOR=0 +MODULE_VERSION_MICRO=1 +MODULE_VERSION_EXTRA=0 + +# +# The RC_VERSION should be comma-separated, not dot-separated, +# as per Graham Bloice's message in +# +# http://www.ethereal.com/lists/ethereal-dev/200303/msg00283.html +# +# "The RC_VERSION variable in config.nmake should be comma separated. +# This allows the resources to be built correctly and the version +# number to be correctly displayed in the explorer properties dialog +# for the executables, and XP's tooltip, rather than 0.0.0.0." +# + +MODULE_VERSION=$(MODULE_VERSION_MAJOR).$(MODULE_VERSION_MINOR).$(MODULE_VERSION_MICRO).$(MODULE_VERSION_EXTRA) +RC_MODULE_VERSION=$(MODULE_VERSION_MAJOR),$(MODULE_VERSION_MINOR),$(MODULE_VERSION_MICRO),$(MODULE_VERSION_EXTRA) + diff --git a/plugins/wimax/packet-wmx.c b/plugins/wimax/packet-wmx.c index cb2c218d8e..7cac119a02 100644 --- a/plugins/wimax/packet-wmx.c +++ b/plugins/wimax/packet-wmx.c @@ -44,11 +44,6 @@ #include "wimax_tlv.h" #include "wimax_bits.h" -/* Define version if we are not building Wireshark statically */ -#ifndef ENABLE_STATIC -G_MODULE_EXPORT const gchar version[] = VERSION; -#endif - /* WiMax dissector function prototypes */ extern void proto_register_wimax_cdma(void); extern void proto_register_wimax_fch(void); @@ -811,23 +806,6 @@ proto_tree *add_protocol_subtree(tlv_info_t *this, gint idx, proto_tree *tree, i } -#ifndef ENABLE_STATIC -/* for plugins only */ -G_MODULE_EXPORT void plugin_register(void) -{ - /* register the new protocol, protocol fields, and subtrees */ - if (proto_wimax == -1) - { /* execute protocol initialization only once */ - proto_register_wimax(); - } -} - -G_MODULE_EXPORT void plugin_reg_handoff(void) -{ - proto_reg_wimax(); -} -#endif - /* Register Wimax Protocol */ void proto_register_wimax(void) { diff --git a/plugins/wimax/plugin.rc.in b/plugins/wimax/plugin.rc.in new file mode 100644 index 0000000000..db611e1cc8 --- /dev/null +++ b/plugins/wimax/plugin.rc.in @@ -0,0 +1,34 @@ +#include "winver.h" + +VS_VERSION_INFO VERSIONINFO + FILEVERSION @RC_MODULE_VERSION@ + PRODUCTVERSION @RC_VERSION@,0 + FILEFLAGSMASK 0x0L +#ifdef _DEBUG + FILEFLAGS VS_FF_PRERELEASE+VS_FF_DEBUG +#else + FILEFLAGS VS_FF_PRERELEASE +#endif + FILEOS VOS_NT_WINDOWS32 + FILETYPE VFT_DLL +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", "Intel Corporation\0" + VALUE "FileDescription", "@PACKAGE@ dissector\0" + VALUE "FileVersion", "@MODULE_VERSION@\0" + VALUE "InternalName", "@PACKAGE@ @MODULE_VERSION@\0" + VALUE "LegalCopyright", "Copyright © 1998 Gerald Combs <gerald@wireshark.org>, Gilbert Ramirez <gram@alumni.rice.edu> and others\0" + VALUE "OriginalFilename", "@PLUGIN_NAME@.dll\0" + VALUE "ProductName", "Wireshark\0" + VALUE "ProductVersion", "@VERSION@\0" + VALUE "Comments", "Build with @MSVC_VARIANT@\0" + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END |