summaryrefslogtreecommitdiff
path: root/mach-defpager/wiring.c
diff options
context:
space:
mode:
Diffstat (limited to 'mach-defpager/wiring.c')
-rw-r--r--mach-defpager/wiring.c75
1 files changed, 0 insertions, 75 deletions
diff --git a/mach-defpager/wiring.c b/mach-defpager/wiring.c
index ac20dda7..43ed91de 100644
--- a/mach-defpager/wiring.c
+++ b/mach-defpager/wiring.c
@@ -58,78 +58,3 @@ wire_thread()
if (kr != KERN_SUCCESS)
panic("wire_thread: %d", kr);
}
-
-void
-wire_all_memory()
-{
- kern_return_t kr;
- vm_offset_t address;
- vm_size_t size;
- vm_prot_t protection;
- vm_prot_t max_protection;
- vm_inherit_t inheritance;
- boolean_t is_shared;
- memory_object_name_t object;
- vm_offset_t offset;
-
- if (priv_host_port == MACH_PORT_NULL)
- return;
-
- /* iterate through all regions, wiring */
- address = 0;
- while (
- (kr = vm_region(this_task, &address,
- &size,
- &protection,
- &max_protection,
- &inheritance,
- &is_shared,
- &object,
- &offset))
- == KERN_SUCCESS)
- {
- if (MACH_PORT_VALID(object))
- (void) mach_port_deallocate(this_task, object);
- if (protection != VM_PROT_NONE)
- {
- /* The VM system cannot cope with a COW fault on another
- unrelated virtual copy happening later when we have
- wired down the original page. So we must touch all our
- pages before wiring to make sure that only we will ever
- use them. */
- void *page;
- if (!(protection & VM_PROT_WRITE))
- {
- kr = vm_protect(this_task, address, size,
- 0, max_protection);
- }
- for (page = (void *) address;
- page < (void *) (address + size);
- page += vm_page_size)
- *(volatile int *) page = *(int *) page;
-
- kr = vm_wire(priv_host_port, this_task,
- address, size, protection);
- if (kr != KERN_SUCCESS)
- panic("vm_wire: %d", kr);
-
- if (!(protection & VM_PROT_WRITE))
- {
- kr = vm_protect(this_task, address, size,
- 0, protection);
- }
- }
- address += size;
- }
-
- /*
- * Automatically wire down future mappings, including those
- * that are currently PROT_NONE but become accessible.
- */
-
- kr = vm_wire_all(priv_host_port, this_task, VM_WIRE_ALL);
-
- if (kr != KERN_SUCCESS) {
- panic("wire_all_memory: %d", kr);
- }
-}