Linux OS
The Linux OS component consists of the OS abstraction subcomponent, as described in the following section.
Note: For the kernel space drivers, the OS component includes the PCI subcomponent. However, for the user space drivers, the PCI subcomponent is managed in the
Kernel Module.
OS Abstraction
The transport, HAL, and SLI layers achieve operating system independence through the use of an OS abstraction. The required functionality includes:
-
Defining all common objects (that is, DMA, SLI port, domain, and remote node).
-
Declaring endianess and providing functions for converting between host order and big-endian byte order.
-
Busy-wait or delay function.
-
Memory copy and set routines.
-
Memory allocation, free, and cache coherency functions for both CPU and DMA memory types.
-
Locking for concurrency protection.
-
Linked list and associated operations.
-
Bitmap and associated operations.
-
PCI register access.
In most cases, the OS abstractions have been implemented with macros or in-line functions.