Changeset 0c3e63f in mainline
- Timestamp:
- 2010-06-30T20:21:53Z (14 years ago)
- Branches:
- lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
- Children:
- 0a79ad9
- Parents:
- c6c49de
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/arch/ia32/src/smp/smp.c
rc6c49de r0c3e63f 62 62 void smp_init(void) 63 63 { 64 uintptr_t l_apic_address;65 uintptr_t io_apic_address;66 67 64 if (acpi_madt) { 68 65 acpi_madt_parse(); … … 75 72 } 76 73 77 l_apic_address = (uintptr_t) frame_alloc(ONE_FRAME,78 FRAME_ATOMIC | FRAME_KA);79 if (!l_apic_address)80 panic("Cannot allocate address for l_apic.");81 82 io_apic_address = (uintptr_t) frame_alloc(ONE_FRAME,83 FRAME_ATOMIC | FRAME_KA);84 if (!io_apic_address)85 panic("Cannot allocate address for io_apic.");86 87 74 if (config.cpu_count > 1) { 88 page_table_lock(AS_KERNEL, true); 89 page_mapping_insert(AS_KERNEL, l_apic_address, 90 (uintptr_t) l_apic, PAGE_NOT_CACHEABLE | PAGE_WRITE); 91 page_mapping_insert(AS_KERNEL, io_apic_address, 92 (uintptr_t) io_apic, PAGE_NOT_CACHEABLE | PAGE_WRITE); 93 page_table_unlock(AS_KERNEL, true); 94 95 l_apic = (uint32_t *) l_apic_address; 96 io_apic = (uint32_t *) io_apic_address; 75 l_apic = (uint32_t *) hw_map((uintptr_t) l_apic, PAGE_SIZE); 76 io_apic = (uint32_t *) hw_map((uintptr_t) io_apic, PAGE_SIZE); 97 77 } 98 78 }
Note:
See TracChangeset
for help on using the changeset viewer.