Patent ID: 8239585

Claim:
An apparatus comprising: a driver module to generate a request for data and to receive one or more responses to the request, the driver module operable to communicate with one or more devices using a Universal Serial Bus protocol; a hardware interface module operable to be coupled to one or more hardware devices, wherein the one or more hardware devices operate using a protocol other than the Universal Serial Bus protocol; and an adapter module implemented in software and separately coupled to the driver module and to the hardware interface module so that the driver module and the hardware interface module are coupled through the adapter module, wherein the adapter module is coupled to and is operable to communicate with the driver module as a Universal Serial Bus device, wherein the adapter module includes hard-coded hardware device data corresponding to the one or more hardware devices, including for each particular hardware device a configuration data that corresponds to a protocol type used by that particular hardware device for communication, the adapter module operable to enable the driver module to provide a query to the hardware interface for input data or for a status related to a given hardware device, the query in the form of a URB interrupt, and wherein the adaptor module is operable to map the query to an appropriate hardware device based on the hard-coded hardware device data stored in the adaptor module, the adaptor module operable to hold the query for further processing and until receipt of input data from the appropriate hardware device, to periodically poll the hardware interface connected to the appropriate hardware device, and when input data is sent from the hardware interface of the appropriate hardware device in response to the query, to encapsulate the input data into the original query and to send the original query and the encapsulated input data to the driver module, wherein the driver module would be unable to communicate directly with the appropriate hardware device using the Universal Serial Bus protocol.