Rev 128 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 128 | Rev 131 | ||
---|---|---|---|
Line 35... | Line 35... | ||
35 | #include <arch/smp/apic.h> |
35 | #include <arch/smp/apic.h> |
36 | #include <arch/smp/smp.h> |
36 | #include <arch/smp/smp.h> |
37 | #include <func.h> |
37 | #include <func.h> |
38 | #include <arch/types.h> |
38 | #include <arch/types.h> |
39 | #include <typedefs.h> |
39 | #include <typedefs.h> |
40 | #include <mm/page.h> |
- | |
41 | #include <cpu.h> |
40 | #include <cpu.h> |
42 | #include <arch/asm.h> |
41 | #include <arch/asm.h> |
43 | #include <arch/bios/bios.h> |
42 | #include <arch/bios/bios.h> |
44 | 43 | ||
45 | /* |
44 | /* |
Line 200... | Line 199... | ||
200 | config.cpu_count = configure_via_ct(); |
199 | config.cpu_count = configure_via_ct(); |
201 | } |
200 | } |
202 | else |
201 | else |
203 | config.cpu_count = configure_via_default(fs->config_type); |
202 | config.cpu_count = configure_via_default(fs->config_type); |
204 | 203 | ||
205 | if (config.cpu_count > 1) { |
- | |
206 | map_page_to_frame((__address) l_apic, (__address) l_apic, PAGE_NOT_CACHEABLE, 0); |
- | |
207 | } |
- | |
208 | - | ||
209 | - | ||
210 | /* |
- | |
211 | * Must be initialized outside the kmp thread, since it is waited |
- | |
212 | * on before the kmp thread is created. |
- | |
213 | */ |
- | |
214 | waitq_initialize(&kmp_completion_wq); |
- | |
215 | return; |
204 | return; |
216 | } |
205 | } |
217 | 206 | ||
218 | int configure_via_ct(void) |
207 | int configure_via_ct(void) |
219 | { |
208 | { |
Line 341... | Line 330... | ||
341 | * Multiple IO APIC's are currently not supported. |
330 | * Multiple IO APIC's are currently not supported. |
342 | */ |
331 | */ |
343 | return; |
332 | return; |
344 | } |
333 | } |
345 | 334 | ||
346 | map_page_to_frame((__address) ioa->io_apic, (__address) ioa->io_apic, PAGE_NOT_CACHEABLE, 0); |
- | |
347 | - | ||
348 | io_apic = ioa->io_apic; |
335 | io_apic = ioa->io_apic; |
349 | } |
336 | } |
350 | 337 | ||
351 | //#define MPSCT_VERBOSE |
338 | //#define MPSCT_VERBOSE |
352 | void ct_io_intr_entry(struct __io_intr_entry *iointr) |
339 | void ct_io_intr_entry(struct __io_intr_entry *iointr) |