Ignore:
File:
1 edited

Legend:

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

    r7e752b2 rf651e80  
    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 <typedefs.h>
     44#include <arch/types.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>
    5250
    5351cpu_t *cpus;
     
    5957 */
    6058void cpu_init(void) {
     59        unsigned int i, j;
     60       
    6161#ifdef CONFIG_SMP
    6262        if (config.cpu_active == 1) {
    6363#endif /* CONFIG_SMP */
    64                
    6564                cpus = (cpu_t *) malloc(sizeof(cpu_t) * config.cpu_count,
    66                     FRAME_ATOMIC);
     65                                        FRAME_ATOMIC);
    6766                if (!cpus)
    6867                        panic("Cannot allocate CPU structures.");
    69                
    70                 /* Initialize everything */
     68
     69                /* initialize everything */
    7170                memsetb(cpus, sizeof(cpu_t) * config.cpu_count, 0);
    72                
    73                 size_t i;
     71
    7472                for (i = 0; i < config.cpu_count; i++) {
    75                         cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES,
    76                             FRAME_KA | FRAME_ATOMIC);
     73                        cpus[i].stack = (uint8_t *) frame_alloc(STACK_FRAMES, FRAME_KA | FRAME_ATOMIC);
     74                       
    7775                        cpus[i].id = i;
    7876                       
    79                         irq_spinlock_initialize(&cpus[i].lock, "cpus[].lock");
    80                        
    81                         unsigned int j;
     77                        spinlock_initialize(&cpus[i].lock, "cpu_t.lock");
     78
    8279                        for (j = 0; j < RQ_COUNT; j++) {
    83                                 irq_spinlock_initialize(&cpus[i].rq[j].lock, "cpus[].rq[].lock");
     80                                spinlock_initialize(&cpus[i].rq[j].lock, "rq_t.lock");
    8481                                list_initialize(&cpus[i].rq[j].rq_head);
    8582                        }
     
    8986        }
    9087#endif /* CONFIG_SMP */
    91        
     88
    9289        CPU = &cpus[config.cpu_active - 1];
    9390       
    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;
     91        CPU->active = 1;
     92        CPU->tlb_active = 1;
    10193       
    10294        cpu_identify();
     
    108100{
    109101        unsigned int i;
    110        
     102
    111103        for (i = 0; i < config.cpu_count; i++) {
    112104                if (cpus[i].active)
     
    119111/** @}
    120112 */
     113
Note: See TracChangeset for help on using the changeset viewer.