Inventors:
Russell A. Johnson - Colorado Springs CO
Andrew C. Brown - Colorado Springs CO
Stephen B. Johnson - Colorado Springs CO
Assignee:
LSI Logic Corporation - Milpitas CA
International Classification:
G06F 1210, G06F 1730
Abstract:
A set of registers are provided for a protocol engine driving I/O transactions requested by a host. A fixed set of defined data elements are determined for the protocol under which the I/O transaction is to be performed. Each register maps to a data structure base address or to a different data element offset or byte count. During initialization, the registers are programmed by an operating system device driver with offsets from a base address and byte counts for each data element within the defined set as those data elements are found within an operating system specific data structure for the I/O transaction, although data elements having a fixed size for each operating system may not require the byte count to be specified. For each I/O transaction requested, the base address in the host memory of the operating system specific data structure is programmed by the device driver into a register. The I/O protocol engine utilizes the base address together with the offset and byte count information to commence the requested I/O transaction.