The ik driver provides an interface to an Ikonas frame buffer graphics device. Each minor device is a different frame buffer interface board. When the device is opened, its interface registers are mapped, via virtual memory, into the user processes address space. This allows the user process very high bandwidth to the frame buffer with no system call overhead.
Bytes written or read from the device are DMA'ed from or to the interface. The frame buffer XY address, its addressing mode, etc. must be set up by the user process before calling write or read.
Other communication with the driver is via ioctls.
The
IK_GETADDR
ioctl(2)
returns the virtual address where the user process can
find the interface registers.
The
IK_WAITINT
ioctl(2)
suspends the user process until the ikonas device
has interrupted (for whatever reason -- the user process has to set
the interrupt enables).
/dev/ik