Changeset 5be1923 in mainline for generic/src/main


Ignore:
Timestamp:
2006-03-14T12:11:28Z (20 years ago)
Author:
Ondrej Palkovsky <ondrap@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
d3e7ff4
Parents:
4bb4836d
Message:

Added simpler userspace starting.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • generic/src/main/kinit.c

    r4bb4836d r5be1923  
    2828
    2929#include <main/kinit.h>
    30 #include <main/uinit.h>
    3130#include <config.h>
    3231#include <arch.h>
     
    4746#include <interrupt.h>
    4847#include <console/kconsole.h>
    49 #include <elf.h>
    5048#include <ipc/ns.h>
    5149
     
    7270{
    7371        thread_t *t;
    74         as_t *as;
    75         as_area_t *a;
    76         int rc;
    77         task_t *u;
    7872
    7973        interrupts_disable();
     
    150144                if (config.init_addr % FRAME_SIZE)
    151145                        panic("config.init_addr is not frame aligned");
    152                
    153                 as = as_create(0);
    154                 if (!as)
    155                         panic("as_create\n");
    156146
    157                 rc = elf_load((elf_header_t *) config.init_addr, as);
    158                 if (rc != EE_OK) {
    159                         printf("elf_load failed: %s\n", elf_error(rc));
    160                 } else {
    161                         u = task_create(as);
    162                         if (!u)
    163                                 panic("task_create\n");
    164                         t = thread_create(uinit, (void *)((elf_header_t *) config.init_addr)->e_entry, u, THREAD_USER_STACK);
    165                         if (!t)
    166                                 panic("thread_create\n");
    167                
    168                         /*
    169                          * Create the data as_area.
    170                          */
    171                         a = as_area_create(as, AS_AREA_STACK, 1, USTACK_ADDRESS);
    172                         if (!a)
    173                                 panic("as_area_create: stack\n");
    174 
    175                         thread_ready(t);
     147                if (!task_run_program((void *)config.init_addr)) {
     148                        printf("Userspace not started.\n");
    176149                }
    177150        }
Note: See TracChangeset for help on using the changeset viewer.