Use create_area() instead of vm_create_anonymous_region().
Some minor other cosmetic changes. git-svn-id: file:///srv/svn/repos/haiku/trunk/current@9856 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
/*
|
||||
** Copyright 2002-2004, The OpenBeOS Team. All rights reserved.
|
||||
** Distributed under the terms of the OpenBeOS License.
|
||||
** Copyright 2002-2004, Axel Dörfler, [email protected]. All rights reserved.
|
||||
** Distributed under the terms of the Haiku License.
|
||||
**
|
||||
** Copyright 2001-2002, Travis Geiselbrecht. All rights reserved.
|
||||
** Distributed under the terms of the NewOS License.
|
||||
@@ -98,29 +98,27 @@ apic_write(uint32 offset, uint32 data)
|
||||
|
||||
|
||||
status_t
|
||||
arch_smp_init(kernel_args *ka)
|
||||
arch_smp_init(kernel_args *args)
|
||||
{
|
||||
TRACE(("arch_smp_init: entry\n"));
|
||||
|
||||
if (ka->num_cpus > 1) {
|
||||
if (args->num_cpus > 1) {
|
||||
// setup some globals
|
||||
apic = (uint32 *)ka->arch_args.apic;
|
||||
ioapic = (uint32 *)ka->arch_args.ioapic;
|
||||
memcpy(cpu_apic_id, ka->arch_args.cpu_apic_id, sizeof(ka->arch_args.cpu_apic_id));
|
||||
memcpy(cpu_os_id, ka->arch_args.cpu_os_id, sizeof(ka->arch_args.cpu_os_id));
|
||||
memcpy(cpu_apic_version, ka->arch_args.cpu_apic_version, sizeof(ka->arch_args.cpu_apic_version));
|
||||
apic_timer_tics_per_sec = ka->arch_args.apic_time_cv_factor;
|
||||
apic = (uint32 *)args->arch_args.apic;
|
||||
ioapic = (uint32 *)args->arch_args.ioapic;
|
||||
memcpy(cpu_apic_id, args->arch_args.cpu_apic_id, sizeof(args->arch_args.cpu_apic_id));
|
||||
memcpy(cpu_os_id, args->arch_args.cpu_os_id, sizeof(args->arch_args.cpu_os_id));
|
||||
memcpy(cpu_apic_version, args->arch_args.cpu_apic_version, sizeof(args->arch_args.cpu_apic_version));
|
||||
apic_timer_tics_per_sec = args->arch_args.apic_time_cv_factor;
|
||||
|
||||
// setup regions that represent the apic & ioapic
|
||||
vm_create_anonymous_region(vm_get_kernel_aspace_id(), "local_apic", (void *)&apic,
|
||||
B_EXACT_ADDRESS, B_PAGE_SIZE, B_ALREADY_WIRED,
|
||||
B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA);
|
||||
vm_create_anonymous_region(vm_get_kernel_aspace_id(), "ioapic", (void *)&ioapic,
|
||||
B_EXACT_ADDRESS, B_PAGE_SIZE, B_ALREADY_WIRED,
|
||||
B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA);
|
||||
create_area("local apic", (void *)&apic, B_EXACT_ADDRESS, B_PAGE_SIZE,
|
||||
B_ALREADY_WIRED, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA);
|
||||
create_area("ioapic", (void *)&ioapic, B_EXACT_ADDRESS, B_PAGE_SIZE,
|
||||
B_ALREADY_WIRED, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA);
|
||||
|
||||
// set up the local apic on the boot cpu
|
||||
arch_smp_per_cpu_init(ka, 0);
|
||||
arch_smp_per_cpu_init(args, 0);
|
||||
|
||||
install_interrupt_handler(0xfb, &i386_timer_interrupt, NULL);
|
||||
install_interrupt_handler(0xfd, &i386_ici_interrupt, NULL);
|
||||
@@ -132,7 +130,7 @@ arch_smp_init(kernel_args *ka)
|
||||
|
||||
|
||||
static int
|
||||
smp_setup_apic(kernel_args *ka)
|
||||
smp_setup_apic(kernel_args *args)
|
||||
{
|
||||
uint32 config;
|
||||
|
||||
|
||||
@@ -834,27 +834,27 @@ arch_vm_translation_map_init_post_area(kernel_args *args)
|
||||
page_hole = NULL;
|
||||
|
||||
temp = (void *)kernel_pgdir_virt;
|
||||
vm_create_anonymous_region(vm_get_kernel_aspace_id(), "kernel_pgdir", &temp,
|
||||
B_EXACT_ADDRESS, B_PAGE_SIZE, B_ALREADY_WIRED, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA);
|
||||
create_area("kernel_pgdir", &temp, B_EXACT_ADDRESS, B_PAGE_SIZE,
|
||||
B_ALREADY_WIRED, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA);
|
||||
|
||||
temp = (void *)paddr_desc;
|
||||
vm_create_anonymous_region(vm_get_kernel_aspace_id(), "physical_page_mapping_descriptors", &temp,
|
||||
B_EXACT_ADDRESS, ROUNDUP(sizeof(paddr_chunk_desc) * 1024, B_PAGE_SIZE),
|
||||
create_area("physical_page_mapping_descriptors", &temp, B_EXACT_ADDRESS,
|
||||
ROUNDUP(sizeof(paddr_chunk_desc) * 1024, B_PAGE_SIZE),
|
||||
B_ALREADY_WIRED, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA);
|
||||
|
||||
temp = (void *)virtual_pmappings;
|
||||
vm_create_anonymous_region(vm_get_kernel_aspace_id(), "iospace_virtual_chunk_descriptors", &temp,
|
||||
B_EXACT_ADDRESS, ROUNDUP(sizeof(paddr_chunk_desc *) * num_virtual_chunks, B_PAGE_SIZE),
|
||||
create_area("iospace_virtual_chunk_descriptors", &temp, B_EXACT_ADDRESS,
|
||||
ROUNDUP(sizeof(paddr_chunk_desc *) * num_virtual_chunks, B_PAGE_SIZE),
|
||||
B_ALREADY_WIRED, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA);
|
||||
|
||||
temp = (void *)iospace_pgtables;
|
||||
vm_create_anonymous_region(vm_get_kernel_aspace_id(), "iospace_pgtables", &temp,
|
||||
B_EXACT_ADDRESS, B_PAGE_SIZE * (IOSPACE_SIZE / (B_PAGE_SIZE * 1024)),
|
||||
create_area("iospace_pgtables", &temp, B_EXACT_ADDRESS,
|
||||
B_PAGE_SIZE * (IOSPACE_SIZE / (B_PAGE_SIZE * 1024)),
|
||||
B_ALREADY_WIRED, B_KERNEL_READ_AREA | B_KERNEL_WRITE_AREA);
|
||||
|
||||
TRACE(("vm_translation_map_init_post_area: creating iospace\n"));
|
||||
temp = (void *)IOSPACE_BASE;
|
||||
vm_create_null_region(vm_get_kernel_aspace_id(), "iospace", &temp,
|
||||
vm_create_null_area(vm_get_kernel_aspace_id(), "iospace", &temp,
|
||||
B_EXACT_ADDRESS, IOSPACE_SIZE);
|
||||
|
||||
TRACE(("vm_translation_map_init_post_area: done\n"));
|
||||
|
||||
Reference in New Issue
Block a user