summaryrefslogtreecommitdiff
path: root/sys/arch/mvme68k/include/vmparam.h
diff options
context:
space:
mode:
authorNiklas Hallqvist <niklas@cvs.openbsd.org>1998-03-01 00:38:26 +0000
committerNiklas Hallqvist <niklas@cvs.openbsd.org>1998-03-01 00:38:26 +0000
commitb92b419a6a8ef401c8a4e022115bf3e18426eea0 (patch)
treeff214e6b334202d15c2b303427a2a5d2f16af4f0 /sys/arch/mvme68k/include/vmparam.h
parent4f215f167e35940141001f7f31bfce350266d153 (diff)
Merge of MACHINE_NEW_CONTIG (aka MNN) code from Chuck Cranor,
<chuck@openbsd.org>. This code is as of yet disabled on all platforms, actually not yet supported on more than mvme68k, although other platforms are expected soon, as code is already available. This code makes handling of multiple physical memory regions consistent over all platforms, as well as keeping the performance of maintaining a single continuous memory chunk. It is also a requirement for the upcoming UVM replacement VM system. What I did in this merge: just declared the pmap_map function in a MD include file per port that needs it. It's not an exported pmap interface, says Chuck. It ended up in differnt include files on differnet ports, as I tried to follow the current policy on a per-arch basis.
Diffstat (limited to 'sys/arch/mvme68k/include/vmparam.h')
-rw-r--r--sys/arch/mvme68k/include/vmparam.h28
1 files changed, 27 insertions, 1 deletions
diff --git a/sys/arch/mvme68k/include/vmparam.h b/sys/arch/mvme68k/include/vmparam.h
index 82ca7b4d107..c921a36633d 100644
--- a/sys/arch/mvme68k/include/vmparam.h
+++ b/sys/arch/mvme68k/include/vmparam.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: vmparam.h,v 1.3 1996/04/28 10:56:37 deraadt Exp $ */
+/* $OpenBSD: vmparam.h,v 1.4 1998/03/01 00:37:39 niklas Exp $ */
/*
* Copyright (c) 1988 University of Utah.
@@ -42,6 +42,9 @@
* @(#)vmparam.h 8.2 (Berkeley) 4/19/94
*/
+#ifndef _MVME68K_VMPARAM_H_
+#define _MVME68K_VMPARAM_H_
+
/*
* Machine dependent constants for MVME68K
*/
@@ -244,3 +247,26 @@
/* pcb base */
#define pcbb(p) ((u_int)(p)->p_addr)
+
+/* Use new VM page bootstrap interface. */
+#define MACHINE_NEW_NONCONTIG
+
+#if defined(MACHINE_NEW_NONCONTIG)
+/*
+ * Constants which control the way the VM system deals with memory segments.
+ * The hp300 only has one physical memory segment.
+ */
+#define VM_PHYSSEG_MAX 1
+#define VM_PHYSSEG_STRAT VM_PSTRAT_BSEARCH
+#define VM_PHYSSEG_NOADD
+
+/*
+ * pmap-specific data stored in the vm_physmem[] array.
+ */
+struct pmap_physseg {
+ struct pv_entry *pvent; /* pv table for this seg */
+ char *attrs; /* page attributes for this seg */
+};
+#endif /* MACHINE_NEW_NONCONTIG */
+
+#endif /* _MVME68K_VMPARAM_H_ */