Subversion Repositories HelenOS-historic

Rev

Rev 430 | 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;