Subversion Repositories HelenOS-historic

Rev

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

Rev 973 Rev 1027
Line 43... Line 43...
43
#include <print.h>
43
#include <print.h>
44
#include <memstr.h>
44
#include <memstr.h>
45
#include <console/console.h>
45
#include <console/console.h>
46
#include <interrupt.h>
46
#include <interrupt.h>
47
#include <console/kconsole.h>
47
#include <console/kconsole.h>
48
#include <ipc/ns.h>
-
 
49
 
48
 
50
#ifdef CONFIG_SMP
49
#ifdef CONFIG_SMP
51
#include <arch/smp/mps.h>
50
#include <arch/smp/mps.h>
52
#endif /* CONFIG_SMP */
51
#endif /* CONFIG_SMP */
53
 
52
 
Line 67... Line 66...
67
 * @param arg Not used.
66
 * @param arg Not used.
68
 */
67
 */
69
void kinit(void *arg)
68
void kinit(void *arg)
70
{
69
{
71
    thread_t *t;
70
    thread_t *t;
-
 
71
    task_t *utask;
72
 
72
 
73
    interrupts_disable();
73
    interrupts_disable();
74
 
74
 
75
#ifdef CONFIG_SMP           
75
#ifdef CONFIG_SMP           
76
    if (config.cpu_count > 1) {
76
    if (config.cpu_count > 1) {
Line 131... Line 131...
131
    else
131
    else
132
        panic("thread_create/kconsole\n");
132
        panic("thread_create/kconsole\n");
133
 
133
 
134
    interrupts_enable();
134
    interrupts_enable();
135
 
135
 
136
    /* Initialize name service */
-
 
137
    ns_start();
-
 
138
 
-
 
139
    if (config.init_size > 0) {
136
    if (config.init_size > 0) {
140
        /*
137
        /*
141
         * Create the first user task.
138
         * Create the first user task.
142
         */
139
         */
143
       
140
       
144
        if (config.init_addr % FRAME_SIZE)
141
        if (config.init_addr % FRAME_SIZE)
145
            panic("config.init_addr is not frame aligned");
142
            panic("config.init_addr is not frame aligned");
146
 
143
 
147
        if (!task_run_program((void *)config.init_addr)) {
144
        utask = task_run_program((void *)config.init_addr);
-
 
145
        if (utask)
-
 
146
            ipc_phone_0 = &utask->answerbox;
-
 
147
        else
148
            printf("Userspace not started.\n");
148
            printf("Userspace not started.\n");
149
        }
-
 
150
    }
149
    }
151
 
150
 
152
#ifdef CONFIG_TEST
151
#ifdef CONFIG_TEST
153
    test();
152
    test();
154
#endif /* CONFIG_TEST */
153
#endif /* CONFIG_TEST */