i.e. background at index 0: white, foreground at index 255: black.
Also, allocate a slice for an ANSI colormap, so we can experiment
with coloured text on the bare console.
where the floppy driver would wedge because a motor-on timeout would
be cancelled by another I/O operation cancelling a motor-off timeout.
From enami tsugutomo <enami@sm.sony.co.jp>.
timeout()/untimeout() API:
- Clients supply callout handle storage, thus eliminating problems of
resource allocation.
- Insertion and removal of callouts is constant time, important as
this facility is used quite a lot in the kernel.
The old timeout()/untimeout() API has been removed from the kernel.
* do not require a `zs' driver for console handling
* run the console on PROM primitives until a device recognises
itself as a console device during normal autoconfiguration.
* allow (keyboard) devices to take over the input channel of
the PROM primitive-based console device.
As a result, consinit() is much simplified and does no longer have
to "detect" devices to setup a working console device. This complexity
has moved to individual drivers which interpret the PROM information
after they have attached to decide whether or not to act as a console.
tctrl now initializes the state of the internal LCD icons. The icons
are unprogrammed at boot time. This incidentally makes the DC-POWER icon
work.
Fixes:
Fix my stupidity in the ENVSYS stuff, and actually follow the API.
* Improve communication between the `hard' and `soft' interrupt handlers
to better distinguish various interrupt sources.
* Eliminate several race conditions where we would set a time out handler
only after starting the command on the hardware.
* Handle most timeouts by resetting the controller; there isn't much chance
of recovery in any other way. Currently, the exception is a timeout
on I/O, in which case we first try to pulse the controller's TC line
in order to abort the pseudo-dma sequence. Apparently, "normal"
conditions can induce such a timeout when there's no disk in the drive.
* Reduce the formatting gap parameter to 0x54.
* On the obio bus, interpret the `status' attribute.
* Minimize console diagnostic output if the errors we get appear to be
caused by the absence of a disk.
Add some undocumented commands to the ts102 registers file, and fix a few
typos.
Modifications to tctrl.c:
Add entrypoints to driver for open/close/ioctl/poll.
Make device work with apmd. (still no support for suspend/sleep)
Make device work with ENVSYS API.
Slightly restructure handling of events.
Add function to make microcontroller requests.