Rev 3536 | Rev 3684 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 3536 | Rev 3597 | ||
|---|---|---|---|
| Line 245... | Line 245... | ||
| 245 | pcb.argv = argv; |
245 | pcb.argv = argv; |
| 246 | 246 | ||
| 247 | if (prog_info.interp == NULL) { |
247 | if (prog_info.interp == NULL) { |
| 248 | /* Statically linked program */ |
248 | /* Statically linked program */ |
| 249 | // printf("Run statically linked program\n"); |
249 | // printf("Run statically linked program\n"); |
| 250 | // printf("entry point: 0x%llx\n", prog_info.entry); |
250 | // printf("entry point: 0x%lx\n", prog_info.entry); |
| 251 | is_dyn_linked = false; |
251 | is_dyn_linked = false; |
| 252 | ipc_answer_0(rid, EOK); |
252 | ipc_answer_0(rid, EOK); |
| 253 | return 0; |
253 | return 0; |
| 254 | } |
254 | } |
| 255 | 255 | ||
| Line 283... | Line 283... | ||
| 283 | static void loader_run(ipc_callid_t rid, ipc_call_t *request) |
283 | static void loader_run(ipc_callid_t rid, ipc_call_t *request) |
| 284 | { |
284 | { |
| 285 | if (is_dyn_linked == true) { |
285 | if (is_dyn_linked == true) { |
| 286 | /* Dynamically linked program */ |
286 | /* Dynamically linked program */ |
| 287 | printf("run dynamic linker\n"); |
287 | printf("run dynamic linker\n"); |
| 288 | printf("entry point: 0x%llx\n", interp_info.entry); |
288 | printf("entry point: 0x%lx\n", interp_info.entry); |
| 289 | close_console(); |
289 | close_console(); |
| 290 | 290 | ||
| 291 | ipc_answer_0(rid, EOK); |
291 | ipc_answer_0(rid, EOK); |
| 292 | elf_run(&interp_info, &pcb); |
292 | elf_run(&interp_info, &pcb); |
| 293 | 293 | ||
| Line 317... | Line 317... | ||
| 317 | 317 | ||
| 318 | while (1) { |
318 | while (1) { |
| 319 | callid = async_get_call(&call); |
319 | callid = async_get_call(&call); |
| 320 | 320 | ||
| 321 | switch (IPC_GET_METHOD(call)) { |
321 | switch (IPC_GET_METHOD(call)) { |
| - | 322 | case IPC_M_PHONE_HUNGUP: |
|
| - | 323 | exit(0); |
|
| 322 | case LOADER_GET_TASKID: |
324 | case LOADER_GET_TASKID: |
| 323 | loader_get_taskid(callid, &call); |
325 | loader_get_taskid(callid, &call); |
| 324 | continue; |
326 | continue; |
| 325 | case LOADER_SET_PATHNAME: |
327 | case LOADER_SET_PATHNAME: |
| 326 | loader_set_pathname(callid, &call); |
328 | loader_set_pathname(callid, &call); |