+ for( int j = 0; j < desc.NumInterfaces; j ++ )
+ {
+ struct sDescriptor_Interface *iface;
+ iface = (void*)cur_ptr;
+ // TODO: Sanity check with remaining space
+ cur_ptr += sizeof(*iface);
+
+ LOG("Interface %i/%i = {");
+ LOG(" .InterfaceNum = %i", iface->InterfaceNum);
+ LOG(" .NumEndpoints = %i", iface->NumEndpoints);
+ LOG(" .InterfaceClass = 0x%x", iface->InterfaceClass);
+ LOG(" .InterfaceSubClass = 0x%x", iface->InterfaceSubClass);
+ LOG(" .InterfaceProcol = 0x%x", iface->InterfaceProtocol);
+
+ if( iface->InterfaceStr ) {
+ char *tmp = USB_int_GetDeviceString(dev, 0, iface->InterfaceStr);
+ LOG(" .InterfaceStr = %i '%s'", iface->InterfaceStr, tmp);
+ free(tmp);
+ }
+ LOG("}");
+
+ for( int k = 0; k < iface->NumEndpoints; k ++ )
+ {
+ struct sDescriptor_Endpoint *endpt;
+ endpt = (void*)cur_ptr;
+ // TODO: Sanity check with remaining space
+ cur_ptr += sizeof(*endpt);
+
+
+ }
+ }
+
+ free(full_buf);