To allow Games and application programs to access the custom Heber hardware built into the Axis platform Heber has written a Linux kernel device driver. This compiles into a module which can then be loaded at boot time and both initalises the Heber hardware and provides an interface to it.
The driver, being a kernel module, does need to be matched closely to a particular kernel version. The interface between user applications and the kernel is stable and most applications do not care which kernel they run on. Although the interface between user applications and the kernel is stable, kernel developers have reserved themselves the right to make major internal changes to the kernel. These internal changes do impact on device drivers and in practice a device driver needs to be compiled to specifically match an individual kernel build.
The Axis device driver creates a variety of interfaces to allow applications to access the hardware. The functionality of each piece of hardware is exposed through one or more interface.
There are two main types of interface:
The /proc entries also include virtual files that will report current the current device status.