diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2013-02-04 10:27:44 +0100 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2013-02-04 10:27:44 +0100 |
commit | ba1b3afd50913473f3036a63b4a82d7ba5c42009 (patch) | |
tree | 9dff0ddec4bf8b927a025b4bf9882cb1731170f3 /vm/vm_user.c | |
parent | bfdb3be16e5a20eebc97b3ca613d9a4da4465533 (diff) | |
parent | 51e87d005139a435cd846ac5c224eed5042c4fa0 (diff) |
Merge branch 'master' into master-gdb_stubs
Diffstat (limited to 'vm/vm_user.c')
-rw-r--r-- | vm/vm_user.c | 33 |
1 files changed, 28 insertions, 5 deletions
diff --git a/vm/vm_user.c b/vm/vm_user.c index 672daab8..6fe398e0 100644 --- a/vm/vm_user.c +++ b/vm/vm_user.c @@ -38,12 +38,14 @@ #include <mach/vm_attributes.h> #include <mach/vm_param.h> #include <mach/vm_statistics.h> +#include <mach/vm_cache_statistics.h> #include <kern/host.h> #include <kern/task.h> #include <vm/vm_fault.h> #include <vm/vm_kern.h> #include <vm/vm_map.h> #include <vm/vm_object.h> +#include <vm/memory_object_proxy.h> #include <vm/vm_page.h> @@ -188,6 +190,29 @@ kern_return_t vm_statistics(map, stat) return(KERN_SUCCESS); } +kern_return_t vm_cache_statistics( + vm_map_t map, + vm_cache_statistics_data_t *stats) +{ + if (map == VM_MAP_NULL) + return KERN_INVALID_ARGUMENT; + + stats->cache_object_count = vm_object_cached_count; + stats->cache_count = vm_object_cached_pages; + + /* XXX Not implemented yet */ + stats->active_tmp_count = 0; + stats->inactive_tmp_count = 0; + stats->active_perm_count = 0; + stats->inactive_perm_count = 0; + stats->dirty_count = 0; + stats->laundry_count = 0; + stats->writeback_count = 0; + stats->slab_count = 0; + stats->slab_reclaim_count = 0; + return KERN_SUCCESS; +} + /* * Handle machine-specific attributes for a mapping, such * as cachability, migrability, etc. @@ -277,11 +302,6 @@ kern_return_t vm_copy(map, source_address, size, dest_address) } -/* XXX From memory_object_proxy.c */ -kern_return_t -memory_object_proxy_lookup (ipc_port_t proxy_object, ipc_port_t *object, - vm_prot_t *max_protection); - /* * Routine: vm_map */ @@ -322,6 +342,9 @@ kern_return_t vm_map( return(KERN_INVALID_ARGUMENT); } + if (size == 0) + return KERN_INVALID_ARGUMENT; + *address = trunc_page(*address); size = round_page(size); |