Module Name: src
Committed By: skrll
Date: Sun Jun 6 10:15:51 UTC 2010
Modified Files:
src/sys/arch/hp700/hp700: machdep.c
src/sys/arch/hp700/include: cpu.h
To generate a diff of this commit:
cvs rdiff -u -r1.86 -r1.87 src/sys/arch/hp700/hp700/machdep.c
cvs rdiff -u -r1.49 -r1.50 src/sys/arch/hp700/include/cpu.h
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/arch/hp700/hp700/machdep.c
diff -u src/sys/arch/hp700/hp700/machdep.c:1.86 src/sys/arch/hp700/hp700/machdep.c:1.87
--- src/sys/arch/hp700/hp700/machdep.c:1.86 Sun Jun 6 09:12:39 2010
+++ src/sys/arch/hp700/hp700/machdep.c Sun Jun 6 10:15:51 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: machdep.c,v 1.86 2010/06/06 09:12:39 skrll Exp $ */
+/* $NetBSD: machdep.c,v 1.87 2010/06/06 10:15:51 skrll Exp $ */
/*-
* Copyright (c) 2001, 2002 The NetBSD Foundation, Inc.
@@ -58,7 +58,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.86 2010/06/06 09:12:39 skrll Exp $");
+__KERNEL_RCSID(0, "$NetBSD: machdep.c,v 1.87 2010/06/06 10:15:51 skrll Exp $");
#include "opt_cputype.h"
#include "opt_ddb.h"
@@ -256,8 +256,7 @@
/* Virtual page frame for /dev/mem (see mem.c) */
vaddr_t vmmap;
-/* Our exported CPU info; we can have only one. */
-struct cpu_info cpu_info_store = {
+struct cpu_info cpus[HPPA_MAXCPUS] = {
#ifdef MULTIPROCESSOR
.ci_curlwp = &lwp0
#endif
Index: src/sys/arch/hp700/include/cpu.h
diff -u src/sys/arch/hp700/include/cpu.h:1.49 src/sys/arch/hp700/include/cpu.h:1.50
--- src/sys/arch/hp700/include/cpu.h:1.49 Fri Jun 4 06:39:38 2010
+++ src/sys/arch/hp700/include/cpu.h Sun Jun 6 10:15:51 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.49 2010/06/04 06:39:38 skrll Exp $ */
+/* $NetBSD: cpu.h,v 1.50 2010/06/06 10:15:51 skrll Exp $ */
/* $OpenBSD: cpu.h,v 1.55 2008/07/23 17:39:35 kettenis Exp $ */
@@ -243,25 +243,28 @@
} __aligned(64);
-extern struct cpu_info cpu_info_store;
-
/*
* definitions of cpu-dependent requirements
* referenced in generic code
*/
-#define curcpu() (&cpu_info_store)
-#define cpu_number() 0
-
#define cpu_proc_fork(p1, p2)
#ifdef MULTIPROCESSOR
-#define CPU_IS_PRIMARY(ci) 1
+
+#define HPPA_MAXCPUS 4
+#define cpu_number() (curcpu()->ci_cpuid)
+
+#define CPU_IS_PRIMARY(ci) ((ci)->ci_cpuid == 0)
#define CPU_INFO_ITERATOR int
-#define CPU_INFO_FOREACH(cii, ci) cii = 0; ci = curcpu(), cii < 1; cii++
+#define CPU_INFO_FOREACH(cii, ci) cii = 0; ci = &cpu_info[0], cii < ncpus; cii++, ci++
void cpu_boot_secondary_processors(void);
-#endif /* MULTIPROCESSOR */
+#else /* MULTIPROCESSOR */
+
+#define HPPA_MAXCPUS 1
+#define curcpu() (&cpus[0])
+#define cpu_number() 0
static __inline struct lwp *
hppa_curlwp(void)
@@ -275,6 +278,10 @@
#define curlwp hppa_curlwp()
+#endif /* MULTIPROCESSOR */
+
+extern struct cpu_info cpus[HPPA_MAXCPUS];
+
#define DELAY(x) delay(x)
static __inline paddr_t