Subversion Repositories HelenOS-historic

Rev

Rev 1101 | Rev 1138 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1101 Rev 1109
Line 48... Line 48...
48
#include <genarch/mm/page_pt.h>
48
#include <genarch/mm/page_pt.h>
49
#include <mm/tlb.h>
49
#include <mm/tlb.h>
50
#include <mm/as.h>
50
#include <mm/as.h>
51
#include <mm/slab.h>
51
#include <mm/slab.h>
52
#include <synch/waitq.h>
52
#include <synch/waitq.h>
-
 
53
#include <synch/futex.h>
53
#include <arch/arch.h>
54
#include <arch/arch.h>
54
#include <arch.h>
55
#include <arch.h>
55
#include <arch/faddr.h>
56
#include <arch/faddr.h>
56
#include <typedefs.h>
57
#include <typedefs.h>
57
#include <ipc/ipc.h>
58
#include <ipc/ipc.h>
Line 62... Line 63...
62
#include <arch/smp/mps.h>
63
#include <arch/smp/mps.h>
63
#endif /* CONFIG_SMP */
64
#endif /* CONFIG_SMP */
64
#include <smp/smp.h>
65
#include <smp/smp.h>
65
 
66
 
66
config_t config;    /**< Global configuration structure. */
67
config_t config;    /**< Global configuration structure. */
67
init_t init = {0};  /**< Initial user-space tasks */
68
init_t init = {0};      /**< Initial user-space tasks */
68
 
69
 
69
context_t ctx;
70
context_t ctx;
70
 
71
 
71
/**
72
/**
72
 * These 'hardcoded' variables will be intialized by
73
 * These 'hardcoded' variables will be intialized by
Line 141... Line 142...
141
 */
142
 */
142
void main_bsp_separated_stack(void)
143
void main_bsp_separated_stack(void)
143
{
144
{
144
    task_t *k;
145
    task_t *k;
145
    thread_t *t;
146
    thread_t *t;
-
 
147
    count_t i;
146
   
148
   
147
    the_initialize(THE);
149
    the_initialize(THE);
-
 
150
 
148
    /*
151
    /*
149
     * kconsole data structures must be initialized very early
152
     * kconsole data structures must be initialized very early
150
     * because other subsystems will register their respective
153
     * because other subsystems will register their respective
151
     * commands.
154
     * commands.
152
     */
155
     */
Line 185... Line 188...
185
    calibrate_delay_loop();
188
    calibrate_delay_loop();
186
    timeout_init();
189
    timeout_init();
187
    scheduler_init();
190
    scheduler_init();
188
    task_init();
191
    task_init();
189
    thread_init();
192
    thread_init();
-
 
193
    futex_init();
190
   
194
   
191
    count_t i;
-
 
192
    for (i = 0; i < init.cnt; i++)
195
    for (i = 0; i < init.cnt; i++)
193
        printf("init[%d].addr=%P, init[%d].size=%d\n", i, init.tasks[i].addr, i, init.tasks[i].size);
196
        printf("init[%d].addr=%P, init[%d].size=%d\n", i, init.tasks[i].addr, i, init.tasks[i].size);
194
   
197
   
195
    ipc_init();
198
    ipc_init();
-
 
199
 
196
    /*
200
    /*
197
     * Create kernel task.
201
     * Create kernel task.
198
     */
202
     */
199
    k = task_create(AS_KERNEL, "KERNEL");
203
    k = task_create(AS_KERNEL, "KERNEL");
200
    if (!k)
204
    if (!k)