Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3000 → Rev 3001

/branches/dynload/kernel/generic/src/main/kinit.c
157,7 → 157,10
count_t i;
for (i = 0; i < init.cnt; i++) {
/*
* Run user tasks, load RAM disk images.
* Parse initial images
* - Run user tasks
* - load RAM disk images.
* - register program loader
*/
if (init.tasks[i].addr % FRAME_SIZE) {
165,19 → 168,27
continue;
}
 
task_t *utask = task_run_program((void *) init.tasks[i].addr,
"uspace");
task_t *utask;
int rc = task_parse_initial((void *) init.tasks[i].addr,
"uspace", &utask);
if (utask) {
if (rc == 0 && utask) {
/* Make the task ready */
task_ready(utask);
 
/*
* Set capabilities to init userspace tasks.
*/
cap_set(utask, CAP_CAP | CAP_MEM_MANAGER |
CAP_IO_MANAGER | CAP_PREEMPT_CONTROL | CAP_IRQ_REG);
 
if (!ipc_phone_0)
ipc_phone_0 = &utask->answerbox;
} else if (rc == 0) {
/* It was the program loader and was registered */
} else {
/* RAM disk image */
int rd = init_rd((rd_header *) init.tasks[i].addr,
init.tasks[i].size);