Subversion Repositories HelenOS

Rev

Rev 3022 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 3022 Rev 4055
Line 62... Line 62...
62
    if (config.cpu_active == 1) {
62
    if (config.cpu_active == 1) {
63
#endif /* CONFIG_SMP */
63
#endif /* CONFIG_SMP */
64
        cpus = (cpu_t *) malloc(sizeof(cpu_t) * config.cpu_count,
64
        cpus = (cpu_t *) malloc(sizeof(cpu_t) * config.cpu_count,
65
                    FRAME_ATOMIC);
65
                    FRAME_ATOMIC);
66
        if (!cpus)
66
        if (!cpus)
67
            panic("malloc/cpus");
67
            panic("Cannot allocate CPU structures.");
68
 
68
 
69
        /* initialize everything */
69
        /* initialize everything */
70
        memsetb((uintptr_t) cpus, sizeof(cpu_t) * config.cpu_count, 0);
70
        memsetb(cpus, sizeof(cpu_t) * config.cpu_count, 0);
71
 
71
 
72
        for (i = 0; i < config.cpu_count; i++) {
72
        for (i = 0; i < config.cpu_count; i++) {
73
            cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES, FRAME_KA | FRAME_ATOMIC);
73
            cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES, FRAME_KA | FRAME_ATOMIC);
74
           
74
           
75
            cpus[i].id = i;
75
            cpus[i].id = i;
Line 84... Line 84...
84
       
84
       
85
#ifdef CONFIG_SMP
85
#ifdef CONFIG_SMP
86
    }
86
    }
87
#endif /* CONFIG_SMP */
87
#endif /* CONFIG_SMP */
88
 
88
 
89
    CPU = &cpus[config.cpu_active-1];
89
    CPU = &cpus[config.cpu_active - 1];
90
   
90
   
91
    CPU->active = 1;
91
    CPU->active = 1;
92
    CPU->tlb_active = 1;
92
    CPU->tlb_active = 1;
93
   
93
   
94
    cpu_identify();
94
    cpu_identify();
Line 102... Line 102...
102
 
102
 
103
    for (i = 0; i < config.cpu_count; i++) {
103
    for (i = 0; i < config.cpu_count; i++) {
104
        if (cpus[i].active)
104
        if (cpus[i].active)
105
            cpu_print_report(&cpus[i]);
105
            cpu_print_report(&cpus[i]);
106
        else
106
        else
107
            printf("cpu%d: not active\n", i);
107
            printf("cpu%u: not active\n", i);
108
    }
108
    }
109
}
109
}
110
 
110
 
111
/** @}
111
/** @}
112
 */
112
 */