Date: Sun, 9 Jul 2006 15:24:21 GMT From: "Wojciech A. Koszek" <wkoszek@FreeBSD.org> To: Perforce Change Reviews <perforce@FreeBSD.org> Subject: PERFORCE change 101108 for review Message-ID: <200607091524.k69FOLUc020890@repoman.freebsd.org>
next in thread | raw e-mail | index | archive | help
http://perforce.freebsd.org/chv.cgi?CH=101108 Change 101108 by wkoszek@wkoszek_laptop on 2006/07/09 15:24:18 After taking a look through XXXMIPS markers, I managed to decrease suspicious places and fix problems which wouldn make kernel compilation impossible. The same, I introduce XXMIPS marker to let more knowledgable people know that this is a place for them to look at, since for my knowledge it should work ok. Those changes are: cpu.c: - comment __RMAN_RESOURCE_VISIBLE since it's no longer present. It was use to access r_start member of struct resource, which is now accessible throught public interface -- rman_get_start(). - intr.h -> intr_machdep.h conversion was done earlier. Make it less suspicious (XXX->XX), and remove old #include. - Bring proper formatting strings for mips_install_vector(). - Add comments about VEC() and VECI() macros. Declare them as public, and remove #undef's. - Use the rman_get_start() descibed above. db_disasm.c: - Bring proper formtatting strings. machdep.c: - XXXMIPS marker for informational comment is not needed. vm_machdep.c: - We have stubs here. There is no sense for XXXMIPS here. Affected files ... .. //depot/projects/mips2/src/sys/mips/mips/cpu.c#5 edit .. //depot/projects/mips2/src/sys/mips/mips/db_disasm.c#3 edit .. //depot/projects/mips2/src/sys/mips/mips/machdep.c#11 edit .. //depot/projects/mips2/src/sys/mips/mips/vm_machdep.c#2 edit Differences ... ==== //depot/projects/mips2/src/sys/mips/mips/cpu.c#5 (text+ko) ==== @@ -25,13 +25,21 @@ * $FreeBSD$ */ +/* + * XXMIPS: __RMAN_RESOURCE_VISIBLE is no longer present in the tree, and for + * struct resource we have nice interface. + */ +#if 0 #define __RMAN_RESOURCE_VISIBLE +#endif #include <sys/param.h> -#include <sys/systm.h> +#include <sys/kernel.h> #include <sys/module.h> +#include <sys/stdint.h> + #include <sys/bus.h> -#include <sys/kernel.h> #include <sys/rman.h> +#include <sys/systm.h> #include <vm/vm.h> #include <vm/vm_page.h> @@ -39,11 +47,8 @@ #include <machine/cache.h> #include <machine/cpufunc.h> /* - * XXXMIPS: This shoud me intr_machdep.h + * XXMIPS: I did intr.h -> intr_machdep.h conversion here. */ -#if 0 -#include <machine/intr.h> -#endif #include <machine/intr_machdep.h> #include <machine/locore.h> @@ -57,7 +62,7 @@ int mips_num_tlb_entries, cpu_id, fpu_id; /* - * XXXMIPS: CHange format strings. + * XXMIPS: Check format strings. * Uncomment this one once VECI macro defined below is uncommented. */ #if 0 @@ -69,51 +74,64 @@ max = 0x80; len = end - begin; if (len > max) - panic("exception code too big for vector %lx", addr); + panic("exception code too big for vector %jx", (intmax_t) addr); if (len == max) - printf("Exception vector at %lx out of space\n", addr); + printf("Exception vector at %jx out of space\n", (intmax_t) addr); else if (len + 8 >= max) - printf("Exception vector at %lx almost out of space\n", addr); + printf("Exception vector at %jx almost out of space\n", + (intmax_t) addr); memcpy((void *)addr, begin, len); } #endif +/* + * XXMIPS: Those declares external addresses of exception handlers to be used. Take a + * look at support.S to see *Vector code. + */ #define VEC(class) extern char class ## Vector[], class ## VectorEnd[] -/* General exception handler. */ +/* + * XXMIPS: This makes cooperation with exception handler more handy. Less hand-typing + * is needed. Take a look at mips_vector_init() in this file to see a usage. + */ +#define VECI(vec, class) mips_vector_install(MIPS_ ## vec ## _EXC_VEC, \ + class ## Vector, \ + class ## VectorEnd) +/* + * General exception handler. + */ VEC(Exception); -/* TLB miss, XTLB miss handler. */ +/* + * TLB miss, XTLB miss handler. + */ VEC(TLBMiss); VEC(XTLBMiss); -/* Cache error handler. */ +/* + * Cache error handler. + */ VEC(Cache); -#undef VEC +/* + * Here you have for example: extern char CacheVector, CacheVestorEnd + */ /* - * XXXMIPS: error : large integer implicitly truncated to unsigned type + * XXMIPS: error : large integer implicitly truncated to unsigned type. This + * error will stay unless we define proper addresses of exception vectors in + * cpufunc.h. */ static void mips_vector_init(void) { - -#define VECI(vec, class) mips_vector_install(MIPS_ ## vec ## _EXC_VEC, \ - class ## Vector, \ - class ## VectorEnd) -/* XXXMIPS */ #if 0 VECI(UTLB_MISS, TLBMiss); VECI(XTLB_MISS, XTLBMiss); VECI(CACHE_ERR, Cache); VECI(GEN, Exception); #endif -#undef VECI -/* XXXMIPS */ -#if 0 mips_wr_status(mips_rd_status() & ~MIPS_SR_BEV); -#endif } /* @@ -353,12 +371,13 @@ return (error); } /* - * XXXMIPS: error: structure has no member named `r_start' + * XMIPS: Right now accessing r_start is hiden and you can easily do + * this with rman_get_start(). */ #if 0 intr = res->r_start; #endif - intr = 0; + intr = rman_get_start(res); #if 0 cpu_establish_hardintr(intr, handler, arg); ==== //depot/projects/mips2/src/sys/mips/mips/db_disasm.c#3 (text+ko) ==== @@ -507,16 +507,15 @@ db_symbol_values(sym, &symname, 0); /* - * XXXMIPS: Check if the format is right here. - * Probably not. + * XXMIPS: Check if the format is right here. */ if (symname) { if (diff == 0) db_printf("%s", symname); else - db_printf("<%s+%lx>", symname, (unsigned long) diff); - db_printf("\t[addr:0x%lx]", (unsigned long) loc); + db_printf("<%s+%jx>", symname, (uintmax_t) diff); + db_printf("\t[addr:0x%jx]", (uintmax_t) loc); } else { - db_printf("0x%lx", (unsigned long) loc); + db_printf("0x%jx", (uintmax_t) loc); } } ==== //depot/projects/mips2/src/sys/mips/mips/machdep.c#11 (text+ko) ==== @@ -91,15 +91,15 @@ mips_init(void) { /* - * XXXMIPS: This one is called from subr_param.c. + * This one is called from subr_param.c. */ init_param2(physmem); /* - * XXXMIPS: This one lies in cpu.c. + * This one lies in cpu.c. */ mips_cpu_init(); /* - * XXXMIPS: This is from pmap.c. + * This is from pmap.c. */ pmap_bootstrap(); ==== //depot/projects/mips2/src/sys/mips/mips/vm_machdep.c#2 (text+ko) ==== @@ -54,11 +54,6 @@ #include <vm/uma.h> #include <vm/uma_int.h> - -/* - * XXXMIPS: Bring comments after eventual new-world order. - */ - void cpu_fork(register struct thread *td1, register struct proc *p2, struct thread *td2, int flags)
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200607091524.k69FOLUc020890>