summaryrefslogtreecommitdiff
path: root/vm/vm_debug.c
diff options
context:
space:
mode:
Diffstat (limited to 'vm/vm_debug.c')
-rw-r--r--vm/vm_debug.c85
1 files changed, 3 insertions, 82 deletions
diff --git a/vm/vm_debug.c b/vm/vm_debug.c
index 227090e..1248da7 100644
--- a/vm/vm_debug.c
+++ b/vm/vm_debug.c
@@ -48,6 +48,7 @@
#include <vm/vm_object.h>
#include <kern/task.h>
#include <kern/host.h>
+#include <kern/rdxtree.h>
#include <ipc/ipc_port.h>
@@ -318,7 +319,8 @@ mach_vm_object_pages(
/* object is locked, we have enough wired memory */
count = 0;
- queue_iterate(&object->memq, p, vm_page_t, listq) {
+ struct rdxtree_iter iter;
+ rdxtree_for_each(&object->memt, &iter, p) {
vm_page_info_t *info = &pages[count++];
vm_page_info_state_t state = 0;
@@ -362,8 +364,6 @@ mach_vm_object_pages(
state |= VPI_STATE_ACTIVE;
if (p->laundry)
state |= VPI_STATE_LAUNDRY;
- if (p->free)
- state |= VPI_STATE_FREE;
if (p->reference)
state |= VPI_STATE_REFERENCE;
@@ -418,82 +418,3 @@ mach_vm_object_pages(
}
#endif /* MACH_VM_DEBUG */
-
-/*
- * Routine: host_virtual_physical_table_info
- * Purpose:
- * Return information about the VP table.
- * Conditions:
- * Nothing locked. Obeys CountInOut protocol.
- * Returns:
- * KERN_SUCCESS Returned information.
- * KERN_INVALID_HOST The host is null.
- * KERN_RESOURCE_SHORTAGE Couldn't allocate memory.
- */
-
-kern_return_t
-host_virtual_physical_table_info(host, infop, countp)
- const host_t host;
- hash_info_bucket_array_t *infop;
- natural_t *countp;
-{
- vm_offset_t addr;
- vm_size_t size = 0;/* '=0' to quiet gcc warnings */
- hash_info_bucket_t *info;
- unsigned int potential, actual;
- kern_return_t kr;
-
- if (host == HOST_NULL)
- return KERN_INVALID_HOST;
-
- /* start with in-line data */
-
- info = *infop;
- potential = *countp;
-
- for (;;) {
- actual = vm_page_info(info, potential);
- if (actual <= potential)
- break;
-
- /* allocate more memory */
-
- if (info != *infop)
- kmem_free(ipc_kernel_map, addr, size);
-
- size = round_page(actual * sizeof *info);
- kr = kmem_alloc_pageable(ipc_kernel_map, &addr, size);
- if (kr != KERN_SUCCESS)
- return KERN_RESOURCE_SHORTAGE;
-
- info = (hash_info_bucket_t *) addr;
- potential = size/sizeof *info;
- }
-
- if (info == *infop) {
- /* data fit in-line; nothing to deallocate */
-
- *countp = actual;
- } else if (actual == 0) {
- kmem_free(ipc_kernel_map, addr, size);
-
- *countp = 0;
- } else {
- vm_map_copy_t copy;
- vm_size_t used;
-
- used = round_page(actual * sizeof *info);
-
- if (used != size)
- kmem_free(ipc_kernel_map, addr + used, size - used);
-
- kr = vm_map_copyin(ipc_kernel_map, addr, used,
- TRUE, &copy);
- assert(kr == KERN_SUCCESS);
-
- *infop = (hash_info_bucket_t *) copy;
- *countp = actual;
- }
-
- return KERN_SUCCESS;
-}