LEDS(4) | Device Drivers Manual (sun3) | LEDS(4) |
leds
— sun3
diagnostic Light Emitting Diodes driver
#include
<machine/leds.h>
With the exception of the Sun 3/80, all sun3 machines are equipped a diagnostic display of eight Light Emitting Diodes (LEDs), located on the back of the system unit. The Sun 3/80 has a single LED, which is located on the front panel.
The kernel changes the display during periods of idle processor activity according to a stored sequential pattern list. The /dev/leds interface provides a way of manipulating the pattern list via simple file I/O.
The structure of the file is as follows:
struct led_patterns { u_char divisor; u_char patlen; u_char pat[256]; };
When a clock interrupt occurs while the processor is idle, a pattern countdown timer is decremented. When the countdown timer reaches zero it is reset with the divisor value and the next pattern in the array is selected and displayed.
Each 8-bit pattern describes the state of the diagnostic LEDs. With the exception of the 3/80, a set bit in a pattern indicates that its corresponding LED should be extinguished, while a reset bit indicates an LED to be illuminated. On the 3/80 the polarity of the bits is reversed and only the lowest order bit is used.
The following example uses awk(1) to display the repeating animation of a single lit LED scrolling from one end of the display to the other, using six clock ticks between each update.
An I/O transfer to /dev/leds will complete successfully unless:
EIO
]/dev/leds first appeared in NetBSD 1.2.
March 2, 1996 | NetBSD 10.99 |