summaryrefslogtreecommitdiffstats
path: root/sys/i386/isa/nmi.c
Commit message (Collapse)AuthorAgeFilesLines
* Zap the old isa_device specific register_intr() and unregister_intr()peter1999-12-201-66/+0
| | | | emulations. Thankfully, nothing is left in the tree that uses them.
* This adds the i386 specific support for systems with a MicroChannelmdodd1999-09-031-2/+23
| | | | | | Architecture bus. Reviewed by: msmith
* $Id$ -> $FreeBSD$peter1999-08-281-2/+2
|
* Fixed a longstanding scheduling bug. ASTs and softclock interrupts werebde1999-07-101-12/+13
| | | | | | | | | | not masked during handling of shared PCI interrupts. This resulted in ASTs sometimes being discarded and softclock interrupts sometimes being handled prematurely (sometimes = quite often on systems with shared PCI interrupts, never on other systems). Debugged by: gibbs and other people at plutotech.com PR: 6944, maybe 12381
* Recover from removing the last (unshared) interrupt handler.peter1999-05-221-27/+12
| | | | | PR: 11806 Submitted by: Assar Westerlund <assar@sics.se>
* Use unit, not device_id as an argument to an old-style ISA interruptdfr1999-05-041-3/+3
| | | | | | | handler. This fixes pnp interrupts and would have fixed pccard interrupts but a workaround has been applied there. This the sound driver problems which people have reported with new-bus.
* Make the register_intr() glue actually have a chance of working...peter1999-04-231-2/+3
|
* Stage 1 of a cleanup of the i386 interrupt registration mechanism.peter1999-04-211-42/+426
| | | | | | | Interrupts under the new scheme are managed by the i386 nexus with the awareness of the resource manager. There is further room for optimizing the interfaces still. All the users of register_intr()/intr_create() should be gone, with the exception of pcic and i386/isa/clock.c.
* Bring the 'new-bus' to the i386. This extensively changes the way thepeter1999-04-161-1/+3
| | | | | | | | | | | | | | | | | | i386 platform boots, it is no longer ISA-centric, and is fully dynamic. Most old drivers compile and run without modification via 'compatability shims' to enable a smoother transition. eisa, isapnp and pccard* are not yet using the new resource manager. Once fully converted, all drivers will be loadable, including PCI and ISA. (Some other changes appear to have snuck in, including a port of Soren's ATA driver to the Alpha. Soren, back this out if you need to.) This is a checkpoint of work-in-progress, but is quite functional. The bulk of the work was done over the last few years by Doug Rabson and Garrett Wollman. Approved by: core
* Generate intrnames[] dynamically. This should be new-bus friendly.bde1999-04-141-65/+80
| | | | Old version reviewed by: se
* Unspammed includes in <machine/cpufunc.h> in the !SMP case. Partiallybde1999-01-081-1/+4
| | | | unspammed them in the SMP case.
* Examine all occurrences of sprintf(), strcat(), and str[n]cpy()archie1998-12-041-2/+2
| | | | | | | | | | | | | | for possible buffer overflow problems. Replaced most sprintf()'s with snprintf(); for others cases, added terminating NUL bytes where appropriate, replaced constants like "16" with sizeof(), etc. These changes include several bug fixes, but most changes are for maintainability's sake. Any instance where it wasn't "immediately obvious" that a buffer overflow could not occur was made safer. Reviewed by: Bruce Evans <bde@zeta.org.au> Reviewed by: Matthew Dillon <dillon@apollo.backplane.com> Reviewed by: Mike Spengler <mks@networkcs.com>
* Maintain a mapping from irq number to (ioapic number, int pin) tuple,tegge1998-09-061-5/+8
| | | | | | | | | | | | and use this when masking/unmasking interrupts. Maintain a mapping from (iopaic number, int pin) tuple to irq number, and use this when configuring devices and programming the ioapics. Previous code assumed that irq number was equal to int pin number, and that the ioapic number was 0. Don't let an AP enter _cpu_switch before all local apics are initialized.
* Converted isa_strayintr() to take a `void *' arg.bde1998-06-181-10/+11
|
* Changed the type of an isa/general interrupt handler to take abde1998-06-181-4/+4
| | | | | | `void *' arg. Fixed or hid most of the resulting type mismatches. Handlers can now be updated locally (except for reworking their global declarations in isa_device.h).
* Converted the ICU-level interrupt tests (3, 5 and 8) in sioprobe() intobde1998-05-311-47/+10
| | | | | | | | | a test of the irq number, and made failure of this test non-fatal. Removed related unused complications for the APIC_IO case. Removed the no-test3 flag. Deverbosified the failure messages for the other tests. Removed the per-port verbose flag - just use the general verbose flag.
* Use a higher priority interrupt vector for 8254 timer interrupts.tegge1998-05-171-2/+5
|
* When entering the apic version of slow interrupt handler, leveltegge1998-03-031-12/+26
| | | | | | | | | interrupts are masked, and EOI is sent iff the corresponding ISR bit is set in the local apic. If the CPU cannot obtain the interrupt service lock (currently the global kernel lock) the interrupt is forwarded to the CPU holding that lock. Clock interrupts now have higher priority than other slow interrupts.
* Staticize.eivind1998-02-091-2/+2
|
* Add a small hack to support the strange antics of the Unisys ELI 4003. Thismckay1997-09-281-10/+22
| | | | | | machine generates an NMI for each floating point error, just like an old XT. Since it is ISA only, reading the EISA status port yields 0xff, which would give a spurious EISA panic. The simplest thing to do is to ignore the 0xff.
* Another round of lock pushdown.fsmp1997-08-301-1/+9
| | | | | | | | | Add a simplelock to deal with disable_intr()/enable_intr() as used in UP kernel. UP kernel expects that this is enough to guarantee exclusive access to regions of code bracketed by these 2 functions. Add a simplelock to bracket clock accesses in clock.c: clock_lock. Help from: Bruce Evans <bde@zeta.org.au>
* Support for the new FAST_HI algorithm, enabled.fsmp1997-08-291-4/+38
| | | | | Preliminary support for the INTR_SIMPLELOCK algorithm, disabled. Note that this code is NOT ready.
* Removed unused #includes.bde1997-07-201-8/+1
|
* Preliminary support for per-cpu data pages.peter1997-06-221-2/+2
| | | | | | | | | | | | | | | | This eliminates a lot of #ifdef SMP type code. Things like _curproc reside in a data page that is unique on each cpu, eliminating the expensive macros like: #define curproc (SMPcurproc[cpunumber()]) There are some unresolved bootstrap and address space sharing issues at present, but Steve is waiting on this for other work. There is still some strictly temporary code present that isn't exactly pretty. This is part of a larger change that has run into some bumps, this part is standalone so it should be safe. The temporary code goes away when the full idle cpu support is finished. Reviewed by: fsmp, dyson
* Added PC-98 code.kato1997-06-021-13/+62
|
* Move interrupt handling code from isa.c to a new file. This should makedfr1997-06-021-0/+418
isa.c (slightly) more portable and will make my life developing the really portable version much easier. Reviewed by: peter, fsmp
OpenPOWER on IntegriCloud