Module Name: src
Committed By: thorpej
Date: Sun Dec 31 21:59:24 UTC 2023
Modified Files:
src/sys/arch/m68k/include: pmap_motorola.h
src/sys/arch/m68k/m68k: pmap_motorola.c vm_machdep.c
Log Message:
Provide a vtophys() function like other platforms do, and implement
kvtop() (which will be g/c'd shortly) in terms of it.
To generate a diff of this commit:
cvs rdiff -u -r1.42 -r1.43 src/sys/arch/m68k/include/pmap_motorola.h
cvs rdiff -u -r1.84 -r1.85 src/sys/arch/m68k/m68k/pmap_motorola.c
cvs rdiff -u -r1.41 -r1.42 src/sys/arch/m68k/m68k/vm_machdep.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/m68k/include/pmap_motorola.h
diff -u src/sys/arch/m68k/include/pmap_motorola.h:1.42 src/sys/arch/m68k/include/pmap_motorola.h:1.43
--- src/sys/arch/m68k/include/pmap_motorola.h:1.42 Wed Dec 27 03:03:41 2023
+++ src/sys/arch/m68k/include/pmap_motorola.h Sun Dec 31 21:59:24 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap_motorola.h,v 1.42 2023/12/27 03:03:41 thorpej Exp $ */
+/* $NetBSD: pmap_motorola.h,v 1.43 2023/12/31 21:59:24 thorpej Exp $ */
/*
* Copyright (c) 1991, 1993
@@ -254,4 +254,6 @@ void _pmap_set_page_cacheable(struct pma
void _pmap_set_page_cacheinhibit(struct pmap *, vaddr_t);
int _pmap_page_is_cacheable(struct pmap *, vaddr_t);
+paddr_t vtophys(vaddr_t va);
+
#endif /* !_M68K_PMAP_MOTOROLA_H_ */
Index: src/sys/arch/m68k/m68k/pmap_motorola.c
diff -u src/sys/arch/m68k/m68k/pmap_motorola.c:1.84 src/sys/arch/m68k/m68k/pmap_motorola.c:1.85
--- src/sys/arch/m68k/m68k/pmap_motorola.c:1.84 Thu Dec 28 15:33:12 2023
+++ src/sys/arch/m68k/m68k/pmap_motorola.c Sun Dec 31 21:59:24 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: pmap_motorola.c,v 1.84 2023/12/28 15:33:12 thorpej Exp $ */
+/* $NetBSD: pmap_motorola.c,v 1.85 2023/12/31 21:59:24 thorpej Exp $ */
/*-
* Copyright (c) 1999 The NetBSD Foundation, Inc.
@@ -119,7 +119,7 @@
#include "opt_m68k_arch.h"
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: pmap_motorola.c,v 1.84 2023/12/28 15:33:12 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: pmap_motorola.c,v 1.85 2023/12/31 21:59:24 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -1593,6 +1593,22 @@ pmap_extract(pmap_t pmap, vaddr_t va, pa
}
/*
+ * vtophys: [ INTERFACE-ish ]
+ *
+ * Kernel virtual to physical. Use with caution.
+ */
+paddr_t
+vtophys(vaddr_t va)
+{
+ paddr_t pa;
+
+ if (pmap_extract(pmap_kernel(), va, &pa))
+ return pa;
+ KASSERT(0);
+ return (paddr_t) -1;
+}
+
+/*
* pmap_copy: [ INTERFACE ]
*
* Copy the mapping range specified by src_addr/len
Index: src/sys/arch/m68k/m68k/vm_machdep.c
diff -u src/sys/arch/m68k/m68k/vm_machdep.c:1.41 src/sys/arch/m68k/m68k/vm_machdep.c:1.42
--- src/sys/arch/m68k/m68k/vm_machdep.c:1.41 Wed Dec 20 00:40:43 2023
+++ src/sys/arch/m68k/m68k/vm_machdep.c Sun Dec 31 21:59:24 2023
@@ -1,4 +1,4 @@
-/* $NetBSD: vm_machdep.c,v 1.41 2023/12/20 00:40:43 thorpej Exp $ */
+/* $NetBSD: vm_machdep.c,v 1.42 2023/12/31 21:59:24 thorpej Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -39,7 +39,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.41 2023/12/20 00:40:43 thorpej Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vm_machdep.c,v 1.42 2023/12/31 21:59:24 thorpej Exp $");
#include <sys/param.h>
#include <sys/systm.h>
@@ -252,11 +252,7 @@ physunaccess(void *vaddr, int size)
int
kvtop(void *addr)
{
- paddr_t pa;
-
- if (pmap_extract(pmap_kernel(), (vaddr_t)addr, &pa) == false)
- panic("kvtop: zero page frame");
- return (int)pa;
+ return (int)vtophys((vaddr_t)addr);
}
#endif