Date: Fri, 22 Feb 2008 05:31:34 GMT From: Marcel Moolenaar <marcel@FreeBSD.org> To: Perforce Change Reviews <perforce@freebsd.org> Subject: PERFORCE change 135941 for review Message-ID: <200802220531.m1M5VYfa048931@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=135941 Change 135941 by marcel@marcel_xcllnt on 2008/02/22 05:31:11 Unify <machine/kdb.h> Simply stop using an inline function and instead put the prototype in the header. The implementation has been moved to machdep.c. Affected files ... .. //depot/projects/e500/sys/powerpc/aim/machdep.c#9 edit .. //depot/projects/e500/sys/powerpc/booke/machdep.c#11 edit .. //depot/projects/e500/sys/powerpc/include/kdb.h#4 edit Differences ... ==== //depot/projects/e500/sys/powerpc/aim/machdep.c#9 (text+ko) ==== @@ -107,6 +107,7 @@ #include <machine/cpu.h> #include <machine/elf.h> #include <machine/fpu.h> +#include <machine/kdb.h> #include <machine/md_var.h> #include <machine/metadata.h> #include <machine/mmuvar.h> @@ -897,6 +898,20 @@ return (0); } +void +kdb_cpu_clear_singlestep(void) +{ + + kdb_frame->srr1 &= ~PSL_SE; +} + +void +kdb_cpu_set_singlestep(void) +{ + + kdb_frame->srr1 |= PSL_SE; +} + /* * Initialise a struct pcpu. */ ==== //depot/projects/e500/sys/powerpc/booke/machdep.c#11 (text+ko) ==== @@ -119,6 +119,7 @@ #include <vm/vm_pager.h> #include <machine/cpu.h> +#include <machine/kdb.h> #include <machine/reg.h> #include <machine/vmparam.h> #include <machine/spr.h> @@ -785,6 +786,26 @@ } void +kdb_cpu_clear_singlestep(void) +{ + register_t r; + + r = mfspr(SPR_DBCR0); + mtspr(SPR_DBCR0, r & ~DBCR0_IC); + kdb_frame->srr1 &= ~PSL_DE; +} + +void +kdb_cpu_set_singlestep(void) +{ + register_t r; + + r = mfspr(SPR_DBCR0); + mtspr(SPR_DBCR0, r | DBCR0_IC | DBCR0_IDM); + kdb_frame->srr1 |= PSL_DE; +} + +void sendsig(sig_t catcher, ksiginfo_t *ksi, sigset_t *mask) { struct trapframe *tf; ==== //depot/projects/e500/sys/powerpc/include/kdb.h#4 (text+ko) ==== @@ -35,43 +35,13 @@ #include <machine/psl.h> #include <machine/spr.h> -static __inline void -kdb_cpu_clear_singlestep(void) -{ -#ifdef E500 - u_int value; - - value = mfspr(SPR_DBCR0); +void kdb_cpu_clear_singlestep(void); +void kdb_cpu_set_singlestep(void); - value &= ~DBCR0_IC; - mtspr(SPR_DBCR0, value); - kdb_frame->srr1 &= ~PSL_DE; -#else - kdb_frame->srr1 &= ~PSL_SE; -#endif -} - static __inline void -kdb_cpu_set_singlestep(void) +kdb_cpu_sync_icache(unsigned char *addr, size_t size) { -#ifdef E500 - u_int value; - u_int msr_value; - - value = mfspr(SPR_DBCR0); - value = value | DBCR0_IC | DBCR0_IDM; - mtspr(SPR_DBCR0, value); - - msr_value = mfmsr(); - kdb_frame->srr1 |= PSL_DE; -#else - kdb_frame->srr1 |= PSL_SE; -#endif -} -static __inline void -kdb_cpu_sync_icache(unsigned char *addr, size_t size) -{ __syncicache(addr, size); }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200802220531.m1M5VYfa048931>