reorganise usb_core.c a bit, to make the code more readable and more maintainable...