Ignore:
File:
1 edited

Legend:

Unmodified
Added
Removed
  • kernel/generic/src/cpu/cpu.c

    re3ee9b9 r9dae191e  
    3333/**
    3434 * @file
    35  * @brief CPU subsystem initialization and listing.
     35 * @brief       CPU subsystem initialization and listing.
    3636 */
    37 
     37 
    3838#include <cpu.h>
    3939#include <arch.h>
     
    4949#include <print.h>
    5050#include <sysinfo/sysinfo.h>
    51 #include <arch/cycle.h>
    5251
    5352cpu_t *cpus;
     
    5958 */
    6059void cpu_init(void) {
     60        unsigned int i, j;
     61       
    6162#ifdef CONFIG_SMP
    6263        if (config.cpu_active == 1) {
    6364#endif /* CONFIG_SMP */
    64                
    6565                cpus = (cpu_t *) malloc(sizeof(cpu_t) * config.cpu_count,
    66                     FRAME_ATOMIC);
     66                                        FRAME_ATOMIC);
    6767                if (!cpus)
    6868                        panic("Cannot allocate CPU structures.");
    69                
    70                 /* Initialize everything */
     69
     70                /* initialize everything */
    7171                memsetb(cpus, sizeof(cpu_t) * config.cpu_count, 0);
    72                
    73                 size_t i;
     72
    7473                for (i = 0; i < config.cpu_count; i++) {
    75                         cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES,
    76                             FRAME_KA | FRAME_ATOMIC);
     74                        cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES, FRAME_KA | FRAME_ATOMIC);
     75                       
    7776                        cpus[i].id = i;
    7877                       
    79                         irq_spinlock_initialize(&cpus[i].lock, "cpus[].lock");
    80                        
    81                         unsigned int j;
     78                        spinlock_initialize(&cpus[i].lock, "cpu_t.lock");
     79
    8280                        for (j = 0; j < RQ_COUNT; j++) {
    83                                 irq_spinlock_initialize(&cpus[i].rq[j].lock, "cpus[].rq[].lock");
     81                                spinlock_initialize(&cpus[i].rq[j].lock, "rq_t.lock");
    8482                                list_initialize(&cpus[i].rq[j].rq_head);
    8583                        }
     
    8987        }
    9088#endif /* CONFIG_SMP */
    91        
     89
    9290        CPU = &cpus[config.cpu_active - 1];
    9391       
    94         CPU->active = true;
    95         CPU->tlb_active = true;
    96        
    97         CPU->idle = false;
    98         CPU->last_cycle = get_cycle();
    99         CPU->idle_cycles = 0;
    100         CPU->busy_cycles = 0;
     92        CPU->active = 1;
     93        CPU->tlb_active = 1;
    10194       
    10295        cpu_identify();
     
    107100void cpu_list(void)
    108101{
    109         size_t i;
    110        
     102        unsigned int i;
     103
    111104        for (i = 0; i < config.cpu_count; i++) {
    112105                if (cpus[i].active)
     
    119112/** @}
    120113 */
     114
Note: See TracChangeset for help on using the changeset viewer.