diff options
author | dyson <dyson@FreeBSD.org> | 1996-07-30 03:08:57 +0000 |
---|---|---|
committer | dyson <dyson@FreeBSD.org> | 1996-07-30 03:08:57 +0000 |
commit | 01ce9d323a15a1365c3b7802f404edd77da1e38b (patch) | |
tree | ac8503dbf428f1dae7c0a8bba152c865f89a493a /sys/i386/include | |
parent | ff1df96f3bbd049cd4de0c3d6652ac34449f19b9 (diff) | |
download | FreeBSD-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')
-rw-r--r-- | sys/i386/include/pmap.h | 25 |
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; |