diff options
author | Mark Kettenis <kettenis@cvs.openbsd.org> | 2007-09-30 21:34:21 +0000 |
---|---|---|
committer | Mark Kettenis <kettenis@cvs.openbsd.org> | 2007-09-30 21:34:21 +0000 |
commit | d5a801a8ee6cc9e40715e75f75d167ee9b1b72ac (patch) | |
tree | be9d4503c9a6572f54c245ace0f963970f29896c /sys/arch | |
parent | 5c711d120324f0d3960ee6bd5e39e7e288fc6977 (diff) |
Move intrpending array into 'struct cpu_info'.
Diffstat (limited to 'sys/arch')
-rw-r--r-- | sys/arch/sparc64/include/cpu.h | 3 | ||||
-rw-r--r-- | sys/arch/sparc64/sparc64/genassym.cf | 3 | ||||
-rw-r--r-- | sys/arch/sparc64/sparc64/locore.s | 17 |
3 files changed, 10 insertions, 13 deletions
diff --git a/sys/arch/sparc64/include/cpu.h b/sys/arch/sparc64/include/cpu.h index 09ca5f0bc0e..8aead008a57 100644 --- a/sys/arch/sparc64/include/cpu.h +++ b/sys/arch/sparc64/include/cpu.h @@ -1,4 +1,4 @@ -/* $OpenBSD: cpu.h,v 1.45 2007/09/09 14:59:37 kettenis Exp $ */ +/* $OpenBSD: cpu.h,v 1.46 2007/09/30 21:34:20 kettenis Exp $ */ /* $NetBSD: cpu.h,v 1.28 2001/06/14 22:56:58 thorpej Exp $ */ /* @@ -119,6 +119,7 @@ struct cpu_info { int ci_want_resched; int ci_handled_intr_level; + void *ci_intrpending[16][8]; /* DEBUG/DIAGNOSTIC stuff */ u_long ci_spin_locks; /* # of spin locks held */ diff --git a/sys/arch/sparc64/sparc64/genassym.cf b/sys/arch/sparc64/sparc64/genassym.cf index 41ee8730e31..87f75170744 100644 --- a/sys/arch/sparc64/sparc64/genassym.cf +++ b/sys/arch/sparc64/sparc64/genassym.cf @@ -1,4 +1,4 @@ -# $OpenBSD: genassym.cf,v 1.21 2007/09/09 14:59:37 kettenis Exp $ +# $OpenBSD: genassym.cf,v 1.22 2007/09/30 21:34:20 kettenis Exp $ # $NetBSD: genassym.cf,v 1.23 2001/08/08 00:09:30 eeh Exp $ # @@ -153,6 +153,7 @@ member ci_number member ci_upaid member ci_want_resched member ci_handled_intr_level +member ci_intrpending member ci_spinup member ci_initstack member ci_paddr diff --git a/sys/arch/sparc64/sparc64/locore.s b/sys/arch/sparc64/sparc64/locore.s index 9219ab09dba..07767d70bc5 100644 --- a/sys/arch/sparc64/sparc64/locore.s +++ b/sys/arch/sparc64/sparc64/locore.s @@ -1,4 +1,4 @@ -/* $OpenBSD: locore.s,v 1.82 2007/09/22 20:04:51 kettenis Exp $ */ +/* $OpenBSD: locore.s,v 1.83 2007/09/30 21:34:20 kettenis Exp $ */ /* $NetBSD: locore.s,v 1.137 2001/08/13 06:10:10 jdolecek Exp $ */ /* @@ -3158,11 +3158,6 @@ return_from_syscall: * and invokes the interrupt handler. */ - .data - .globl intrpending -intrpending: - .space 16 * 8 * 8 - #ifdef DEBUG #define INTRDEBUG_VECTOR 0x1 #define INTRDEBUG_LEVEL 0x2 @@ -3230,10 +3225,10 @@ setup_sparcintr: membar #LoadLoad | #LoadStore brnz,pn %g6, ret_from_intr_vector ! Skip it if it's running ldub [%g5+IH_PIL], %g6 ! Read interrupt mask - sethi %hi(intrpending), %g1 + sethi %hi(CPUINFO_VA+CI_INTRPENDING), %g1 mov 8, %g7 ! Number of slots to search sll %g6, 3+3, %g3 ! Find start of table for this IPL - or %g1, %lo(intrpending), %g1 + or %g1, %lo(CPUINFO_VA+CI_INTRPENDING), %g1 add %g1, %g3, %g1 1: ldx [%g1], %g3 ! Load list head @@ -3489,8 +3484,8 @@ sparc_intr_retry: wr %l3, 0, CLEAR_SOFTINT ! (don't clear possible %tick IRQ) wrpr %g0, PSTATE_INTR, %pstate ! Reenable interrupts sll %l6, 3+3, %l2 - sethi %hi(intrpending), %l4 - or %l4, %lo(intrpending), %l4 + sethi %hi(CPUINFO_VA+CI_INTRPENDING), %l4 + or %l4, %lo(CPUINFO_VA+CI_INTRPENDING), %l4 mov 8, %l7 add %l2, %l4, %l4 @@ -9203,7 +9198,7 @@ ENTRY(send_softint) 1: brz,pn %o2, 1f mov 8, %o4 ! Number of slots to search - set intrpending, %o3 + set CPUINFO_VA+CI_INTRPENDING, %o3 ldstub [%o2 + IH_BUSY], %o5 membar #LoadLoad | #LoadStore |