Source-Changes-HG archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
[src/trunk]: src/sys/arch/powerpc Make more module friendly (part 1).
details: https://anonhg.NetBSD.org/src/rev/b9c96ffc581f
branches: trunk
changeset: 766294:b9c96ffc581f
user: matt <matt%NetBSD.org@localhost>
date: Mon Jun 20 08:47:12 2011 +0000
description:
Make more module friendly (part 1).
Don't export frame.h and psl.h to all of the kernel.
add lwp_pc and clkf accessor functions.
whitespace cleanup.
diffstat:
sys/arch/powerpc/include/cpu.h | 181 +++++++++++-----------------
sys/arch/powerpc/powerpc/powerpc_machdep.c | 31 ++++-
2 files changed, 102 insertions(+), 110 deletions(-)
diffs (truncated from 328 to 300 lines):
diff -r b88c51807c00 -r b9c96ffc581f sys/arch/powerpc/include/cpu.h
--- a/sys/arch/powerpc/include/cpu.h Mon Jun 20 08:46:28 2011 +0000
+++ b/sys/arch/powerpc/include/cpu.h Mon Jun 20 08:47:12 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: cpu.h,v 1.82 2011/06/17 19:04:00 matt Exp $ */
+/* $NetBSD: cpu.h,v 1.83 2011/06/20 08:47:12 matt Exp $ */
/*
* Copyright (C) 1999 Wolfgang Solfrank.
@@ -45,13 +45,12 @@
#if defined(_KERNEL) || defined(_KMEMUSER)
#if defined(_KERNEL_OPT)
#include "opt_lockdebug.h"
+#include "opt_modular.h"
#include "opt_multiprocessor.h"
#include "opt_ppcarch.h"
#endif
#ifdef _KERNEL
-#include <machine/frame.h>
-#include <machine/psl.h>
#include <machine/intr.h>
#include <sys/device_if.h>
#include <sys/evcnt.h>
@@ -154,8 +153,7 @@
#ifdef _KERNEL
-#ifdef MULTIPROCESSOR
-
+#if defined(MULTIPROCESSOR) && !defined(_MODULE)
struct cpu_hatch_data {
device_t self;
struct cpu_info *ci;
@@ -168,33 +166,25 @@
int batu[4], batl[4];
int tbu, tbl;
};
-
-static __inline int
-cpu_number(void)
-{
- int pir;
+#endif /* MULTIPROCESSOR && !_MODULE */
- __asm ("mfspr %0,1023" : "=r"(pir));
- return pir;
-}
-
-void cpu_boot_secondary_processors(void);
-
+#if defined(MULTIPROCESSOR) || defined(_MODULE)
+#define cpu_number() (curcpu()->ci_index + 0)
#define CPU_IS_PRIMARY(ci) ((ci)->ci_cpuid == 0)
-#define CPU_INFO_ITERATOR int
-#define CPU_INFO_FOREACH(cii, ci) \
+#define CPU_INFO_ITERATOR int
+#define CPU_INFO_FOREACH(cii, ci) \
cii = 0, ci = &cpu_info[0]; cii < ncpu; cii++, ci++
#else
-
#define cpu_number() 0
-#define CPU_INFO_ITERATOR int
-#define CPU_INFO_FOREACH(cii, ci) \
+#define CPU_IS_PRIMARY(ci) true
+#define CPU_INFO_ITERATOR int
+#define CPU_INFO_FOREACH(cii, ci) \
cii = 0, ci = curcpu(); ci != NULL; ci = NULL
-#endif /* MULTIPROCESSOR */
+#endif /* MULTIPROCESSOR || _MODULE */
extern struct cpu_info cpu_info[];
@@ -314,88 +304,69 @@
return (pvr);
}
-static __inline int
-cntlzw(uint32_t val)
-{
- int cnt;
-
- __asm volatile ("cntlzw %0,%1" : "=r"(cnt) : "r"(val));
- return (cnt);
-}
-
-/*
- * functions to access the G3's cache throttling register
- * bits 1 - 9 specify additional waits on cache acess
- * bit 0 enables cache throttling
- */
-
-static __inline int
-mfictc(void)
-{
- int reg;
-
- __asm ("mfspr %0,1019" : "=r"(reg));
- return reg;
-}
-
-static __inline void
-mtictc(uint32_t reg)
-{
-
- __asm ("mtspr 1019,%0" :: "r"(reg));
-}
-
-#define CLKF_USERMODE(frame) (((frame)->cf_srr1 & PSL_PR) != 0)
-#define CLKF_PC(frame) ((frame)->cf_srr0)
-#define CLKF_INTR(frame) ((frame)->cf_idepth > 0)
-
-#define LWP_PC(l) (trapframe(l)->tf_srr0)
-
-#define cpu_proc_fork(p1, p2)
-
+#if !defined(_MODULE)
extern int powersave;
extern int cpu_timebase;
extern int cpu_printfataltraps;
extern char cpu_model[];
-struct cpu_info *cpu_attach_common(device_t, int);
-void cpu_setup(device_t, struct cpu_info *);
-void cpu_identify(char *, size_t);
-int cpu_get_dfs(void);
-void cpu_set_dfs(int);
-void delay (unsigned int);
-void cpu_probe_cache(void);
+struct cpu_info *
+ cpu_attach_common(device_t, int);
+void cpu_setup(device_t, struct cpu_info *);
+void cpu_identify(char *, size_t);
+int cpu_get_dfs(void);
+void cpu_set_dfs(int);
+void cpu_probe_cache(void);
#ifndef PPC_BOOKE
-void dcache_flush_page(vaddr_t);
-void icache_flush_page(vaddr_t);
-void dcache_flush(vaddr_t, vsize_t);
-void icache_flush(vaddr_t, vsize_t);
+void dcache_flush_page(vaddr_t);
+void icache_flush_page(vaddr_t);
+void dcache_flush(vaddr_t, vsize_t);
+void icache_flush(vaddr_t, vsize_t);
#else
-void dcache_wb_page(vaddr_t);
-void dcache_wbinv_page(vaddr_t);
-void dcache_inv_page(vaddr_t);
-void dcache_zero_page(vaddr_t);
-void icache_inv_page(vaddr_t);
-void dcache_wb(vaddr_t, vsize_t);
-void dcache_wbinv(vaddr_t, vsize_t);
-void dcache_inv(vaddr_t, vsize_t);
-void icache_inv(vaddr_t, vsize_t);
+void dcache_wb_page(vaddr_t);
+void dcache_wbinv_page(vaddr_t);
+void dcache_inv_page(vaddr_t);
+void dcache_zero_page(vaddr_t);
+void icache_inv_page(vaddr_t);
+void dcache_wb(vaddr_t, vsize_t);
+void dcache_wbinv(vaddr_t, vsize_t);
+void dcache_inv(vaddr_t, vsize_t);
+void icache_inv(vaddr_t, vsize_t);
#endif
-void *mapiodev(paddr_t, psize_t);
-void unmapiodev(vaddr_t, vsize_t);
+void * mapiodev(paddr_t, psize_t);
+void unmapiodev(vaddr_t, vsize_t);
#ifdef MULTIPROCESSOR
-int md_setup_trampoline(volatile struct cpu_hatch_data *, struct cpu_info *);
-void md_presync_timebase(volatile struct cpu_hatch_data *);
-void md_start_timebase(volatile struct cpu_hatch_data *);
-void md_sync_timebase(volatile struct cpu_hatch_data *);
-void md_setup_interrupts(void);
-int cpu_spinup(device_t, struct cpu_info *);
-register_t cpu_hatch(void);
-void cpu_spinup_trampoline(void);
-#endif
+int md_setup_trampoline(volatile struct cpu_hatch_data *,
+ struct cpu_info *);
+void md_presync_timebase(volatile struct cpu_hatch_data *);
+void md_start_timebase(volatile struct cpu_hatch_data *);
+void md_sync_timebase(volatile struct cpu_hatch_data *);
+void md_setup_interrupts(void);
+int cpu_spinup(device_t, struct cpu_info *);
+register_t
+ cpu_hatch(void);
+void cpu_spinup_trampoline(void);
+void cpu_boot_secondary_processors(void);
+#endif /* MULTIPROCESSOR */
+#endif /* !_MODULE */
+
+#define cpu_proc_fork(p1, p2)
#define DELAY(n) delay(n)
+void delay(unsigned int);
+
+#define CLKF_USERMODE(cf) cpu_clkf_usermode(cf)
+#define CLKF_PC(cf) cpu_clkf_pc(cf)
+#define CLKF_INTR(cf) cpu_clkf_intr(cf)
+
+bool cpu_clkf_usermode(const struct clockframe *);
+vaddr_t cpu_clkf_pc(const struct clockframe *);
+bool cpu_clkf_intr(const struct clockframe *);
+
+#define LWP_PC(l) cpu_lwp_pc(l)
+
+vaddr_t cpu_lwp_pc(struct lwp *);
void * cpu_uarea_alloc(bool);
bool cpu_uarea_free(void *);
@@ -406,13 +377,12 @@
void cpu_fixup_stubs(void);
-#if !defined(PPC_IBM4XX) && !defined(PPC_BOOKE)
-void oea_init(void (*)(void));
-void oea_startup(const char *);
-void oea_dumpsys(void);
-void oea_install_extint(void (*)(void));
-paddr_t kvtop(void *);
-void softnet(int);
+#if !defined(PPC_IBM4XX) && !defined(PPC_BOOKE) && !defined(_MODULE)
+void oea_init(void (*)(void));
+void oea_startup(const char *);
+void oea_dumpsys(void);
+void oea_install_extint(void (*)(void));
+paddr_t kvtop(void *);
extern paddr_t msgbuf_paddr;
extern int cpu_altivec;
@@ -422,13 +392,12 @@
/* XXX The below breaks unified pmap on ppc32 */
-#if defined(_KERNEL) || defined(_STANDALONE)
-#if !defined(CACHELINESIZE)
-#ifdef PPC_IBM403
+#if !defined(CACHELINESIZE) && !defined(_MODULE) \
+ && (defined(_KERNEL) || defined(_STANDALONE))
+#if defined(PPC_IBM403)
#define CACHELINESIZE 16
#define MAXCACHELINESIZE 16
-#else
-#if defined (PPC_OEA64_BRIDGE)
+#elif defined (PPC_OEA64_BRIDGE)
#define CACHELINESIZE 128
#define MAXCACHELINESIZE 128
#else
@@ -436,10 +405,8 @@
#define MAXCACHELINESIZE 32
#endif /* PPC_OEA64_BRIDGE */
#endif
-#endif
-#endif
-void __syncicache(void *, size_t);
+void __syncicache(void *, size_t);
/*
* CTL_MACHDEP definitions.
diff -r b88c51807c00 -r b9c96ffc581f sys/arch/powerpc/powerpc/powerpc_machdep.c
--- a/sys/arch/powerpc/powerpc/powerpc_machdep.c Mon Jun 20 08:46:28 2011 +0000
+++ b/sys/arch/powerpc/powerpc/powerpc_machdep.c Mon Jun 20 08:47:12 2011 +0000
@@ -1,4 +1,4 @@
-/* $NetBSD: powerpc_machdep.c,v 1.55 2011/06/17 19:03:01 matt Exp $ */
+/* $NetBSD: powerpc_machdep.c,v 1.56 2011/06/20 08:47:13 matt Exp $ */
/*
* Copyright (C) 1995, 1996 Wolfgang Solfrank.
@@ -32,7 +32,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: powerpc_machdep.c,v 1.55 2011/06/17 19:03:01 matt Exp $");
+__KERNEL_RCSID(0, "$NetBSD: powerpc_machdep.c,v 1.56 2011/06/20 08:47:13 matt Exp $");
#include "opt_altivec.h"
#include "opt_modular.h"
@@ -60,9 +60,10 @@
#include <dev/mm.h>
+#include <powerpc/fpu.h>
#include <powerpc/pcb.h>
+#include <powerpc/psl.h>
#include <powerpc/userret.h>
-#include <powerpc/fpu.h>
#if defined(ALTIVEC) || defined(PPC_HAVE_SPE)
#include <powerpc/altivec.h>
#endif
@@ -435,6 +436,30 @@
l->l_md.md_astpending = 1;
}
Home |
Main Index |
Thread Index |
Old Index