Attempt #2:
I have changed the basic concept from byte view to data source. I
think this is a better indication of the concept that there are
multiple data items. The current changes that I plan -
1) Modified the tvbuff struct to add the ds_name -
#define DS_NAME_LEN 64
gchar ds_name[ DS_NAME_LEN];
2) The tvb_new_real_data function is changed to add a ds_name field
tvbuff_t*
tvb_new_real_data( const guint8* data, guint length,
gint reported_length, const gchar* ds_name);
3) The tvb_new_subset function has been changed to copy the ds_name.
4) Add a function to extract the ds_name pointer
gchar*
tvb_get_name( tvbuff_t* tvb);
5) Add a ds_name field to the field_info struct
gchar ds_name[ DS_NAME_LEN];
6) Modified the frame_data struct to hold the data source list. I used
the frame_data struct because it is stored in the clist data pointer.
The display code can access this list to create the byte view tabs.
GSList *data_src;
I have considered GSList, and GPtrArray. I don't know which is
best.
7) Change dissect_packet to create the tvbuff with the name "raw".
Your feedback is welcome. I will post more information as the work
progresses.
Jeff Foster.