From 952d67454e115bbde1118410e191e2e5f6241b3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Axel=20D=C3=B6rfler?= Date: Tue, 19 Oct 2004 23:38:05 +0000 Subject: [PATCH] Now make sure that the kernel address space translation map is initialized correctly by calling arch_vm_translation_map_init_kernel_map_post_sem(). dump_aspace() now behaves like all debugging functions should behave: it now accepts decimal numbers as well as hexadecimal numbers as IDs. vm_translation_map_create() was renamed to arch_translation_map_init_map(). git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9427 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- src/kernel/core/vm/vm_address_space.c | 24 +++++++++++++++++------- 1 file changed, 17 insertions(+), 7 deletions(-) diff --git a/src/kernel/core/vm/vm_address_space.c b/src/kernel/core/vm/vm_address_space.c index 8eb29d8e24..a15f117386 100644 --- a/src/kernel/core/vm/vm_address_space.c +++ b/src/kernel/core/vm/vm_address_space.c @@ -86,7 +86,6 @@ _dump_aspace(vm_address_space *aspace) static int dump_aspace(int argc, char **argv) { -// int i; vm_address_space *aspace; if (argc < 2) { @@ -94,9 +93,9 @@ dump_aspace(int argc, char **argv) return 0; } - // if the argument looks like a hex number, treat it as such - if (strlen(argv[1]) > 2 && argv[1][0] == '0' && argv[1][1] == 'x') { - unsigned long num = atoul(argv[1]); + // if the argument looks like a number, treat it as such + if (isdigit(argv[1][0])) { + unsigned long num = strtoul(argv[1], NULL, 0); aspace_id id = num; aspace = hash_lookup(aspace_table, &id); @@ -313,7 +312,7 @@ vm_create_aspace(const char *name, addr_t base, addr_t size, bool kernel, vm_add aspace->last_working_set_adjust = system_time(); // initialize the corresponding translation map - err = vm_translation_map_create(&aspace->translation_map, kernel); + err = arch_vm_translation_map_init_map(&aspace->translation_map, kernel); if (err < B_OK) { free(aspace->name); free(aspace); @@ -392,6 +391,17 @@ vm_aspace_init(void) status_t vm_aspace_init_post_sem(void) { - kernel_aspace->virtual_map.sem = create_sem(WRITE_COUNT, "kernel_aspacelock"); - aspace_hash_sem = create_sem(WRITE_COUNT, "aspace_hash_sem"); + status_t status = arch_vm_translation_map_init_kernel_map_post_sem(&kernel_aspace->translation_map); + if (status < B_OK) + return status; + + status = kernel_aspace->virtual_map.sem = create_sem(WRITE_COUNT, "kernel_aspacelock"); + if (status < B_OK) + return status; + + status = aspace_hash_sem = create_sem(WRITE_COUNT, "aspace_hash_sem"); + if (status < B_OK) + return status; + + return B_OK; }