Application programming interface for data transfer and bus management over a bus structure
First Claim
1. An interface between an application and a bus structure for to manage data transfer operations between the application and the bus structure comprising:
- a. an applications interface to communicate with the application to receive requests from and send instructions to the application;
b. a controller to control isochronous data transfer operations between the application and the bus structure including managing a linked list of buffer descriptors, each corresponding to and representing a buffer; and
c. a bus interface circuit to provide a physical interface to the bus structure to send and receive data packets over the bus structure.
1 Assignment
0 Petitions
Accused Products
Abstract
In a first embodiment, an applications programming interface (API) implements and manages isochronous and asynchronous data transfer operations between an application and a bus structure. During an synchronous transfer the API includes the ability to transfer any amount of data between one or more local data buffers within the application and a range of addresses over the bus structure using one or more asynchronous transactions. An automatic transaction generator may be used to automatically generate the transactions necessary to complete the data transfer. The API also includes the ability to transfer data between the application and another node on the bus structure isochronously over a dedicated channel. During an isochronous data transfer, a buffer management scheme is used to manage a linked list of data buffer descriptors. During isochronous transfers of data, the API provides implementation of a resynchronization event in the stream of data allowing for resynchronization by the application to a specific point within the data. Implementation is also provided for a callback routine for each buffer in the list which calls the application at a predetermined point during the transfer of data. An isochronous API of the preferred embodiment presents a virtual representation of a plug, using a plug handle, to the application. The isochronous API notifies a client application of any state changes on a connected plug through the event handle. The isochronous API also manages buffers utilized during a data operation by attaching and detaching the buffers to the connected plug, as appropriate, to manage the data flow.
55 Citations
154 Claims
-
1. An interface between an application and a bus structure for to manage data transfer operations between the application and the bus structure comprising:
-
a. an applications interface to communicate with the application to receive requests from and send instructions to the application;
b. a controller to control isochronous data transfer operations between the application and the bus structure including managing a linked list of buffer descriptors, each corresponding to and representing a buffer; and
c. a bus interface circuit to provide a physical interface to the bus structure to send and receive data packets over the bus structure. - View Dependent Claims (128, 129, 130, 131, 132, 133, 134, 135)
-
-
2-127. -127. (canceled)
-
136. An interface between an application and an IEEE 1394 standard bus structure to manage data transfer operations between the application and the bus structure comprising:
-
a. an applications interface to communicate with the application to receive requests from and send instructions to the application;
b. a controller to control isochronous data transfer operations between the application and the bus structure including a linked list of buffers provided by the application; and
c. a bus interface circuit to provide a physical interface to the bus structure to send and receive data packets over the bus structure. - View Dependent Claims (137, 138, 139, 140)
-
-
141. A buffer management method for handling data transmitted on an isochronous channel, the method comprising:
-
establishing a linked list of buffers for receiving isochronous data from a sender device;
receiving the isochronous data from the sender device;
loading the isochronous data into the linked list of buffers; and
accessing the data in the linked list of buffers for output to a client device. - View Dependent Claims (142, 143, 144, 145, 146)
-
-
147. A buffer management method for handling data transmitted on an isochronous channel, the method comprising:
-
establishing a linked list of buffers for receiving isochronous data from a sender device, each buffer comprising a forward pointer to the next buffer in the list and a backward pointer to the previous pointer in the list;
receiving the isochronous data from the sender device;
loading the isochronous data into the linked list of buffers; and
accessing the data in the linked list of buffers for output to a client device. - View Dependent Claims (148, 149, 150, 151, 152)
-
-
153. A computer readable medium having stored thereon a plurality of sequences of instructions including sequences of instructions which, when executed by a device including an application and within a network including a plurality of nodes interconnected by a plurality of point-to-point links forming a bus structure, cause the device to perform the steps of:
-
receiving a request for a data transfer operation from the application; and
managing a linked list of buffer descriptors each corresponding to a buffer provided by the application for completing the data transfer operation, wherein data is transferred between one buffer and the bus structure while the application processes another buffer.
-
-
154. A computer readable medium having stored thereon a plurality of sequences of instructions including sequences of instructions which, when executed by a device including an application and within a network including a plurality of nodes interconnected by a plurality of point-to-point links forming a bus structure, cause the device to perform the steps of:
-
establishing a linked list of buffers for receiving isochronous data from a sender device;
receiving the isochronous data from the sender device;
loading the isochronous data into the linked list of buffers; and
accessing the data in the linked list of buffers for output to a client device.
-
Specification