* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
+#ifndef __PACKET_MTP3_H_
+#define __PACKET_MTP3_H_
typedef enum {
ITU_STANDARD = 1,
#define ANSI_PC_LENGTH 3
#define ANSI_NCM_LENGTH 1
-#define ANSI_MEMBER_OFFSET 0
-#define ANSI_CLUSTER_OFFSET 1
#define ANSI_NETWORK_OFFSET 2
+#define ANSI_CLUSTER_OFFSET 1
+#define ANSI_MEMBER_OFFSET 0
#define ANSI_PC_MASK 0xFFFFFF
-#define ANSI_NETWORK_MASK 0x0000FF
+#define ANSI_NETWORK_MASK 0xFF0000
#define ANSI_CLUSTER_MASK 0x00FF00
-#define ANSI_MEMBER_MASK 0xFF0000
+#define ANSI_MEMBER_MASK 0x0000FF
#define ANSI_PC_STRING_LENGTH 16
#define JAPAN_PC_LENGTH 2
#define JAPAN_PC_MASK 0xffff
-extern void mtp3_addr_to_str_buf(const guint8 *data, gchar *buf, int buf_len);
+extern void mtp3_addr_to_str_buf(const mtp3_addr_pc_t *addr_pc_p, gchar *buf, int buf_len);
extern void mtp3_pc_to_str_buf(const guint32 pc, gchar *buf, int buf_len);
extern gchar* mtp3_pc_to_str(const guint32 pc);
extern gboolean mtp3_pc_structured(void);
-extern guint32 mtp3_pc_hash(const guint8* data);
+extern guint32 mtp3_pc_hash(const mtp3_addr_pc_t *addr_pc_p);
+
+#ifdef __PROTO_H__
+/* epan/to_str.c includes this file, but it does not include proto.h so
+ * it doesn't know about things like proto_tree. This function is not
+ * needed by to_str.c, so just don't prototype it there (or anywhere
+ * without proto.h).
+ */
+extern void dissect_mtp3_3byte_pc(tvbuff_t *tvb, guint offset,
+ proto_tree *tree, gint ett_pc,
+ int hf_pc, int hf_pc_network,
+ int hf_pc_cluster, int hf_pc_member,
+ int hf_dpc, int pc);
+#endif
/*
* the following allows TAP code access to the messages
* without having to duplicate it. With MSVC and a
* libwireshark.dll, we need a special declaration.
*/
-ETH_VAR_IMPORT const value_string mtp3_service_indicator_code_short_vals[];
+WS_VAR_IMPORT const value_string mtp3_service_indicator_code_short_vals[];
/*
* I only want to gather stats for non-spare SI codes
*/
#define MTP3_NUM_SI_CODE 9
+
+#endif