aboutsummaryrefslogtreecommitdiffstats
path: root/epan/dissectors/packet-usb.h
diff options
context:
space:
mode:
authorEvan Huus <eapache@gmail.com>2013-03-01 22:57:13 +0000
committerEvan Huus <eapache@gmail.com>2013-03-01 22:57:13 +0000
commit0e67f0c7a166692e72b9721b1a6abf60e1c633a7 (patch)
tree04c647674304ef0ae31f04313987ef071e5bce5d /epan/dissectors/packet-usb.h
parentea76d02cb28578c3c98fb8755ae4a66454a8495b (diff)
From Steve Magnani via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8338
Centralize logic related to per-interface conversations, and expose it for use by class-specific dissectors. Class-specific descriptor dissectors also need to know the interface in whose context they are called to work. This is a prerequisite for a USB Video Class dissector, which needs to decode many class-specific descriptors. svn path=/trunk/; revision=47990
Diffstat (limited to 'epan/dissectors/packet-usb.h')
-rw-r--r--epan/dissectors/packet-usb.h3
1 files changed, 3 insertions, 0 deletions
diff --git a/epan/dissectors/packet-usb.h b/epan/dissectors/packet-usb.h
index 549ebac904..d0b7b4e9ab 100644
--- a/epan/dissectors/packet-usb.h
+++ b/epan/dissectors/packet-usb.h
@@ -77,6 +77,7 @@ typedef struct _usb_trans_info_t {
struct _usb_conv_info_t {
guint16 interfaceClass; /* class for this conversation */
guint16 interfaceSubclass; /* Most recent interface descriptor subclass */
+ guint8 interfaceNum; /* Most recent interface number */
emem_tree_t *transactions;
usb_trans_info_t *usb_trans_info; /* pointer to the current transaction */
void *class_data; /* private class/id decode data */
@@ -174,6 +175,8 @@ typedef struct _usb_data_t {
#define ENDPOINT_TYPE_BULK 2
#define ENDPOINT_TYPE_INTERRUPT 3
+usb_conv_info_t *get_usb_iface_conv_info(packet_info *pinfo, guint8 interface_num);
+
void dissect_usb_descriptor_header(proto_tree *tree, tvbuff_t *tvb, int offset);
void dissect_usb_endpoint_address(proto_tree *tree, tvbuff_t *tvb, int offset);