Subversion Repositories HelenOS

Rev

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

Rev 3588 Rev 4337
Line 189... Line 189...
189
 */
189
 */
190
void main_bsp_separated_stack(void)
190
void main_bsp_separated_stack(void)
191
{
191
{
192
    /* Keep this the first thing. */
192
    /* Keep this the first thing. */
193
    the_initialize(THE);
193
    the_initialize(THE);
194
 
-
 
195
    LOG();
-
 
196
   
194
   
197
    version_print();
195
    version_print();
198
   
196
   
199
    LOG("\nconfig.base=%#" PRIp " config.kernel_size=%" PRIs
197
    LOG("\nconfig.base=%#" PRIp " config.kernel_size=%" PRIs
200
        "\nconfig.stack_base=%#" PRIp " config.stack_size=%" PRIs,
198
        "\nconfig.stack_base=%#" PRIp " config.stack_size=%" PRIs,
201
        config.base, config.kernel_size, config.stack_base,
199
        config.base, config.kernel_size, config.stack_base,
202
        config.stack_size);
200
        config.stack_size);
203
   
-
 
204
 
201
 
-
 
202
#ifdef CONFIG_KCONSOLE
205
    /*
203
    /*
206
     * kconsole data structures must be initialized very early
204
     * kconsole data structures must be initialized very early
207
     * because other subsystems will register their respective
205
     * because other subsystems will register their respective
208
     * commands.
206
     * commands.
209
     */
207
     */
210
    LOG_EXEC(kconsole_init());
208
    LOG_EXEC(kconsole_init());
-
 
209
#endif
211
   
210
   
212
    /*
211
    /*
213
     * Exception handler initialization, before architecture
212
     * Exception handler initialization, before architecture
214
     * starts adding its own handlers
213
     * starts adding its own handlers
215
     */
214
     */
Line 250... Line 249...
250
    LOG_EXEC(futex_init());
249
    LOG_EXEC(futex_init());
251
   
250
   
252
    if (init.cnt > 0) {
251
    if (init.cnt > 0) {
253
        count_t i;
252
        count_t i;
254
        for (i = 0; i < init.cnt; i++)
253
        for (i = 0; i < init.cnt; i++)
255
            printf("init[%" PRIc "].addr=%#" PRIp ", init[%" PRIc
254
            LOG("init[%" PRIc "].addr=%#" PRIp ", init[%" PRIc
256
                "].size=%#" PRIs "\n", i, init.tasks[i].addr, i,
255
                "].size=%#" PRIs "\n", i, init.tasks[i].addr, i,
257
                init.tasks[i].size);
256
                init.tasks[i].size);
258
    } else
257
    } else
259
        printf("No init binaries found\n");
258
        printf("No init binaries found\n");
260
   
259
   
Line 269... Line 268...
269
        panic("Can't create kernel task\n");
268
        panic("Can't create kernel task\n");
270
   
269
   
271
    /*
270
    /*
272
     * Create the first thread.
271
     * Create the first thread.
273
     */
272
     */
-
 
273
    thread_t *kinit_thread
274
    thread_t *kinit_thread = thread_create(kinit, NULL, kernel, 0, "kinit",
274
        = thread_create(kinit, NULL, kernel, 0, "kinit", true);
275
        true);
-
 
276
    if (!kinit_thread)
275
    if (!kinit_thread)
277
        panic("Can't create kinit thread\n");
276
        panic("Can't create kinit thread\n");
278
    LOG_EXEC(thread_ready(kinit_thread));
277
    LOG_EXEC(thread_ready(kinit_thread));
279
   
278
   
280
    /*
279
    /*