Module Name:    src
Committed By:   tsutsui
Date:           Wed Jul  1 13:44:33 UTC 2009

Modified Files:
        src/sys/arch/atari/atari: atari_init.c

Log Message:
Define and use macro to calculate kernel physical addresses
after relocation to TT RAM. No binary changes.


To generate a diff of this commit:
cvs rdiff -u -r1.79 -r1.80 src/sys/arch/atari/atari/atari_init.c

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/atari/atari/atari_init.c
diff -u src/sys/arch/atari/atari/atari_init.c:1.79 src/sys/arch/atari/atari/atari_init.c:1.80
--- src/sys/arch/atari/atari/atari_init.c:1.79	Wed Mar 18 16:00:10 2009
+++ src/sys/arch/atari/atari/atari_init.c	Wed Jul  1 13:44:32 2009
@@ -1,4 +1,4 @@
-/*	$NetBSD: atari_init.c,v 1.79 2009/03/18 16:00:10 cegger Exp $	*/
+/*	$NetBSD: atari_init.c,v 1.80 2009/07/01 13:44:32 tsutsui Exp $	*/
 
 /*
  * Copyright (c) 1995 Leo Weppelman
@@ -33,7 +33,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: atari_init.c,v 1.79 2009/03/18 16:00:10 cegger Exp $");
+__KERNEL_RCSID(0, "$NetBSD: atari_init.c,v 1.80 2009/07/01 13:44:32 tsutsui Exp $");
 
 #include "opt_ddb.h"
 #include "opt_mbtype.h"
@@ -153,6 +153,8 @@
 #endif
 int	reloc_kernel = RELOC_KERNEL;		/* Patchable	*/
 
+#define	RELOC_PA(base, pa)	((base) + (pa))	/* used to set up PTE etc. */
+
 /*
  * this is the C-level entry function, it's called from locore.s.
  * Preconditions:
@@ -358,7 +360,7 @@
 	 * - Text pages are RO
 	 * - Page zero is invalid
 	 */
-	pg_proto = (0 + kbase) /* relocated PA */ | PG_RO | PG_V;
+	pg_proto = RELOC_PA(kbase, 0) | PG_RO | PG_V;
 	pg       = (pt_entry_t *)ptpa;
 	*pg++    = PG_NV;
 
@@ -934,8 +936,8 @@
 	sg  = (st_entry_t *)sysseg_pa;
 	pg  = (pt_entry_t *)sysptmap_pa;
 	epg = &pg[ptsize >> PGSHIFT];
-	sg_proto = (ptpa + kbase) /* relocated PA */ | SG_RW | SG_V;
-	pg_proto = (ptpa + kbase) /* relocated PA */ | PG_RW | PG_CI | PG_V;
+	sg_proto = RELOC_PA(kbase, ptpa) | SG_RW | SG_V;
+	pg_proto = RELOC_PA(kbase, ptpa) | PG_RW | PG_CI | PG_V;
 	while (pg < epg) {
 		*sg++ = sg_proto;
 		*pg++ = pg_proto;
@@ -962,8 +964,8 @@
 	sg = &sg[256 - 1];			/* XXX should be TIA_SIZE */
 	pg = (pt_entry_t *)sysptmap_pa;
 	pg = &pg[256 - 1];			/* XXX should be TIA_SIZE */
-	*sg = (sysptmap_pa + kbase) /* relocated PA */ | SG_RW | SG_V;
-	*pg = (sysptmap_pa + kbase) /* relocated PA */ | PG_RW | PG_CI | PG_V;
+	*sg = RELOC_PA(kbase, sysptmap_pa) | SG_RW | SG_V;
+	*pg = RELOC_PA(kbase, sysptmap_pa) | PG_RW | PG_CI | PG_V;
 }
 
 #if defined(M68040) || defined(M68060)
@@ -1001,7 +1003,7 @@
 	sg  = (st_entry_t *)sysseg_pa;
 	sg  = &sg[SG4_LEV1SIZE];
 	esg = &sg[nl2desc];
-	sg_proto = (ptpa + kbase) /* relocated PA */ | SG_U | SG_RW | SG_V;
+	sg_proto = RELOC_PA(kbase, ptpa) | SG_U | SG_RW | SG_V;
 	while (sg < esg) {
 		*sg++     = sg_proto;
 		sg_proto += (SG4_LEV3SIZE * sizeof(st_entry_t));
@@ -1015,7 +1017,7 @@
 	nl1desc = howmany(nl2desc, SG4_LEV2SIZE);
 	sg  = (st_entry_t *)sysseg_pa;
 	esg = &sg[nl1desc];
-	sg_proto = ((paddr_t)&sg[SG4_LEV1SIZE] + kbase) /* relocated PA */
+	sg_proto = RELOC_PA(kbase, (paddr_t)&sg[SG4_LEV1SIZE])
 	    | SG_U | SG_RW | SG_V;
 	while (sg < esg) {
 		*sg++     = sg_proto;
@@ -1034,8 +1036,7 @@
 	sg  = (st_entry_t *)sysseg_pa;
 	sg  = &sg[i + SG4_LEV2SIZE - (NPTEPG / SG4_LEV3SIZE)];
 	esg = &sg[NPTEPG / SG4_LEV3SIZE];
-	sg_proto = (sysptmap_pa + kbase) /* relocated PA */
-	    | SG_U | SG_RW | SG_V;
+	sg_proto = RELOC_PA(kbase, sysptmap_pa) | SG_U | SG_RW | SG_V;
 	while (sg < esg) {
 		*sg++ = sg_proto;
 		sg_proto += (SG4_LEV3SIZE * sizeof(st_entry_t));
@@ -1049,7 +1050,7 @@
 	 */
 	pg  = (pt_entry_t *)sysptmap_pa;
 	epg = &pg[ptsize >> PGSHIFT];
-	pg_proto = (ptpa + kbase) /* relocated PA */ | PG_RW | PG_CI | PG_V;
+	pg_proto = RELOC_PA(kbase + ptpa) | PG_RW | PG_CI | PG_V;
 	while (pg < epg) {
 		*pg++ = pg_proto;
 		pg_proto += PAGE_SIZE;
@@ -1068,7 +1069,7 @@
 	 */
 	pg = (pt_entry_t *)sysptmap_pa;
 	pg = &pg[256 - 1];		/* XXX: should be TIA_SIZE */
-	*pg = (sysptmap_pa + kbase) /* relocated PA */ | PG_RW | PG_CI | PG_V;
+	*pg = RELOC_PA(kbase, sysptmap_pa) | PG_RW | PG_CI | PG_V;
 }
 #endif /* M68040 */
 

Reply via email to