The parent process for a CGI request exits after all input
data to the CGI is received and leaves the CGI reparented
to init. This prevents controlling concurrency when httpd
is run by e.g. inetd.
Exchange input and output processes for a CGI request so that
output processing is done by the parent httpd so that the parent
stays until the CGI is done.
Add haud(4), a driver for audio playback using Iris Indigo's
onboard DSP ("Hollywood Audio"). The same hardware is also
present on Personal Iris 4D/3x machines, split across the
mainboard and an optional "Magnum Audio" card (untested).
The DSP requires firmware, so this driver leverages IRIX's
hdsp.lod. Since that's proprietary, it's left up to the user
to install it from an existing IRIX system or its installation
media. See forthcoming haud(4) manpage for details.
Fix the MAC address configured for sq(4) on IP12 machines.
Expansion cards have their own EEPROM with a MAC address at
offset 250, but my IP12's onboard EEPROM has two MAC addresses
in the EEPROM at offsets 122 and 250. The former is the system
MAC address, so check that first and use it if it has the SGI
OUI before falling back to the 250 offset. Presumably expansion
cards have nothing at offset 122, but I don't have hardware to
test.
Remove magic constants set in the cx56 driver's descriptor
in favour of the hpcreg.h definitions.
Confusingly, the MI driver apparently swaps the meanings of DO
and DI in the chip's datasheet.
Fix EEPROM reading on IP12: DELAY isn't available as early as
needed, so roll our own using the most pessimistic timings
(that is, busy loop enough for the fastest pre-ARCS CPU).
Clean up the EEPROM twiddling code and remove magic constants
while here.
Ensure that curlwp is saved and restored across calls into
pre-ARCS PROM routines. This only matters for console output,
but do the same for shutdown/restart entrypoints as well.
While here, preformat strings before invoking the PROM's
printf routine, since we don't know what its formatting and
argument limitations are.