All HPI code is written in C. A HPI level driver consists of several modules/source files that constitute a layered interface to the adapter hardware.
HPIMAN.C is the HPI Manager module. This provides the entry point for the HPI IOCTLs (from the driver) as well as any operating system specific functions that the HPI may need (for example hooking and interrupt or setting up a DMA channel. Each adapter type has its own HPI module, for example the A120 adapter has an HPI module called HPIA120.C
The IOCTL consists of a message sent from the driver to the HPI, with a response sent back. The responses are synchronous i.e. the driver gets the response back at the time the IOCTL call is made.
The following example shows the format of the SubSystem IOCTL message and response.
1.4.6-NO