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
This commit is contained in:
@@ -86,7 +86,6 @@ _dump_aspace(vm_address_space *aspace)
|
|||||||
static int
|
static int
|
||||||
dump_aspace(int argc, char **argv)
|
dump_aspace(int argc, char **argv)
|
||||||
{
|
{
|
||||||
// int i;
|
|
||||||
vm_address_space *aspace;
|
vm_address_space *aspace;
|
||||||
|
|
||||||
if (argc < 2) {
|
if (argc < 2) {
|
||||||
@@ -94,9 +93,9 @@ dump_aspace(int argc, char **argv)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// if the argument looks like a hex number, treat it as such
|
// if the argument looks like a number, treat it as such
|
||||||
if (strlen(argv[1]) > 2 && argv[1][0] == '0' && argv[1][1] == 'x') {
|
if (isdigit(argv[1][0])) {
|
||||||
unsigned long num = atoul(argv[1]);
|
unsigned long num = strtoul(argv[1], NULL, 0);
|
||||||
aspace_id id = num;
|
aspace_id id = num;
|
||||||
|
|
||||||
aspace = hash_lookup(aspace_table, &id);
|
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();
|
aspace->last_working_set_adjust = system_time();
|
||||||
|
|
||||||
// initialize the corresponding translation map
|
// 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) {
|
if (err < B_OK) {
|
||||||
free(aspace->name);
|
free(aspace->name);
|
||||||
free(aspace);
|
free(aspace);
|
||||||
@@ -392,6 +391,17 @@ vm_aspace_init(void)
|
|||||||
status_t
|
status_t
|
||||||
vm_aspace_init_post_sem(void)
|
vm_aspace_init_post_sem(void)
|
||||||
{
|
{
|
||||||
kernel_aspace->virtual_map.sem = create_sem(WRITE_COUNT, "kernel_aspacelock");
|
status_t status = arch_vm_translation_map_init_kernel_map_post_sem(&kernel_aspace->translation_map);
|
||||||
aspace_hash_sem = create_sem(WRITE_COUNT, "aspace_hash_sem");
|
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;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user