Ignore:
File:
1 edited

Legend:

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

    r9dae191e re3ee9b9  
    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>
    5152
    5253cpu_t *cpus;
     
    5859 */
    5960void cpu_init(void) {
    60         unsigned int i, j;
    61        
    6261#ifdef CONFIG_SMP
    6362        if (config.cpu_active == 1) {
    6463#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 
     72               
     73                size_t i;
    7374                for (i = 0; i < config.cpu_count; i++) {
    74                         cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES, FRAME_KA | FRAME_ATOMIC);
    75                        
     75                        cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES,
     76                            FRAME_KA | FRAME_ATOMIC);
    7677                        cpus[i].id = i;
    7778                       
    78                         spinlock_initialize(&cpus[i].lock, "cpu_t.lock");
    79 
     79                        irq_spinlock_initialize(&cpus[i].lock, "cpus[].lock");
     80                       
     81                        unsigned int j;
    8082                        for (j = 0; j < RQ_COUNT; j++) {
    81                                 spinlock_initialize(&cpus[i].rq[j].lock, "rq_t.lock");
     83                                irq_spinlock_initialize(&cpus[i].rq[j].lock, "cpus[].rq[].lock");
    8284                                list_initialize(&cpus[i].rq[j].rq_head);
    8385                        }
     
    8789        }
    8890#endif /* CONFIG_SMP */
    89 
     91       
    9092        CPU = &cpus[config.cpu_active - 1];
    9193       
    92         CPU->active = 1;
    93         CPU->tlb_active = 1;
     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;
    94101       
    95102        cpu_identify();
     
    100107void cpu_list(void)
    101108{
    102         unsigned int i;
    103 
     109        size_t i;
     110       
    104111        for (i = 0; i < config.cpu_count; i++) {
    105112                if (cpus[i].active)
     
    112119/** @}
    113120 */
    114 
Note: See TracChangeset for help on using the changeset viewer.