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
asynchronous 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.
En una primera encarnación, un interfaz de programación de usos (API) pone y maneja operaciones isócronas y asincrónicas de la transferencia en ejecucio'n de datos entre un uso y una estructura del autobús. Durante una transferencia asincrónica el API incluye la capacidad de transferir cualquier cantidad de datos entre unos o más almacenadores intermediarios locales de los datos dentro del uso y una gama de direcciones sobre la estructura del autobús usando uno o más, transacciones asincrónicas. Un generador automático de la transacción se puede utilizar para generar automáticamente las transacciones necesarias para terminar la transferencia de datos. El API también incluye la capacidad de transferir datos entre el uso y otro nodo en la estructura del autobús isochronously sobre un canal dedicado. Durante una transferencia de datos isócrona, un esquema de la gerencia de almacenador intermediario se utiliza para manejar una lista encadenada de los descriptores del almacenador intermediario de los datos. Durante transferencias isócronas de datos, el API proporciona la puesta en práctica de un acontecimiento de la resincronización en la corriente de datos permitiendo para la resincronización por el uso a un punto específico dentro de los datos. La puesta en práctica también se proporciona para una rutina del servicio repetido para cada almacenador intermediario en la lista que llama el uso en un punto predeterminado durante la transferencia de datos. Un API isócrono de la encarnación preferida presenta una representación virtual de un enchufe, usando una manija del enchufe, al uso. El API isócrono notifica un uso del cliente de cualquier cambio del estado en un enchufe conectado a través de la manija del acontecimiento. El API isócrono también maneja los almacenadores intermediarios utilizados durante una operación de los datos uniendo y separar los almacenadores intermediarios al enchufe conectado, como apropiado, para manejar los datos flujo.