aboutsummaryrefslogtreecommitdiffstats
path: root/plugins
diff options
context:
space:
mode:
authorUlf Lamping <ulf.lamping@web.de>2007-07-31 18:57:51 +0000
committerUlf Lamping <ulf.lamping@web.de>2007-07-31 18:57:51 +0000
commit6970aff017a48c1c50385aa7e3aed6eb45d77d8f (patch)
treec3621643078d057d79632d29557a04b87f02a04a /plugins
parent0a5437dc33f7f276a8e7c726ade2dc38ef38fb43 (diff)
add helper function dissect_pn_int32()
svn path=/trunk/; revision=22431
Diffstat (limited to 'plugins')
-rw-r--r--plugins/profinet/packet-pn.c17
-rw-r--r--plugins/profinet/packet-pn.h3
2 files changed, 20 insertions, 0 deletions
diff --git a/plugins/profinet/packet-pn.c b/plugins/profinet/packet-pn.c
index f37d505e0a..856e8ab43c 100644
--- a/plugins/profinet/packet-pn.c
+++ b/plugins/profinet/packet-pn.c
@@ -117,6 +117,23 @@ dissect_pn_int16(tvbuff_t *tvb, gint offset, packet_info *pinfo _U_,
return offset + 2;
}
+/* dissect a 32 bit signed integer */
+int
+dissect_pn_int32(tvbuff_t *tvb, gint offset, packet_info *pinfo _U_,
+ proto_tree *tree, int hfindex, gint32 *pdata)
+{
+ gint32 data;
+
+ data = tvb_get_ntohl (tvb, offset);
+
+ if (tree) {
+ proto_tree_add_int(tree, hfindex, tvb, offset, 4, data);
+ }
+ if (pdata)
+ *pdata = data;
+ return offset + 4;
+}
+
/* dissect a 24bit OUI (IEC organizational unique id) */
int
dissect_pn_oid(tvbuff_t *tvb, int offset, packet_info *pinfo _U_,
diff --git a/plugins/profinet/packet-pn.h b/plugins/profinet/packet-pn.h
index 3e7c23cb03..5a23e7a498 100644
--- a/plugins/profinet/packet-pn.h
+++ b/plugins/profinet/packet-pn.h
@@ -42,6 +42,9 @@ extern int dissect_pn_uint32(tvbuff_t *tvb, gint offset, packet_info *pinfo,
extern int dissect_pn_int16(tvbuff_t *tvb, gint offset, packet_info *pinfo,
proto_tree *tree, int hfindex, gint16 *pdata);
+extern int dissect_pn_int32(tvbuff_t *tvb, gint offset, packet_info *pinfo,
+ proto_tree *tree, int hfindex, gint32 *pdata);
+
extern int dissect_pn_oid(tvbuff_t *tvb, int offset, packet_info *pinfo,
proto_tree *tree, int hfindex, guint32 *pdata);