From 6ef2965afd99ca4253363bec6a9c0c6fd51f3e83 Mon Sep 17 00:00:00 2001 From: jake Date: Mon, 3 Sep 2001 22:55:12 +0000 Subject: Implement pv_bit_count which is used by pmap_ts_referenced. Remove the modified tte bit and add a softwrite bit. Mappings are only writeable if they have been written to, thus in general modify just duplicates the write bit. The softwrite bit makes it easier to distinguish mappings which should be writeable but are not yet modified. Move the exec bit down one, it was being sign extended when used as an immediate operand. Use the lock bit to mean tsb page and remove the tsb bit. These are the only form of locked (tsb) entries we support and we need to conserve bits where possible. Implement pmap_copy_page and pmap_is_modified and friends. Detect mappings that are being being upgraded from read-only to read-write due to copy-on-write and update the write bit appropriately. Make trap_mmu_fault do the right thing for protection faults, which is necessary to implement copy on write correctly. Also handle a bunch more userland trap types and add ktr traces. --- sys/sparc64/include/pv.h | 1 + 1 file changed, 1 insertion(+) (limited to 'sys/sparc64/include/pv.h') diff --git a/sys/sparc64/include/pv.h b/sys/sparc64/include/pv.h index 4f2a729..43bf2c4 100644 --- a/sys/sparc64/include/pv.h +++ b/sys/sparc64/include/pv.h @@ -188,6 +188,7 @@ void pv_insert(pmap_t pm, vm_offset_t pa, vm_offset_t va, struct stte *stp); void pv_remove_virt(struct stte *stp); void pv_bit_clear(vm_page_t m, u_long bits); +int pv_bit_count(vm_page_t m, u_long bits); void pv_bit_set(vm_page_t m, u_long bits); int pv_bit_test(vm_page_t m, u_long bits); -- cgit v1.1