Module Name: src
Committed By: cliff
Date: Sun Mar 21 18:17:21 UTC 2010
Modified Files:
src/sys/arch/mips/include [matt-nb5-mips64]: cpu.h
Log Message:
- add ci_next_cp0_clk_intr, ci_count_compare_evcnt,
ci_count_compare_missed_evcnt
to struct cpu_info, for per-CPU count/compare clock programming
- add ci_request_ipis to struct cpu_info to allow passing IPI tags
on systems where hardware does not provide such feature; use atomic ops for
this.
- declaration of mips_vector_init was moved from here to mips/include/locore.h
To generate a diff of this commit:
cvs rdiff -u -r1.90.16.27 -r1.90.16.28 src/sys/arch/mips/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/mips/include/cpu.h
diff -u src/sys/arch/mips/include/cpu.h:1.90.16.27 src/sys/arch/mips/include/cpu.h:1.90.16.28
--- src/sys/arch/mips/include/cpu.h:1.90.16.27 Thu Mar 11 08:19:01 2010
+++ src/sys/arch/mips/include/cpu.h Sun Mar 21 18:17:21 2010
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.90.16.27 2010/03/11 08:19:01 matt Exp $ */
+/* $NetBSD: cpu.h,v 1.90.16.28 2010/03/21 18:17:21 cliff Exp $ */
/*-
* Copyright (c) 1992, 1993
@@ -76,8 +76,12 @@
int ci_mtx_oldspl; /* saved SPL value */
int ci_idepth; /* hardware interrupt depth */
int ci_cpl; /* current [interrupt] priority level */
+ uint32_t ci_next_cp0_clk_intr; /* for hard clock intr scheduling */
+ struct evcnt ci_count_compare_evcnt; /* hard clock intr counter */
+ struct evcnt ci_count_compare_missed_evcnt; /* hard clock miss counter */
struct lwp *ci_softlwps[SOFTINT_COUNT];
#define ci_softints ci_data.cpu_softints
+
/*
* Per-cpu pmap information
*/
@@ -86,8 +90,13 @@
struct segtab *ci_pmap_segbase;
vaddr_t ci_pmap_srcbase; /* starting VA of ephemeral src space */
vaddr_t ci_pmap_dstbase; /* starting VA of ephemeral dst space */
+
+
#ifdef MULTIPROCESSOR
volatile u_long ci_flags;
+ volatile uint64_t ci_request_ipis;
+ /* bitmask of IPIs requested */
+ /* use on chips where hw cannot pass tag */
uint64_t ci_active_ipis; /* bitmask of IPIs being serviced */
uint32_t ci_ksp_tlb_slot; /* tlb entry for kernel stack */
void *ci_fpsave_si; /* FP sync softint handler */
@@ -105,6 +114,7 @@
#define CPUF_FPUSAVE 0x10 /* CPU is currently in fpusave_cpu() */
#define CPUF_USERPMAP 0x20 /* CPU has a user pmap activated */
#endif
+
};
#define CPU_INFO_ITERATOR int
@@ -185,7 +195,7 @@
#define cpu_number() (curcpu()->ci_cpuid)
#define CPU_IS_PRIMARY(ci) ((ci)->ci_cpuid == 0)
#else
-#define cpu_number() (0)
+#define cpu_number() (0L)
#endif
#define cpu_proc_fork(p1, p2) ((void)((p2)->p_md.md_abi = (p1)->p_md.md_abi))
@@ -522,7 +532,6 @@
struct phys_ram_seg;
void dumpsys(void);
int savectx(struct user *);
-void mips_vector_init(void);
void mips_init_msgbuf(void);
void mips_init_lwp0_uarea(void);
void mips_page_physload(vaddr_t, vaddr_t,