Changes in kernel/generic/src/cpu/cpu.c [da1bafb:9dae191e] in mainline
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
kernel/generic/src/cpu/cpu.c
rda1bafb r9dae191e 33 33 /** 34 34 * @file 35 * @brief 35 * @brief CPU subsystem initialization and listing. 36 36 */ 37 37 38 38 #include <cpu.h> 39 39 #include <arch.h> … … 58 58 */ 59 59 void cpu_init(void) { 60 unsigned int i, j; 61 60 62 #ifdef CONFIG_SMP 61 63 if (config.cpu_active == 1) { 62 64 #endif /* CONFIG_SMP */ 63 64 65 cpus = (cpu_t *) malloc(sizeof(cpu_t) * config.cpu_count, 65 66 FRAME_ATOMIC); 66 67 if (!cpus) 67 68 panic("Cannot allocate CPU structures."); 68 69 /* Initialize everything */69 70 /* initialize everything */ 70 71 memsetb(cpus, sizeof(cpu_t) * config.cpu_count, 0); 71 72 size_t i; 72 73 73 for (i = 0; i < config.cpu_count; i++) { 74 cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES, 75 FRAME_KA | FRAME_ATOMIC);74 cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES, FRAME_KA | FRAME_ATOMIC); 75 76 76 cpus[i].id = i; 77 77 78 irq_spinlock_initialize(&cpus[i].lock, "cpus[].lock"); 79 80 unsigned int j; 78 spinlock_initialize(&cpus[i].lock, "cpu_t.lock"); 79 81 80 for (j = 0; j < RQ_COUNT; j++) { 82 irq_spinlock_initialize(&cpus[i].rq[j].lock, "cpus[].rq[].lock");81 spinlock_initialize(&cpus[i].rq[j].lock, "rq_t.lock"); 83 82 list_initialize(&cpus[i].rq[j].rq_head); 84 83 } … … 88 87 } 89 88 #endif /* CONFIG_SMP */ 90 89 91 90 CPU = &cpus[config.cpu_active - 1]; 92 91 93 CPU->active = true;94 CPU->tlb_active = true;92 CPU->active = 1; 93 CPU->tlb_active = 1; 95 94 96 95 cpu_identify(); … … 101 100 void cpu_list(void) 102 101 { 103 size_t i;104 102 unsigned int i; 103 105 104 for (i = 0; i < config.cpu_count; i++) { 106 105 if (cpus[i].active)
Note:
See TracChangeset
for help on using the changeset viewer.