Ignore:
File:
1 edited

Legend:

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

    rf651e80 r7e752b2  
    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>
     
    4242#include <mm/page.h>
    4343#include <mm/frame.h>
    44 #include <arch/types.h>
     44#include <typedefs.h>
    4545#include <config.h>
    4646#include <panic.h>
     
    4848#include <adt/list.h>
    4949#include <print.h>
     50#include <sysinfo/sysinfo.h>
     51#include <arch/cycle.h>
    5052
    5153cpu_t *cpus;
     
    5759 */
    5860void cpu_init(void) {
    59         unsigned int i, j;
    60        
    6161#ifdef CONFIG_SMP
    6262        if (config.cpu_active == 1) {
    6363#endif /* CONFIG_SMP */
     64               
    6465                cpus = (cpu_t *) malloc(sizeof(cpu_t) * config.cpu_count,
    65                                         FRAME_ATOMIC);
     66                    FRAME_ATOMIC);
    6667                if (!cpus)
    6768                        panic("Cannot allocate CPU structures.");
    68 
    69                 /* initialize everything */
     69               
     70                /* Initialize everything */
    7071                memsetb(cpus, sizeof(cpu_t) * config.cpu_count, 0);
    71 
     72               
     73                size_t i;
    7274                for (i = 0; i < config.cpu_count; i++) {
    73                         cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES, FRAME_KA | FRAME_ATOMIC);
    74                        
     75                        cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES,
     76                            FRAME_KA | FRAME_ATOMIC);
    7577                        cpus[i].id = i;
    7678                       
    77                         spinlock_initialize(&cpus[i].lock, "cpu_t.lock");
    78 
     79                        irq_spinlock_initialize(&cpus[i].lock, "cpus[].lock");
     80                       
     81                        unsigned int j;
    7982                        for (j = 0; j < RQ_COUNT; j++) {
    80                                 spinlock_initialize(&cpus[i].rq[j].lock, "rq_t.lock");
     83                                irq_spinlock_initialize(&cpus[i].rq[j].lock, "cpus[].rq[].lock");
    8184                                list_initialize(&cpus[i].rq[j].rq_head);
    8285                        }
     
    8689        }
    8790#endif /* CONFIG_SMP */
    88 
     91       
    8992        CPU = &cpus[config.cpu_active - 1];
    9093       
    91         CPU->active = 1;
    92         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;
    93101       
    94102        cpu_identify();
     
    100108{
    101109        unsigned int i;
    102 
     110       
    103111        for (i = 0; i < config.cpu_count; i++) {
    104112                if (cpus[i].active)
     
    111119/** @}
    112120 */
    113 
Note: See TracChangeset for help on using the changeset viewer.