Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/arch/ia32/src/smp/smp.c

    rb2fa1204 r63e27ef  
    3838#include <arch/smp/ap.h>
    3939#include <arch/boot/boot.h>
     40#include <assert.h>
    4041#include <genarch/acpi/acpi.h>
    4142#include <genarch/acpi/madt.h>
     
    4546#include <func.h>
    4647#include <panic.h>
    47 #include <debug.h>
    4848#include <arch/asm.h>
    4949#include <mm/page.h>
     
    5353#include <mm/as.h>
    5454#include <log.h>
    55 #include <memstr.h>
     55#include <mem.h>
    5656#include <arch/drivers/i8259.h>
     57#include <cpu.h>
    5758
    5859#ifdef CONFIG_SMP
     
    7778                io_apic = (uint32_t *) km_map((uintptr_t) io_apic, PAGE_SIZE,
    7879                    PAGE_WRITE | PAGE_NOT_CACHEABLE);
     80        }
     81}
     82
     83static void cpu_arch_id_init(void)
     84{
     85        assert(ops != NULL);
     86        assert(cpus != NULL);
     87       
     88        for (unsigned int i = 0; i < config.cpu_count; ++i) {
     89                cpus[i].arch.id = ops->cpu_apic_id(i);
    7990        }
    8091}
     
    91102        unsigned int i;
    92103       
    93         ASSERT(ops != NULL);
     104        assert(ops != NULL);
     105
     106        /*
     107         * SMP initialized, cpus array allocated. Assign each CPU its
     108         * physical APIC ID.
     109         */
     110        cpu_arch_id_init();
    94111       
    95112        /*
     
    174191int smp_irq_to_pin(unsigned int irq)
    175192{
    176         ASSERT(ops != NULL);
     193        assert(ops != NULL);
    177194        return ops->irq_to_pin(irq);
    178195}
Note: See TracChangeset for help on using the changeset viewer.