Rev 1881 | Rev 2071 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 1881 | Rev 2067 | ||
|---|---|---|---|
| Line 57... | Line 57... | ||
| 57 | * |
57 | * |
| 58 | */ |
58 | */ |
| 59 | void cpu_init(void) { |
59 | void cpu_init(void) { |
| 60 | int i, j; |
60 | int i, j; |
| 61 | 61 | ||
| 62 | #ifdef CONFIG_SMP |
62 | #ifdef CONFIG_SMP |
| 63 | if (config.cpu_active == 1) { |
63 | if (config.cpu_active == 1) { |
| 64 | #endif /* CONFIG_SMP */ |
64 | #endif /* CONFIG_SMP */ |
| 65 | cpus = (cpu_t *) malloc(sizeof(cpu_t) * config.cpu_count, |
65 | cpus = (cpu_t *) malloc(sizeof(cpu_t) * config.cpu_count, |
| 66 | FRAME_ATOMIC); |
66 | FRAME_ATOMIC); |
| 67 | if (!cpus) |
67 | if (!cpus) |
| 68 | panic("malloc/cpus"); |
68 | panic("malloc/cpus"); |
| 69 | 69 | ||
| Line 81... | Line 81... | ||
| 81 | spinlock_initialize(&cpus[i].rq[j].lock, "rq_t.lock"); |
81 | spinlock_initialize(&cpus[i].rq[j].lock, "rq_t.lock"); |
| 82 | list_initialize(&cpus[i].rq[j].rq_head); |
82 | list_initialize(&cpus[i].rq[j].rq_head); |
| 83 | } |
83 | } |
| 84 | } |
84 | } |
| 85 | 85 | ||
| 86 | #ifdef CONFIG_SMP |
86 | #ifdef CONFIG_SMP |
| 87 | } |
87 | } |
| 88 | #endif /* CONFIG_SMP */ |
88 | #endif /* CONFIG_SMP */ |
| 89 | 89 | ||
| 90 | CPU = &cpus[config.cpu_active-1]; |
90 | CPU = &cpus[config.cpu_active-1]; |
| 91 | 91 | ||
| 92 | CPU->active = 1; |
92 | CPU->active = 1; |
| 93 | CPU->tlb_active = 1; |
93 | CPU->tlb_active = 1; |