- Interrupt service routines now take a pointer to
the device's softc, rather than a unit number.
- Interrupt handling code in locore.s condensed. Only
remaining "special" handlers are lev0 (spurious),
lev1 (HIL; don't ask), lev6 (clock), and lev7 (NMI).
Only remaining hard-coded device driver reference in
locore is HIL. (clock doesn't count...)
- "dcafastservice" eliminated. DCA driver has new mechanism
to guarantee prompt interrupt service at any ipl (not
just level 5).
- Interrupt code pulled out of autoconf.c and machdep.c and
placed in new file, isr.c
to a softc, rather than a unit number. Add a "dq_softc" member
to struct devqueue; this is a temporary measure until the
dma/controller/device callback spaghetti is untangled.
YAY! No more need for dcafastservice!
HIL: squish instances of "(void) splhil()" and "(void) spl0();".
intent for the value of the C_REL constant was 0xc0. Testing has turned
up no adverse effect on tape or disk devices, and in fact this change
apparently makes my 9145 tape work as expected. (!) Closes PRs 1874 and
1971.
to the identification request in rdmatch(). Similar in spirit to a
patch from Jason Downs (written eons ago), but limited to the broken
device we're trying to reach. My patch tested (and fixed :-) by
Herb Peyerl.
- New metrics handling. Metrics are now kept in the new
`struct disk'. Busy time is now stored as a timeval, and
transfer count in bytes.
- Storage for disklabels is now dynamically allocated, so that
the size of the disk structure is not machine-dependent.
- Several new functions for attaching and detaching disks, and
handling metrics calculation.
Old-style instrumentation is still supported in drivers that did it before.
However, old-style instrumentation is being deprecated, and will go away
once the userland utilities are updated for the new framework.
For usage and architectural details, see the forthcoming disk(9) manual
page.
A fair bit of this, the m68k core dump and exec goo, can probably be
made into a generic m68k hpux module, eventually.
More to be placed in hpux_machdep.c - keep your eyes peeled...
squished into an 8-bit position in a command stream! Which one is wrong?
Changed the constant from 0x140 to 0x40, which is what ended up happening
anyhow. This exists in the old Utah sources, too! How long has this
bug existed?!
and LE_RINT_HOOK to blink the "LAN transmit" and "LAN receive" LEDs on
the front panels of 400-series machines iff the CPP symbol USELEDS is
defined in the kernel config file.
seem to really hurt anything, either. Makes it easier for folks using
binary snapshots only to try it out.
GENERIC: now that the PT map allocation is fixed, increase the default
maxusers to 32.
properties such as "M68040" and "M68K_MMU_MOTOROLA", used to conditionally
compile code. This is more in-line with now the other m68k ports do it,
and makes it much easier to find "common ground" among them.
In locore.s, use the MMU-type constants defined my <machine/cpu.h> rather
than "expanded" values.
Because HP300-model names are mapped to CPU/MMU combinations in
<machine/cpu.h>, no change to kernel configuration will be necessary.