#include #include #include #include #include #include #include #include #include #include #include #include #include #include void main(int argc, char **argv) { int i; char cmdline[128]; jmp_buf load_state; if(argc < 2) { printf("Usage: v2load imagename [args]\n"); exit(1); } putenv("FOO=from-v2load"); cmdline[1] = 0; for(i=2; argv[i]; i++) { strcat(cmdline+1, " "); strcat(cmdline+1, argv[i]); } i = strlen(cmdline+1); cmdline[0] = i; cmdline[i+1] = 13; if(v2loadimage(argv[1],cmdline,load_state)) { printf("Load failed for %s\n",argv[1]); exit(2); } printf("Program text ................: %08x - %08x\n", areas[A_text].first_addr, areas[A_text].last_addr); printf("Program data ................: %08x - %08x\n", areas[A_data].first_addr, areas[A_data].last_addr); printf("Program bss .................: %08x - %08x\n", areas[A_bss].first_addr, areas[A_bss].last_addr); printf("Program stack ...............: %08x - %08x\n", areas[A_stack].first_addr, areas[A_stack].last_addr); printf("Program arena ...............: %08x - %08x\n", areas[A_arena].first_addr, areas[A_arena].last_addr); printf("Jumping to image...\n"); longjmp(load_state, 0); }