spurintr() is a low-level interrupt handler, and must not
be called by C code! Spotted by Bill Studenmund, who also provided #the substance of this change.
This commit is contained in:
parent
e816de7dbc
commit
6a7a3fb133
|
@ -1,4 +1,4 @@
|
|||
/* $NetBSD: psc.c,v 1.2 1997/11/07 13:31:23 briggs Exp $ */
|
||||
/* $NetBSD: psc.c,v 1.3 1997/12/19 05:38:00 scottr Exp $ */
|
||||
|
||||
/*-
|
||||
* Copyright (c) 1997 David Huang <khym@bga.com>
|
||||
|
@ -47,13 +47,13 @@ void psc_lev5_intr __P((struct frame *));
|
|||
static void psc_lev5_noint __P((void *));
|
||||
void psc_lev6_intr __P((struct frame *));
|
||||
static void psc_lev6_noint __P((void *));
|
||||
void psc_spurintr __P((struct frame *));
|
||||
|
||||
void (*lev3_intrvec) __P((struct frame *));
|
||||
int (*lev4_intrvec) __P((struct frame *));
|
||||
void (*lev5_intrvec) __P((struct frame *));
|
||||
void (*lev6_intrvec) __P((struct frame *));
|
||||
|
||||
extern void spurintr __P((struct frame *));
|
||||
extern int zshard __P((void *)); /* from zs.c */
|
||||
|
||||
void (*psc3_ihandler) __P((void *)) = psc_lev3_noint;
|
||||
|
@ -98,7 +98,7 @@ psc_init()
|
|||
/*
|
||||
* Only Quadra AVs have a PSC. On other machines, point the
|
||||
* level 4 interrupt to zshard(), and levels 3, 5, and 6 to
|
||||
* spurintr().
|
||||
* psc_spurintr().
|
||||
*/
|
||||
if (current_mac_model->class == MACH_CLASSAV) {
|
||||
lev3_intrvec = psc_lev3_intr;
|
||||
|
@ -111,11 +111,17 @@ psc_init()
|
|||
psc_reg1(PSC_LEV5_IER) = 0x03; /* disable level 5 interrupts */
|
||||
psc_reg1(PSC_LEV6_IER) = 0x07; /* disable level 6 interrupts */
|
||||
} else {
|
||||
lev3_intrvec = lev5_intrvec = lev6_intrvec = psc_spurintr;
|
||||
lev4_intrvec = (int (*)(struct frame *))zshard;
|
||||
lev3_intrvec = lev5_intrvec = lev6_intrvec = spurintr;
|
||||
}
|
||||
}
|
||||
|
||||
void
|
||||
psc_spurintr(fp)
|
||||
struct frame *fp;
|
||||
{
|
||||
}
|
||||
|
||||
int
|
||||
add_psc_lev3_intr(handler, arg)
|
||||
void (*handler)(void *);
|
||||
|
|
Loading…
Reference in New Issue