Commit Graph

18 Commits

Author SHA1 Message Date
thorpej
58e7a6954b Add spllock(). See spl(9) for details. 2000-08-22 19:46:26 +00:00
scottr
560a7ef713 Change the behavior of spladb() so that it raises the IPL only
high enough to block ADB interrupts.
1999-11-06 23:05:40 +00:00
thorpej
eb20bbc780 Change the semantics of splsoftclock() to be like other spl*() functions,
that is priority is rasied.  Add a new spllowersoftclock() to provide the
atomic drop-to-softclock semantics that the old splsoftclock() provided,
and update calls accordingly.

This fixes a problem with using the "rnd" pseudo-device from within
interrupt context to extract random data (e.g. from within the softnet
interrupt) where doing so would incorrectly unblock interrupts (causing
all sorts of lossage).

XXX 4 platforms do not have priority-raising capability: newsmips, sparc,
XXX sparc64, and VAX.  This platforms still have this bug until their
XXX spl*() functions are fixed.
1999-08-05 18:08:08 +00:00
thorpej
654051453f Use an array for PSL values, rather than individual shortwords, like
the hp300 port.
1999-08-04 16:01:47 +00:00
kleink
857dfc7058 Slightly rearrange the SSIR inline assembly implementation in order to avoid
making assumptions on C symbol name prefixes.
1999-06-15 15:26:34 +00:00
scottr
e640c5d7cc Move all IPL setup to intr.c, and do some sanity checking. 1999-02-28 04:52:07 +00:00
scottr
928c2f86e0 Fix a typo in the (unused!) splsched() macro. 1999-02-17 04:46:45 +00:00
scottr
2d981dac3b The return value from intr_dispatch() is no longer necessary. 1998-08-25 04:03:56 +00:00
scottr
2aa56b1c61 Implement splaudio(). 1998-08-25 03:59:01 +00:00
scottr
5a94869995 New framework for handling processor interrupts, derived in part from
the hp300 port.

- Interrupts 3-6 use this immediately.  Interrupt 7 is a special case,
and the VIA interrupts (1 and 2) will be addressed when that code is
rototilled.

- Modify the zs front end to register with the appropriate interrupt
controller:  through the PSC on the AV Quadras, and direct to
interrupt 4 on the rest.  Arrange to have the appropriate zsc_softc
supplied to us at interrupt time.

- Modify the direct ADB driver (and its PowerManager cousin) to call
intr_dispatch(), rather than zshard().  XXX This is a kludge, but at
least limits the brokenness to the ADB drivers, now.

As a side effect, this should fix PR 5590.  Thanks to Bill Studenmund for
correctly determining the cause of the problem reported there.
1998-08-12 06:58:42 +00:00
scottr
13fa4227b1 Update from John Wittkoski: bug fixes for Cuda support. 1997-11-07 07:33:11 +00:00
briggs
e658b8b476 Add in the if_mc ethernet driver for the AMD "MACE" part. This is the
internal ethernet on the Quadra/Centris 660av/840av.
Add initial support for the PSC (DMA controller) to support the above
(DMA SCSI remains unsupported).  This involved also changing the way
that several interrupts are handled.
Above from David Huang <khym@bga.com>
Since the interrupts changed somewhat, we must also make the ipls
dynamic, defaulting to their prior levels and adjusted for the AVs.
I modelled this on the hp300.
1997-11-04 03:44:42 +00:00
scottr
a7515413d8 Remove advertising clause. 1997-10-10 05:54:48 +00:00
scottr
6f33c6446c Drop splsched() to spl3(), so that it no longer blocks serial interrupts. 1997-08-03 07:20:40 +00:00
scottr
257d26f174 New implementation of _splraise(): use word-length operands where possible
by implementing entirely in assembly.  This saves some 6 bytes on all MPUs,
and about 8 cycles on the 030.

Now that it's optimized, define spltty() in terms of _splraise() so that
we don't inadvertantly lower the SPL.
1997-07-23 06:24:33 +00:00
scottr
5842491f1c Add en implementation of the Deferred Task Manager, contributed by Paul
Goyette <paul@pgoyette.bdt.com>.
1997-05-12 07:29:29 +00:00
scottr
4ed2d4414f Add copyright notice. 1997-04-14 06:25:32 +00:00
scottr
4765dedbf5 Move all splxxx() and softint-related macros and prototypes to intr.h,
and include it where appropriate.
1997-04-13 05:12:40 +00:00