/trunk/kernel/arch/ia32/include/smp/mps.h |
---|
120,13 → 120,9 |
uint8_t dst_l_apic_pin; |
} __attribute__ ((packed)); |
extern waitq_t ap_completion_wq; |
extern struct smp_config_operations mps_config_operations; |
extern void mps_init(void); |
extern void kmp(void *arg); |
#endif |
/trunk/kernel/arch/ia32/src/ia32.c |
---|
62,6 → 62,10 |
#include <syscall/syscall.h> |
#include <console/console.h> |
#ifdef CONFIG_SMP |
#include <arch/smp/apic.h> |
#endif |
void arch_pre_mm_init(void) |
{ |
pm_init(); |
99,6 → 103,16 |
} |
} |
void arch_post_cpu_init() |
{ |
#ifdef CONFIG_SMP |
if (config.cpu_active > 1) { |
l_apic_init(); |
l_apic_debug(); |
} |
#endif |
} |
void arch_pre_smp_init(void) |
{ |
if (config.cpu_active == 1) { |
/trunk/kernel/arch/ia32/src/smp/mps.c |
---|
84,8 → 84,6 |
int io_intr_entry_cnt = 0; |
int l_intr_entry_cnt = 0; |
waitq_t ap_completion_wq; |
/* |
* Implementation of IA-32 SMP configuration interface. |
*/ |
/trunk/kernel/arch/ia32/src/smp/smp.c |
---|
104,8 → 104,6 |
ASSERT(ops != NULL); |
waitq_initialize(&ap_completion_wq); |
/* |
* We need to access data in frame 0. |
* We boldly make use of kernel address space mapping. |