Patent ID: 7334234

Claim:
A method in a slave device for transferring data to a plurality of applications that are executing on the slave device, the slave device including a single device driver, the slave device coupled to a plurality of physical master devices, the method comprising: said device driver permitting only one virtual device at a time, said device driver including a routing mechanism that acts as said virtual device with respect to said device driver; managing, by each one of a plurality of applications, one of said plurality of physical master devices; receiving, from each one of said plurality of applications by said routing mechanism, a request that was generated by each one of said plurality of applications for a slave I/O operation, all of said plurality of applications having concurrently pending requests; registering, by said routing mechanism, each one of said plurality of applications in a queue when each one of said plurality of applications makes a request for a slave I/O operation; each one of said plurality of applications having an application identifier that corresponds to one of said plurality of physical master devices that is managed by said one of said plurality of applications; receiving first data from a first one of said plurality of physical master devices by said device driver, said first one of said plurality of physical master devices associating a first application identifier with said first data, said first application identifier identifying a first one of said plurality of applications that manages said first one of said plurality of physical master devices; passing, by said device driver, said first data to said routing mechanism; parsing, by said routing mechanism, said first data for said first application identifier; using, by said routing mechanism, said first application identifier to locate said first one of said plurality of applications in said queue; and sending, by said routing mechanism, said first data to said first one of said plurality of applications.