QSIG fully implemented
[obnox/wireshark/wip.git] / epan / dissectors / packet-mtp3.h
index 6fc98014d399189cd06cb5180405e6d093c9bedb..83e93fef70be75edbbe7f7c4dcff65c6cc439ba3 100644 (file)
@@ -20,6 +20,8 @@
  * 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,
@@ -56,32 +58,47 @@ typedef struct _mtp3_tap_rec_t {
 
 #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