Rev 2973 | Rev 2989 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2973 | Rev 2988 | ||
---|---|---|---|
Line 55... | Line 55... | ||
55 | printf("This is loader\n"); |
55 | printf("This is loader\n"); |
56 | getchar(); |
56 | getchar(); |
57 | 57 | ||
58 | printf("Load program\n"); |
58 | printf("Load program\n"); |
59 | 59 | ||
60 | rc = elf_load_file("/dltest", 0, &prog_info); |
60 | // rc = elf_load_file("/dltest", 0, &prog_info); |
- | 61 | rc = elf_load_file("/tetris", 0, &prog_info); |
|
61 | if (rc < 0) { |
62 | if (rc < 0) { |
62 | printf("failed to load program\n"); |
63 | printf("failed to load program\n"); |
63 | return 1; |
64 | return 1; |
64 | } |
65 | } |
65 | 66 | ||
66 | printf("Create PCB\n"); |
67 | printf("Create PCB\n"); |
67 | if (elf_create_pcb(&prog_info) < 0) return 1; |
68 | if (elf_create_pcb(&prog_info) < 0) return 1; |
68 | 69 | ||
- | 70 | // elf_run(&prog_info); |
|
- | 71 | ||
69 | // getchar(); |
72 | // getchar(); |
70 | 73 | ||
71 | printf("Load dynamic linker\n"); |
74 | /* printf("Load dynamic linker\n"); |
72 | file_name = "/rtld.so"; |
75 | file_name = "/rtld.so"; |
73 | printf("open and read '%s'...\n", file_name); |
76 | printf("open and read '%s'...\n", file_name); |
74 | rc = elf_load_file(file_name, RTLD_BIAS, &interp_info); |
77 | rc = elf_load_file(file_name, RTLD_BIAS, &interp_info); |
75 | if (rc < 0) { |
78 | if (rc < 0) { |
76 | printf("failed to load dynamic linker\n"); |
79 | printf("failed to load dynamic linker\n"); |
77 | return 1; |
80 | return 1; |
78 | } |
81 | } |
79 | 82 | ||
80 | printf("run dynamic linker\n"); |
83 | printf("run dynamic linker\n"); |
81 | elf_run(&interp_info); |
84 | elf_run(&interp_info); |
82 | 85 | */ |
|
83 | /* not reached */ |
86 | /* not reached */ |
84 | return 0; |
87 | return 0; |
85 | } |
88 | } |
86 | 89 | ||
87 | /** @} |
90 | /** @} |