Rev 430 | Rev 501 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 430 | Rev 458 | ||
---|---|---|---|
Line 47... | Line 47... | ||
47 | * |
47 | * |
48 | */ |
48 | */ |
49 | void cpu_init(void) { |
49 | void cpu_init(void) { |
50 | int i, j; |
50 | int i, j; |
51 | 51 | ||
52 | #ifdef __SMP__ |
52 | #ifdef CONFIG_SMP |
53 | if (config.cpu_active == 1) { |
53 | if (config.cpu_active == 1) { |
54 | #endif /* __SMP__ */ |
54 | #endif /* CONFIG_SMP */ |
55 | cpus = (cpu_t *) malloc(sizeof(cpu_t) * config.cpu_count); |
55 | cpus = (cpu_t *) malloc(sizeof(cpu_t) * config.cpu_count); |
56 | if (!cpus) |
56 | if (!cpus) |
57 | panic("malloc/cpus"); |
57 | panic("malloc/cpus"); |
58 | 58 | ||
59 | /* initialize everything */ |
59 | /* initialize everything */ |
Line 64... | Line 64... | ||
64 | if (!cpus[i].stack) |
64 | if (!cpus[i].stack) |
65 | panic("malloc/cpus[%d].stack\n", i); |
65 | panic("malloc/cpus[%d].stack\n", i); |
66 | 66 | ||
67 | cpus[i].id = i; |
67 | cpus[i].id = i; |
68 | 68 | ||
69 | #ifdef __SMP__ |
69 | #ifdef CONFIG_SMP |
70 | waitq_initialize(&cpus[i].kcpulb_wq); |
70 | waitq_initialize(&cpus[i].kcpulb_wq); |
71 | #endif /* __SMP */ |
71 | #endif /* __SMP */ |
72 | 72 | ||
73 | for (j = 0; j < RQ_COUNT; j++) { |
73 | for (j = 0; j < RQ_COUNT; j++) { |
74 | list_initialize(&cpus[i].rq[j].rq_head); |
74 | list_initialize(&cpus[i].rq[j].rq_head); |
75 | } |
75 | } |
76 | } |
76 | } |
77 | 77 | ||
78 | #ifdef __SMP__ |
78 | #ifdef CONFIG_SMP |
79 | } |
79 | } |
80 | #endif /* __SMP__ */ |
80 | #endif /* CONFIG_SMP */ |
81 | 81 | ||
82 | CPU = &cpus[config.cpu_active-1]; |
82 | CPU = &cpus[config.cpu_active-1]; |
83 | 83 | ||
84 | CPU->active = 1; |
84 | CPU->active = 1; |
85 | CPU->tlb_active = 1; |
85 | CPU->tlb_active = 1; |