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