diff options
Diffstat (limited to 'sys/arch/vax/uba/uba.c')
-rw-r--r-- | sys/arch/vax/uba/uba.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/sys/arch/vax/uba/uba.c b/sys/arch/vax/uba/uba.c index 5d06ea578aa..54dd5a55021 100644 --- a/sys/arch/vax/uba/uba.c +++ b/sys/arch/vax/uba/uba.c @@ -1,5 +1,5 @@ -/* $OpenBSD: uba.c,v 1.9 2000/04/27 03:14:51 bjc Exp $ */ -/* $NetBSD: uba.c,v 1.42 1999/02/02 18:37:20 ragge Exp $ */ +/* $OpenBSD: uba.c,v 1.10 2001/08/25 13:33:37 hugh Exp $ */ +/* $NetBSD: uba.c,v 1.43 2000/01/24 02:40:36 matt Exp $ */ /* * Copyright (c) 1996 Jonathan Stone. * Copyright (c) 1994, 1996 Ludd, University of Lule}, Sweden. @@ -201,10 +201,9 @@ void uba_dw780int(uba) int uba; { - int br, vec, arg; + int br, vec; struct uba_softc *sc = uba_cd.cd_devs[uba]; struct uba_regs *ur = sc->uh_uba; - void (*func) __P((int)); br = mfpr(PR_IPL); vec = ur->uba_brrvr[br - 0x14]; @@ -216,10 +215,9 @@ uba_dw780int(uba) if (cold) scb_fake(vec + sc->uh_ibase, br); else { - struct ivec_dsp *scb_vec = (struct ivec_dsp *)((int)scb + 512); - func = scb_vec[vec/4].hoppaddr; - arg = scb_vec[vec/4].pushlarg; - (*func)(arg); + struct ivec_dsp *scb_vec = (struct ivec_dsp *)((int)scb + 512 + vec * 4); + (*scb_vec->hoppaddr)(scb_vec->pushlarg); + } } |