summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/pmap.h
diff options
context:
space:
mode:
authordyson <dyson@FreeBSD.org>1996-07-30 03:08:57 +0000
committerdyson <dyson@FreeBSD.org>1996-07-30 03:08:57 +0000
commit01ce9d323a15a1365c3b7802f404edd77da1e38b (patch)
treeac8503dbf428f1dae7c0a8bba152c865f89a493a /sys/i386/include/pmap.h
parentff1df96f3bbd049cd4de0c3d6652ac34449f19b9 (diff)
downloadFreeBSD-src-01ce9d323a15a1365c3b7802f404edd77da1e38b.zip
FreeBSD-src-01ce9d323a15a1365c3b7802f404edd77da1e38b.tar.gz
Backed out the recent changes/enhancements to the VM code. The
problem with the 'shell scripts' was found, but there was a 'strange' problem found with a 486 laptop that we could not find. This commit backs the code back to 25-jul, and will be re-entered after the snapshot in smaller (more easily tested) chunks.
Diffstat (limited to 'sys/i386/include/pmap.h')
-rw-r--r--sys/i386/include/pmap.h25
1 files changed, 6 insertions, 19 deletions
diff --git a/sys/i386/include/pmap.h b/sys/i386/include/pmap.h
index b53db62..64b682c 100644
--- a/sys/i386/include/pmap.h
+++ b/sys/i386/include/pmap.h
@@ -42,13 +42,12 @@
*
* from: hp300: @(#)pmap.h 7.2 (Berkeley) 12/16/90
* from: @(#)pmap.h 7.4 (Berkeley) 5/12/91
- * $Id: pmap.h,v 1.40 1996/06/08 11:21:19 bde Exp $
+ * $Id: pmap.h,v 1.41 1996/07/27 03:23:32 dyson Exp $
*/
#ifndef _MACHINE_PMAP_H_
#define _MACHINE_PMAP_H_
-
/*
* Page-directory and page-table entires follow this format, with a few
* of the fields not present here and there, depending on a lot of things.
@@ -114,9 +113,6 @@
#define ISA_HOLE_LENGTH (0x100000-ISA_HOLE_START)
#ifndef LOCORE
-
-#include <sys/queue.h>
-
typedef unsigned int *pd_entry_t;
typedef unsigned int *pt_entry_t;
@@ -162,24 +158,17 @@ pmap_kextract(vm_offset_t va)
}
#endif
-struct vm_page;
-
/*
* Pmap stuff
*/
-struct pv_entry;
-typedef struct {
- int pv_list_count;
- TAILQ_HEAD(,pv_entry) pv_list;
-} pv_table_t;
struct pmap {
pd_entry_t *pm_pdir; /* KVA of page directory */
vm_object_t pm_pteobj; /* Container for pte's */
- pv_table_t pm_pvlist; /* list of mappings in pmap */
- int pm_count; /* reference count */
+ short pm_dref; /* page directory ref count */
+ short pm_count; /* pmap reference count */
struct pmap_statistics pm_stats; /* pmap statistics */
- struct vm_page *pm_ptphint; /* pmap ptp hint */
+ struct vm_map *pm_map; /* map that owns this pmap */
};
typedef struct pmap *pmap_t;
@@ -188,16 +177,14 @@ typedef struct pmap *pmap_t;
extern pmap_t kernel_pmap;
#endif
-
/*
* For each vm_page_t, there is a list of all currently valid virtual
* mappings of that page. An entry is a pv_entry_t, the list is pv_table.
*/
typedef struct pv_entry {
+ struct pv_entry *pv_next; /* next pv_entry */
pmap_t pv_pmap; /* pmap where mapping lies */
vm_offset_t pv_va; /* virtual address for mapping */
- TAILQ_ENTRY(pv_entry) pv_list;
- TAILQ_ENTRY(pv_entry) pv_plist;
vm_page_t pv_ptem; /* VM page for pte */
} *pv_entry_t;
@@ -213,7 +200,7 @@ extern pt_entry_t *CMAP1;
extern vm_offset_t avail_end;
extern vm_offset_t avail_start;
extern vm_offset_t phys_avail[];
-pv_table_t *pv_table;
+extern pv_entry_t *pv_table; /* array of entries, one per page */
extern vm_offset_t virtual_avail;
extern vm_offset_t virtual_end;
OpenPOWER on IntegriCloud