aboutsummaryrefslogtreecommitdiff
path: root/sys/sparc64/include
diff options
context:
space:
mode:
authorJake Burkholder <jake@FreeBSD.org>2002-05-29 06:08:45 +0000
committerJake Burkholder <jake@FreeBSD.org>2002-05-29 06:08:45 +0000
commit1982efc5c264ef66d8b0a4b0a84982674f62e96d (patch)
tree86771b4e16c4ad9654de25aba106b30e7c965d4e /sys/sparc64/include
parente793e4d0b375c1e739afecc25d1c75a3e99b19f8 (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.h9
-rw-r--r--sys/sparc64/include/tsb.h2
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)