Changeset 1ea99cc in mainline for uspace/srv/loader/main.c


Ignore:
Timestamp:
2009-08-20T20:47:35Z (15 years ago)
Author:
Jiri Svoboda <jiri@…>
Branches:
lfn, master, serial, ticket/834-toolchain-update, topic/msim-upgrade, topic/simplify-dev-export
Children:
b50b5af2
Parents:
24edc18
Message:

Merge changes from original Subversion dynload branch.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • uspace/srv/loader/main.c

    r24edc18 r1ea99cc  
    6666#define DPRINTF(...)
    6767
     68void program_run(void *entry, pcb_t *pcb);
     69
    6870/** Pathname of the file that will be loaded */
    6971static char *pathname = NULL;
     
    304306        int rc;
    305307       
    306         rc = elf_load_file(pathname, 0, &prog_info);
     308        rc = elf_load_file(pathname, 0, 0, &prog_info);
    307309        if (rc != EE_OK) {
    308310                DPRINTF("Failed to load executable '%s'.\n", pathname);
     
    326328        }
    327329       
    328         rc = elf_load_file(prog_info.interp, 0, &interp_info);
     330        printf("Load ELF interpreter '%s'\n", prog_info.interp);
     331        rc = elf_load_file(prog_info.interp, 0, 0, &interp_info);
    329332        if (rc != EE_OK) {
    330333                DPRINTF("Failed to load interpreter '%s.'\n",
     
    334337        }
    335338       
     339        printf("Run interpreter.\n");
     340        printf("entry point: 0x%lx\n", interp_info.entry);
     341        printf("pcb address: 0x%lx\n", &pcb);
     342        printf("prog dynamic: 0x%lx\n", prog_info.dynamic);
     343
    336344        is_dyn_linked = true;
    337345        ipc_answer_0(rid, EOK);
     
    362370               
    363371                ipc_answer_0(rid, EOK);
    364                 elf_run(&interp_info, &pcb);
     372                program_run(interp_info.entry, &pcb);
    365373        } else {
    366374                /* Statically linked program */
    367375                ipc_answer_0(rid, EOK);
    368                 elf_run(&prog_info, &pcb);
     376                program_run(prog_info.entry, &pcb);
    369377        }
    370378       
Note: See TracChangeset for help on using the changeset viewer.