System and method for transferring data over an external transmission medium
First Claim
1. A method for transferring data over an external transmission medium, the method comprising:
- receiving a plurality of transfer requests;
building a chain of transfer objects, wherein each transfer object corresponds to one of the plurality of transfer requests, wherein said building the chain of transfer objects includes linking the plurality of transfer objects together sequentially; and
sequentially performing the request of each transfer object in the chain of transfer objects, wherein said sequentially performing the request of each transfer object in the chain of transfer objects comprises performing a request of a current transfer object;
wherein said performing the request of the current transfer object is executed on a first thread at passive level if the current transfer object is the first transfer object in the chain; and
wherein said performing the request of the current transfer object is executed on a system thread at kernel-dispatch level if the current transfer object is not the first transfer object in the chain.
5 Assignments
0 Petitions
Accused Products
Abstract
A system and method for transferring data over an external transmission medium. A host computer is coupled to a device through a serial bus. A transfer object is configurable to encapsulate data transfer-related functionality, providing a generic interface for transmission of data over a variety of external transmission media and protocols. A user makes one or more transfer requests. Transfer objects corresponding to each request are built and linked together to form a sequential chain. The requests of the transfer objects are executed sequentially. If the current transfer object is the first in the chain, the request is executed on a current thread at passive level or higher, otherwise the request is executed on a system (kernel) thread at dispatch level. When a response to the request returns, control is returned to the current transfer object. The process is repeated until all transfer objects are processed.
-
Citations
32 Claims
-
1. A method for transferring data over an external transmission medium, the method comprising:
-
receiving a plurality of transfer requests; building a chain of transfer objects, wherein each transfer object corresponds to one of the plurality of transfer requests, wherein said building the chain of transfer objects includes linking the plurality of transfer objects together sequentially; and sequentially performing the request of each transfer object in the chain of transfer objects, wherein said sequentially performing the request of each transfer object in the chain of transfer objects comprises performing a request of a current transfer object; wherein said performing the request of the current transfer object is executed on a first thread at passive level if the current transfer object is the first transfer object in the chain; and wherein said performing the request of the current transfer object is executed on a system thread at kernel-dispatch level if the current transfer object is not the first transfer object in the chain. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. A system for transferring data, the system comprising:
-
a host system including a processor and memory, wherein the memory stores data and driver software, and wherein the processor is operable to execute the driver software; an external communications medium; and a device, wherein the device is coupled to the host system through the external transmission medium; wherein the driver software is executable to receive a plurality of transfer requests, build a chain of transfer objects, and submit the chain of transfer objects for execution by the host system; wherein each of the plurality of transfer objects corresponds to one of the plurality of transfer requests, and wherein each of the transfer objects is operable to perform a request to read from or write to the device; and wherein the host system is operable to perform the request of each transfer object in the chain of transfer objects sequentially, wherein the request of the first transfer object in the chain of transfer objects is executed on a thread at passive level, and wherein the requests of subsequent transfer objects in the chain of transfer objects are executed on one or more system threads at kernel-dispatch level. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
-
-
30. A transfer object, wherein the transfer object is configurable to encapsulate data transfer-related functionality to provide a generic interface for transmission of data over a variety of external transmission media and protocols, comprising:
-
transfer information, wherein the transfer information includes one or more transfer types; a request block object, wherein the request block object provides an operating system-independent and bus-independent interface which encapsulates operating system-dependent and bus-dependent data related to a data transfer request, and wherein the request block object implements the external transmission medium protocol in an operating system specific data structure; a link which is operable to provide access to another transfer object, wherein the link provides a mechanism for chaining transfer objects together; an intrinsic callback function which is operable to execute a transaction to complete the data transfer request, and which is further operable to set an event signaling completion of the data transfer request; and a static callback function. - View Dependent Claims (31, 32)
-
Specification