3 extern char _binary_realmode_bin_start[];
4 extern int _binary_realmode_bin_size;
9 unsigned long mem_lower, mem_upper;
10 unsigned long boot_dev;
12 unsigned long mod_cnt;
13 struct mod_info *mods;
24 void c_start(unsigned int magic, struct mb_info *wee)
26 unsigned short *grubptr = 0x7CFE;
29 void (*realmode)() = 0x4000;
33 puts("\nMultiboot header is: ");
42 for (i = 0; i < wee->mod_cnt; i++)
45 puts(" Start: "); puthex(wee->mods[i].mod_start); puts("\n");
46 puts(" Size: "); puthex(wee->mods[i].mod_end - wee->mods[i].mod_start); puts("\n");
47 puts(" Name: "); puts(wee->mods[i].mod_string); puts("\n");
50 puts("Now returning to real mode.\n");
51 memcpy(0x4000, _binary_realmode_bin_start, (int)&_binary_realmode_bin_size);