Subversion Repositories HelenOS

Compare Revisions

Ignore whitespace Rev 3690 → Rev 3772

/branches/dynload/uspace/srv/loader/main.c
225,6 → 225,8
{
int rc;
 
printf("Load program '%s'\n", pathname);
 
rc = elf_load_file(pathname, 0, 0, &prog_info);
if (rc < 0) {
printf("Failed to load executable '%s'.\n", pathname);
232,11 → 234,17
return 1;
}
 
printf("Create PCB\n");
 
elf_create_pcb(&prog_info, &pcb);
 
printf("Fill args\n");
 
pcb.argc = argc;
pcb.argv = argv;
 
printf("Check interp\n");
 
if (prog_info.interp == NULL) {
/* Statically linked program */
is_dyn_linked = false;
282,6 → 290,7
program_run(interp_info.entry, &pcb);
 
} else {
printf("Run static program\n");
/* Statically linked program */
close_console();
ipc_answer_0(rid, EOK);
/branches/dynload/uspace/srv/loader/elf_load.c
306,10 → 306,13
printf("dynamic section found at 0x%x\n",
(uintptr_t)elf->info->dynamic);
break;
case 0x70000000:
/* FIXME: MIPS reginfo */
break;
case PT_SHLIB:
case PT_NOTE:
case PT_LOPROC:
case PT_HIPROC:
// case PT_LOPROC:
// case PT_HIPROC:
default:
printf("segment p_type %d unknown\n", entry->p_type);
return EE_UNSUPPORTED;
374,7 → 377,8
a = as_area_create((uint8_t *)base + bias, mem_sz,
AS_AREA_READ | AS_AREA_WRITE | AS_AREA_CACHEABLE);
if (a == (void *)(-1)) {
printf("memory mapping failed\n");
printf("memory mapping failed (0x%x, %d)\n",
base+bias, mem_sz);
return EE_MEMORY;
}