This is the structure being returned: struct usbmon_packet { u64 id; /* 0: URB ID - from submission to callback */ unsigned char type; /* 8: Same as text; extensible. */ unsigned char xfer_type; /* ISO (0), Intr, Control, Bulk (3) */ unsigned char epnum; /* Endpoint number and transfer direction */ unsigned char devnum; /* Device address */ u16 busnum; /* 12: Bus number */ char flag_setup; /* 14: Same as text */ char flag_data; /* 15: Same as text; Binary zero is OK. */ s64 ts_sec; /* 16: gettimeofday */ s32 ts_usec; /* 24: gettimeofday */ int status; /* 28: */ unsigned int length; /* 32: Length of data (submitted or actual) */ unsigned int len_cap; /* 36: Delivered length */ unsigned char setup[8]; /* 40: Only for Control 'S' */ }; /* 48 bytes total */
I'm not too keen on using an ASCII 'S' in the setup field to tell whether setup[8] is in use or not. Am I correct in thinking that setup[8] is always active on an URB submission and never active on a completion or error? If that is the case then the flag_setup field is redundant with the type field and can be eliminated. I would then make the setup[8] presence variable depending on the packet type. I also think flag_data is redundant based on the packet type, but I'm not sure yet. status looks to be active only on an error completion so the field could be a union with setup[8]. The protocol can be further compressed by not including these fields: xfer_type, epnum, devnum, busnum in completion/error packets. I already have to track the URB submissions in order to decode the protocol so I have these fields from the submission packet and they can't change assuming that I'm understanding everything correctly. -- Jon Smirl [EMAIL PROTECTED] ------------------------------------------------------------------------- Take Surveys. Earn Cash. Influence the Future of IT Join SourceForge.net's Techsay panel and you'll get the chance to share your opinions on IT & business topics through brief surveys-and earn cash http://www.techsay.com/default.php?page=join.php&p=sourceforge&CID=DEVDEV _______________________________________________ linux-usb-devel@lists.sourceforge.net To unsubscribe, use the last form field at: https://lists.sourceforge.net/lists/listinfo/linux-usb-devel