static int getDebugChar(void) { char c; if (read(gdbsockfd, &c, 1) < 0) { /* kprintf(("read error\n"); */ debug_shutdown(); exit(-1); } return(c); }
static int putDebugChar(int c) { if (write(gdbsockfd, &c, 1) < 0) { /* kprintf(("write error\n"); */ debug_shutdown(); exit(-1); } return 1; }
void kernel_launch(void) { devtree_prepare(); printf("Relocating vectors...\n"); memcpy((void*)0, vec_buf, VECSIZE); sync_before_exec((void*)0, VECSIZE); printf("Letting thread1 run loose...\n"); _thread1_vector = 0x60; /* this is __secondary_hold in Linux */ _thread1_release = 1; printf("Taking the plunge...\n"); debug_shutdown(); ((kernel_entry)entry)(__devtree, entry[0], NULL); lv1_panic(0); }