void dumpit(unsigned long l1, unsigned long l2) { outhex32(l1); puts("l1"); outhex32(l2); puts("l2"); while(1); }
int main() { extern unsigned long __data_rom_start; extern unsigned long __data_start; extern unsigned long __data_end; extern unsigned long __bss_start; extern unsigned long __bss_end; unsigned long *src; unsigned long *dest; unsigned long tmp; struct lregs *regs = (struct lregs *) 0x80000000; #if 0 puts("Testing RAM\n"); puts("Write...\n"); for (dest = (unsigned long *)0x40000000; dest < (unsigned long *)0x40080000; dest++) { *dest = (unsigned long)0x5a5a5a5a ^ (unsigned long)dest; } puts("Read...\n"); for (dest = (unsigned long *)0x40000000; dest < (unsigned long *)0x40080000; dest++) { tmp = (unsigned long)0x5a5a5a5a ^ (unsigned long)dest; if (*dest != tmp) { puts("Failed."); outhex32((unsigned long)dest); puts("is"); outhex32(*dest); puts("wrote"); outhex32(tmp); while(1); } } #endif puts("512k RAM\n"); if (testvar == 0xdeadbeef) puts("Found my key\n"); else puts("My keys are missing!\n"); #if 0 src = &__data_rom_start; dest = &__data_start; while (dest < &__data_end) *(dest++) = *(src++); #endif dest = &__bss_start; while (dest < &__bss_end) *(dest++) = 0; puts("Moved .data\n"); if (testvar == 0xdeadbeef) puts("Found my key\n"); else puts("My keys are missing!\n"); testvar = 0; start_kernel(); }
static void run_hooks_backward(crt0_hook *list, const char *name) { (void)name; #ifdef DEBUG outstring("list (backward) "); outstring(name); outstring(" @ "); outhex32((unsigned)list); outchar('\n'); #endif list--; while (*list != (crt0_hook)~1UL) { #ifdef DEBUG outstring(" calling "); outhex32((unsigned)*list); outchar('\n'); #endif (**list)(); list--; } }
void die_if_kernel(char *str, struct pt_regs *pregs) { unsigned long pc; pc = pregs->pc; puts(""); outhex32(pc); puts(" trapped to die_if_kernel"); show_regs(pregs); #if 0 if(pregs->psr & PSR_SUPERVISOR) do_exit(SIGKILL); do_exit(SIGSEGV); #endif }