diff options
author | Jake Burkholder <jake@FreeBSD.org> | 2002-05-29 06:08:45 +0000 |
---|---|---|
committer | Jake Burkholder <jake@FreeBSD.org> | 2002-05-29 06:08:45 +0000 |
commit | 1982efc5c264ef66d8b0a4b0a84982674f62e96d (patch) | |
tree | 86771b4e16c4ad9654de25aba106b30e7c965d4e /sys/sparc64/include | |
parent | e793e4d0b375c1e739afecc25d1c75a3e99b19f8 (diff) |
Merge the code in pv.c into pmap.c directly. Place all page mappings onto
the pv lists in the vm_page, even unmanaged kernel mappings. This is so
that the virtual cachability of these mappings can be tracked when a page
is mapped to more than one virtual address. All virtually cachable
mappings of a physical page must have the same virtual colour, or illegal
alises can be created in the data cache. This is a bit tricky because we
still have to recognize managed and unmanaged mappings, even though they
are all on the pv lists.
Notes
Notes:
svn path=/head/; revision=97447
Diffstat (limited to 'sys/sparc64/include')
-rw-r--r-- | sys/sparc64/include/pmap.h | 9 | ||||
-rw-r--r-- | sys/sparc64/include/tsb.h | 2 |
2 files changed, 10 insertions, 1 deletions
diff --git a/sys/sparc64/include/pmap.h b/sys/sparc64/include/pmap.h index 7af32d6ce0b0..46ed05941fe7 100644 --- a/sys/sparc64/include/pmap.h +++ b/sys/sparc64/include/pmap.h @@ -78,8 +78,17 @@ void pmap_qenter_flags(vm_offset_t va, vm_page_t *m, int count, u_long fl); int pmap_cache_enter(vm_page_t m, vm_offset_t va); void pmap_cache_remove(vm_page_t m, vm_offset_t va); +int pmap_remove_tte(struct pmap *pm1, struct pmap *pm2, struct tte *tp, + vm_offset_t va); +int pmap_protect_tte(struct pmap *pm1, struct pmap *pm2, struct tte *tp, + vm_offset_t va); + void pmap_map_tsb(void); +void pmap_remove_all(vm_page_t m); + +void pmap_clear_write(vm_page_t m); + #define vtophys(va) pmap_kextract(((vm_offset_t) (va))) extern vm_offset_t avail_start; diff --git a/sys/sparc64/include/tsb.h b/sys/sparc64/include/tsb.h index fc7fa92f0d6f..1199ecb29421 100644 --- a/sys/sparc64/include/tsb.h +++ b/sys/sparc64/include/tsb.h @@ -32,7 +32,7 @@ #ifndef _MACHINE_TSB_H_ #define _MACHINE_TSB_H_ -#define TSB_PAGES_SHIFT (2) +#define TSB_PAGES_SHIFT (1) #define TSB_PAGES (1 << TSB_PAGES_SHIFT) #define TSB_BSHIFT (TSB_PAGES_SHIFT + PAGE_SHIFT) #define TSB_BSIZE (1UL << TSB_BSHIFT) |