diff options
author | Evan Huus <eapache@gmail.com> | 2013-07-31 01:06:50 +0000 |
---|---|---|
committer | Evan Huus <eapache@gmail.com> | 2013-07-31 01:06:50 +0000 |
commit | bc7c14a2a17170db658046d4f2c7677907f44c02 (patch) | |
tree | b2b98c108633b041b118d522da416fd1a54332e3 /epan/dissectors | |
parent | 9bb17b7b2b62c56349f7893f6db4bec0b71fc9c8 (diff) |
Convert the USB dissectors to wmem.
svn path=/trunk/; revision=51042
Diffstat (limited to 'epan/dissectors')
-rw-r--r-- | epan/dissectors/packet-usb-audio.c | 1 | ||||
-rw-r--r-- | epan/dissectors/packet-usb-masstorage.c | 32 | ||||
-rw-r--r-- | epan/dissectors/packet-usb-video.c | 17 | ||||
-rw-r--r-- | epan/dissectors/packet-usb.c | 54 | ||||
-rw-r--r-- | epan/dissectors/packet-usb.h | 4 |
5 files changed, 54 insertions, 54 deletions
diff --git a/epan/dissectors/packet-usb-audio.c b/epan/dissectors/packet-usb-audio.c index aa3b03e58a..9f2ad126ed 100644 --- a/epan/dissectors/packet-usb-audio.c +++ b/epan/dissectors/packet-usb-audio.c @@ -24,7 +24,6 @@ #include <glib.h> #include <epan/conversation.h> -#include <epan/emem.h> #include <epan/expert.h> #include <epan/packet.h> #include <epan/reassemble.h> diff --git a/epan/dissectors/packet-usb-masstorage.c b/epan/dissectors/packet-usb-masstorage.c index 72ba258da0..9df6ecda6a 100644 --- a/epan/dissectors/packet-usb-masstorage.c +++ b/epan/dissectors/packet-usb-masstorage.c @@ -25,7 +25,7 @@ #include <glib.h> #include <epan/packet.h> -#include <epan/emem.h> +#include <epan/wmem/wmem.h> #include <epan/conversation.h> #include "packet-usb.h" #include "packet-scsi.h" @@ -52,8 +52,8 @@ static gint ett_usb_ms = -1; /* there is one such structure for each masstorage conversation */ typedef struct _usb_ms_conv_info_t { - emem_tree_t *itl; /* indexed by LUN */ - emem_tree_t *itlq; /* pinfo->fd->num */ + wmem_tree_t *itl; /* indexed by LUN */ + wmem_tree_t *itlq; /* pinfo->fd->num */ } usb_ms_conv_info_t; @@ -192,9 +192,9 @@ dissect_usb_ms_bulk(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) /* verify that we do have a usb_ms_conv_info */ usb_ms_conv_info=(usb_ms_conv_info_t *)usb_conv_info->class_data; if(!usb_ms_conv_info){ - usb_ms_conv_info=se_new(usb_ms_conv_info_t); - usb_ms_conv_info->itl=se_tree_create_non_persistent(EMEM_TREE_TYPE_RED_BLACK, "USB ITL"); - usb_ms_conv_info->itlq=se_tree_create_non_persistent(EMEM_TREE_TYPE_RED_BLACK, "USB ITLQ"); + usb_ms_conv_info=wmem_new(wmem_file_scope(), usb_ms_conv_info_t); + usb_ms_conv_info->itl=wmem_tree_new(wmem_file_scope()); + usb_ms_conv_info->itlq=wmem_tree_new(wmem_file_scope()); usb_conv_info->class_data=usb_ms_conv_info; } @@ -249,18 +249,18 @@ dissect_usb_ms_bulk(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) offset+=1; /* make sure we have a ITL structure for this LUN */ - itl=(itl_nexus_t *)se_tree_lookup32(usb_ms_conv_info->itl, lun); + itl=(itl_nexus_t *)wmem_tree_lookup32(usb_ms_conv_info->itl, lun); if(!itl){ - itl=se_new(itl_nexus_t); + itl=wmem_new(wmem_file_scope(), itl_nexus_t); itl->cmdset=0xff; itl->conversation=NULL; - se_tree_insert32(usb_ms_conv_info->itl, lun, itl); + wmem_tree_insert32(usb_ms_conv_info->itl, lun, itl); } /* make sure we have an ITLQ structure for this LUN/transaction */ - itlq=(itlq_nexus_t *)se_tree_lookup32(usb_ms_conv_info->itlq, pinfo->fd->num); + itlq=(itlq_nexus_t *)wmem_tree_lookup32(usb_ms_conv_info->itlq, pinfo->fd->num); if(!itlq){ - itlq=se_new(itlq_nexus_t); + itlq=wmem_new(wmem_file_scope(), itlq_nexus_t); itlq->lun=lun; itlq->scsi_opcode=0xffff; itlq->task_flags=0; @@ -279,7 +279,7 @@ dissect_usb_ms_bulk(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) itlq->flags=0; itlq->alloc_len=0; itlq->extra_data=NULL; - se_tree_insert32(usb_ms_conv_info->itlq, pinfo->fd->num, itlq); + wmem_tree_insert32(usb_ms_conv_info->itlq, pinfo->fd->num, itlq); } /* dCBWCBLength */ @@ -322,13 +322,13 @@ dissect_usb_ms_bulk(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) status=tvb_get_guint8(tvb, offset); /*offset+=1;*/ - itlq=(itlq_nexus_t *)se_tree_lookup32_le(usb_ms_conv_info->itlq, pinfo->fd->num); + itlq=(itlq_nexus_t *)wmem_tree_lookup32_le(usb_ms_conv_info->itlq, pinfo->fd->num); if(!itlq){ return; } itlq->last_exchange_frame=pinfo->fd->num; - itl=(itl_nexus_t *)se_tree_lookup32(usb_ms_conv_info->itl, itlq->lun); + itl=(itl_nexus_t *)wmem_tree_lookup32(usb_ms_conv_info->itl, itlq->lun); if(!itl){ return; } @@ -345,12 +345,12 @@ dissect_usb_ms_bulk(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent_tree) /* * Ok it was neither CDB not STATUS so just assume it is either data in/out */ - itlq=(itlq_nexus_t *)se_tree_lookup32_le(usb_ms_conv_info->itlq, pinfo->fd->num); + itlq=(itlq_nexus_t *)wmem_tree_lookup32_le(usb_ms_conv_info->itlq, pinfo->fd->num); if(!itlq){ return; } - itl=(itl_nexus_t *)se_tree_lookup32(usb_ms_conv_info->itl, itlq->lun); + itl=(itl_nexus_t *)wmem_tree_lookup32(usb_ms_conv_info->itl, itlq->lun); if(!itl){ return; } diff --git a/epan/dissectors/packet-usb-video.c b/epan/dissectors/packet-usb-video.c index 5f8d2913a6..3012fb689d 100644 --- a/epan/dissectors/packet-usb-video.c +++ b/epan/dissectors/packet-usb-video.c @@ -28,7 +28,7 @@ #include <glib.h> #include <epan/expert.h> #include <epan/packet.h> -#include <epan/emem.h> +#include <epan/wmem/wmem.h> #include <epan/conversation.h> #include "packet-usb.h" @@ -648,7 +648,7 @@ typedef struct /* video_entity_t's (units/terminals) associated with each video interface */ /* There is one such structure for each video conversation (interface) */ typedef struct _video_conv_info_t { - emem_tree_t* entities; /* indexed by entity ID */ + wmem_tree_t* entities; /* indexed by entity ID */ } video_conv_info_t; /*****************************************************************************/ @@ -1025,21 +1025,20 @@ dissect_usb_video_control_interface_descriptor(proto_tree *parent_tree, tvbuff_t if (!video_conv_info) { - video_conv_info = se_new(video_conv_info_t); - video_conv_info->entities = se_tree_create_non_persistent(EMEM_TREE_TYPE_RED_BLACK, - "USBVIDEO Entities"); + video_conv_info = wmem_new(wmem_file_scope(), video_conv_info_t); + video_conv_info->entities = wmem_tree_new(wmem_file_scope()); usb_conv_info->class_data = video_conv_info; } - entity = (video_entity_t*) se_tree_lookup32(video_conv_info->entities, entity_id); + entity = (video_entity_t*) wmem_tree_lookup32(video_conv_info->entities, entity_id); if (!entity) { - entity = se_new(video_entity_t); + entity = wmem_new(wmem_file_scope(), video_entity_t); entity->entityID = entity_id; entity->subtype = subtype; entity->terminalType = terminal_type; - se_tree_insert32(video_conv_info->entities, entity_id, entity); + wmem_tree_insert32(video_conv_info->entities, entity_id, entity); } } @@ -1606,7 +1605,7 @@ get_control_selector_values(guint8 entity_id, usb_conv_info_t *usb_conv_info) video_conv_info = (video_conv_info_t *)usb_conv_info->class_data; if (video_conv_info) - entity = (video_entity_t*) se_tree_lookup32(video_conv_info->entities, entity_id); + entity = (video_entity_t*) wmem_tree_lookup32(video_conv_info->entities, entity_id); if (entity_id == 0) { diff --git a/epan/dissectors/packet-usb.c b/epan/dissectors/packet-usb.c index 10e8955fd3..0da56e3b85 100644 --- a/epan/dissectors/packet-usb.c +++ b/epan/dissectors/packet-usb.c @@ -33,7 +33,7 @@ #include <epan/packet.h> #include <epan/etypes.h> #include <epan/addr_resolv.h> -#include <epan/emem.h> +#include <epan/wmem/wmem.h> #include <epan/tap.h> #include <epan/conversation.h> #include <epan/expert.h> @@ -207,8 +207,8 @@ static heur_dissector_list_t heur_bulk_subdissector_list; static heur_dissector_list_t heur_control_subdissector_list; static heur_dissector_list_t heur_interrupt_subdissector_list; -static emem_tree_t *device_to_protocol_table = NULL; -static emem_tree_t *device_to_product_table = NULL; +static wmem_tree_t *device_to_protocol_table = NULL; +static wmem_tree_t *device_to_product_table = NULL; static dissector_table_t device_to_dissector; static dissector_table_t protocol_to_dissector; @@ -1002,13 +1002,13 @@ get_usb_conv_info(conversation_t *conversation) usb_conv_info = (usb_conv_info_t *)conversation_get_proto_data(conversation, proto_usb); if (!usb_conv_info) { /* no not yet so create some */ - usb_conv_info = se_new0(usb_conv_info_t); + usb_conv_info = wmem_new0(wmem_file_scope(), usb_conv_info_t); usb_conv_info->interfaceClass = IF_CLASS_UNKNOWN; usb_conv_info->interfaceSubclass = IF_SUBCLASS_UNKNOWN; usb_conv_info->interfaceProtocol = IF_PROTOCOL_UNKNOWN; usb_conv_info->deviceVendor = DEV_VENDOR_UNKNOWN; usb_conv_info->deviceProduct = DEV_PRODUCT_UNKNOWN; - usb_conv_info->transactions = se_tree_create_non_persistent(EMEM_TREE_TYPE_RED_BLACK, "usb transactions"); + usb_conv_info->transactions = wmem_tree_new(wmem_file_scope()); conversation_add_proto_data(conversation, proto_usb, usb_conv_info); } @@ -1191,7 +1191,7 @@ dissect_usb_device_qualifier_descriptor(packet_info *pinfo _U_, proto_tree *pare guint k_bus_id; guint k_device_address; guint k_frame_number; - emem_tree_key_t key[4]; + wmem_tree_key_t key[4]; device_protocol_data_t *device_protocol_data; k_frame_number = pinfo->fd->num; @@ -1207,11 +1207,11 @@ dissect_usb_device_qualifier_descriptor(packet_info *pinfo _U_, proto_tree *pare key[3].length = 0; key[3].key = NULL; - device_protocol_data = se_new(device_protocol_data_t); + device_protocol_data = wmem_new(wmem_file_scope(), device_protocol_data_t); device_protocol_data->protocol = protocol; device_protocol_data->bus_id = bus_id; device_protocol_data->device_address = device_address; - se_tree_insert32_array(device_to_protocol_table, key, device_protocol_data); + wmem_tree_insert32_array(device_to_protocol_table, key, device_protocol_data); } /* bMaxPacketSize0 */ @@ -1302,7 +1302,7 @@ dissect_usb_device_descriptor(packet_info *pinfo, proto_tree *parent_tree, hfi = proto_registrar_get_nth(hf_usb_idProduct); field_description_length = (gint)strlen(hfi->name) + 14; - field_description = (guint8 *)ep_alloc(field_description_length); + field_description = (guint8 *)wmem_alloc(wmem_packet_scope(), field_description_length); g_strlcpy(field_description, hfi->name, field_description_length); g_strlcat(field_description, ": %s (0x%04x)", field_description_length); @@ -1315,7 +1315,7 @@ dissect_usb_device_descriptor(packet_info *pinfo, proto_tree *parent_tree, guint k_bus_id; guint k_device_address; guint k_frame_number; - emem_tree_key_t key[4]; + wmem_tree_key_t key[4]; device_product_data_t *device_product_data; device_protocol_data_t *device_protocol_data; @@ -1332,19 +1332,19 @@ dissect_usb_device_descriptor(packet_info *pinfo, proto_tree *parent_tree, key[3].length = 0; key[3].key = NULL; - device_product_data = se_new(device_product_data_t); + device_product_data = wmem_new(wmem_file_scope(), device_product_data_t); device_product_data->vendor = vendor_id; device_product_data->product = product_id; device_product_data->bus_id = bus_id; device_product_data->device_address = device_address; - se_tree_insert32_array(device_to_product_table, key, device_product_data); + wmem_tree_insert32_array(device_to_product_table, key, device_product_data); - device_protocol_data = se_new(device_protocol_data_t); + device_protocol_data = wmem_new(wmem_file_scope(), device_protocol_data_t); device_protocol_data->protocol = protocol; device_protocol_data->bus_id = bus_id; device_protocol_data->device_address = device_address; - se_tree_insert32_array(device_to_protocol_table, key, device_protocol_data); + wmem_tree_insert32_array(device_to_protocol_table, key, device_protocol_data); } /* bcdDevice */ @@ -2613,7 +2613,7 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, return; } - usb_data = se_new(usb_data_t); + usb_data = wmem_new(wmem_file_scope(), usb_data_t); usb_data->bus_id = bus_id; usb_data->device_address = device_address; usb_data->endpoint = endpoint; @@ -2659,14 +2659,14 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, */ if (is_request) { /* this is a request */ - usb_trans_info = (usb_trans_info_t *)se_tree_lookup32(usb_conv_info->transactions, pinfo->fd->num); + usb_trans_info = (usb_trans_info_t *)wmem_tree_lookup32(usb_conv_info->transactions, pinfo->fd->num); if (!usb_trans_info) { - usb_trans_info = se_new0(usb_trans_info_t); + usb_trans_info = wmem_new0(wmem_file_scope(), usb_trans_info_t); usb_trans_info->request_in = pinfo->fd->num; usb_trans_info->req_time = pinfo->fd->abs_ts; usb_trans_info->header_len_64 = (header_info & USB_HEADER_IS_64_BYTES) ? TRUE : FALSE; - se_tree_insert32(usb_conv_info->transactions, pinfo->fd->num, usb_trans_info); + wmem_tree_insert32(usb_conv_info->transactions, pinfo->fd->num, usb_trans_info); } usb_conv_info->usb_trans_info = usb_trans_info; @@ -2679,12 +2679,12 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, } else { /* this is a response */ if (pinfo->fd->flags.visited) { - usb_trans_info = (usb_trans_info_t *)se_tree_lookup32(usb_conv_info->transactions, pinfo->fd->num); + usb_trans_info = (usb_trans_info_t *)wmem_tree_lookup32(usb_conv_info->transactions, pinfo->fd->num); } else { - usb_trans_info = (usb_trans_info_t *)se_tree_lookup32_le(usb_conv_info->transactions, pinfo->fd->num); + usb_trans_info = (usb_trans_info_t *)wmem_tree_lookup32_le(usb_conv_info->transactions, pinfo->fd->num); if (usb_trans_info) { usb_trans_info->response_in = pinfo->fd->num; - se_tree_insert32(usb_conv_info->transactions, pinfo->fd->num, usb_trans_info); + wmem_tree_insert32(usb_conv_info->transactions, pinfo->fd->num, usb_trans_info); } } usb_conv_info->usb_trans_info = usb_trans_info; @@ -2703,7 +2703,7 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, } } - tap_data = ep_new(usb_tap_data_t); + tap_data = wmem_new(wmem_packet_scope(), usb_tap_data_t); tap_data->urb_type = urb_type; tap_data->transfer_type = (guint8)type; tap_data->conv_info = usb_conv_info; @@ -3295,7 +3295,7 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, next_tvb = tvb_new_subset_remaining(tvb, offset); if (!dissector_try_uint(device_to_dissector, (guint32) (bus_id << 8 | device_address), next_tvb, pinfo, parent)) { - emem_tree_key_t key[4]; + wmem_tree_key_t key[4]; guint32 k_frame_number; guint32 k_device_address; guint32 k_bus_id; @@ -3314,7 +3314,7 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, key[3].length = 0; key[3].key = NULL; - device_protocol_data = (device_protocol_data_t *)se_tree_lookup32_array_le(device_to_protocol_table, key); + device_protocol_data = (device_protocol_data_t *)wmem_tree_lookup32_array_le(device_to_protocol_table, key); if (device_protocol_data && device_protocol_data->bus_id == bus_id && device_protocol_data->device_address == device_address && dissector_try_uint(protocol_to_dissector, (guint32) device_protocol_data->protocol, next_tvb, pinfo, parent)) { @@ -3322,7 +3322,7 @@ dissect_usb_common(tvbuff_t *tvb, packet_info *pinfo, proto_tree *parent, } else { device_product_data_t *device_product_data; - device_product_data = (device_product_data_t *)se_tree_lookup32_array_le(device_to_product_table, key); + device_product_data = (device_product_data_t *)wmem_tree_lookup32_array_le(device_to_product_table, key); if (device_product_data && device_product_data->bus_id == bus_id && device_product_data->device_address == device_address && dissector_try_uint(product_to_dissector, (guint32) (device_product_data->vendor << 16 | device_product_data->product), next_tvb, pinfo, parent)) { @@ -3932,8 +3932,8 @@ proto_register_usb(void) expert_usb = expert_register_protocol(proto_usb); expert_register_field_array(expert_usb, ei, array_length(ei)); - device_to_product_table = se_tree_create(EMEM_TREE_TYPE_RED_BLACK, "usb device_address, bus_id and frame number to vendor_product"); - device_to_protocol_table = se_tree_create(EMEM_TREE_TYPE_RED_BLACK, "usb device_address, bus_id and frame number to class_subclass_protocol"); + device_to_product_table = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope()); + device_to_protocol_table = wmem_tree_new_autoreset(wmem_epan_scope(), wmem_file_scope()); device_to_dissector = register_dissector_table("usb.device", "USB device", FT_UINT32, BASE_HEX); protocol_to_dissector = register_dissector_table("usb.protocol", "USB protocol", FT_UINT32, BASE_HEX); product_to_dissector = register_dissector_table("usb.product", "USB product", FT_UINT32, BASE_HEX); diff --git a/epan/dissectors/packet-usb.h b/epan/dissectors/packet-usb.h index cd5c66ad6a..20a75d578e 100644 --- a/epan/dissectors/packet-usb.h +++ b/epan/dissectors/packet-usb.h @@ -24,6 +24,8 @@ #ifndef __PACKET_USB_H__ #define __PACKET_USB_H__ +#include <epan/wmem/wmem.h> + typedef struct _usb_address_t { guint32 device; guint32 endpoint; @@ -82,7 +84,7 @@ struct _usb_conv_info_t { guint8 interfaceNum; /* Most recent interface number */ guint16 deviceVendor; /* Device Descriptor - USB Vendor ID */ guint32 deviceProduct; /* Device Descriptor - USB Product ID - MSBs only for encoding unknown */ - emem_tree_t *transactions; + wmem_tree_t *transactions; usb_trans_info_t *usb_trans_info; /* pointer to the current transaction */ void *class_data; /* private class/id decode data */ }; |