4. SISCI API SmartIO

The SmartIO module extends the SISCI API with new functionality to more easily work with transparent PCIe devices.

The SISCI SmartIO functions provides an API for low level access to PCIe devices in the cluster. It can be used to write user space drivers that operate on devices located anywhere in the cluster. Unlike, device lending, multiple users can ‘borrow’ the same device at the same time. This allows distributed device drivers to be created. The SmartIO API is compatible with the rest of the SISCI API so that the ‘normal’ SISCI functions can be used when writing device drivers, for instance this allows the driver instances to communicate with each other. The DMA engine on the NTB adapter can also be used to move data to and from a SmartIO device.

Please find more information about the SISCI API SmartIO functionality in the SISCI API SmartIO section in the SISCI Functional Specification. Please also take a look at the sisci_smartio.c example in Section 4.1, “SISCI API Example programs”.

The SISCI API SmartIO functions will fail with an error return code if the SmartIO module is not installed.