summaryrefslogtreecommitdiff
path: root/sys/arch
diff options
context:
space:
mode:
authorMark Kettenis <kettenis@cvs.openbsd.org>2007-09-30 21:34:21 +0000
committerMark Kettenis <kettenis@cvs.openbsd.org>2007-09-30 21:34:21 +0000
commitd5a801a8ee6cc9e40715e75f75d167ee9b1b72ac (patch)
treebe9d4503c9a6572f54c245ace0f963970f29896c /sys/arch
parent5c711d120324f0d3960ee6bd5e39e7e288fc6977 (diff)
Move intrpending array into 'struct cpu_info'.
Diffstat (limited to 'sys/arch')
-rw-r--r--sys/arch/sparc64/include/cpu.h3
-rw-r--r--sys/arch/sparc64/sparc64/genassym.cf3
-rw-r--r--sys/arch/sparc64/sparc64/locore.s17
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