rendered paste body=== modified file 'kern/i386/pc/init.c'--- kern/i386/pc/init.c 2010-02-06 23:52:31 +0000+++ kern/i386/pc/init.c 2010-03-07 12:54:58 +0000@@ -143,17 +143,27 @@ /* Initialize the console as early as possible. */ grub_console_init (); + grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ grub_lower_mem = grub_get_memsize (0) << 10; /* Sanity check. */ if (grub_lower_mem < GRUB_MEMORY_MACHINE_RESERVED_END) grub_fatal ("too small memory"); + grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ #if 0 /* Turn on Gate A20 to access >1MB. */ grub_gate_a20 (1); #endif + grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();++ /* FIXME: This prevents loader/i386/linux.c from using low memory. When our heap implements support for requesting a chunk in low memory, this should no longer be a problem. */@@ -164,6 +174,9 @@ grub_lower_mem - GRUB_MEMORY_MACHINE_RESERVED_END); #endif + grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ auto int NESTED_FUNC_ATTR hook (grub_uint64_t, grub_uint64_t, grub_uint32_t); int NESTED_FUNC_ATTR hook (grub_uint64_t addr, grub_uint64_t size, grub_uint32_t type) {@@ -191,10 +204,19 @@ return 0; } + grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ grub_machine_mmap_iterate (hook); + grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ compact_mem_regions (); + grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ /* Add the memory regions to free memory, except for the region starting from 1MB. This region is partially used for loading OS images. For now, 1/4 of this is added to free memory. */@@ -211,10 +233,16 @@ else grub_mm_init_region ((void *) mem_regions[i].addr, mem_regions[i].size); + grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ if (! grub_os_area_addr) grub_fatal ("no upper memory"); grub_tsc_init ();++ grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey (); } void=== modified file 'kern/main.c'--- kern/main.c 2010-03-04 20:32:11 +0000+++ kern/main.c 2010-03-07 12:57:44 +0000@@ -154,27 +154,56 @@ /* First of all, initialize the machine. */ grub_machine_init (); + grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ /* Hello. */ grub_setcolorstate (GRUB_TERM_COLOR_HIGHLIGHT); grub_printf ("Welcome to GRUB!\n\n"); grub_setcolorstate (GRUB_TERM_COLOR_STANDARD); + grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ /* Load pre-loaded modules and free the space. */ grub_register_exported_symbols ();++ grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ #ifdef GRUB_LINKER_HAVE_INIT grub_arch_dl_init_linker (); #endif ++ grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ grub_load_modules (); + grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ /* It is better to set the root device as soon as possible, for convenience. */ grub_machine_set_prefix (); grub_set_root_dev (); + grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ grub_register_core_commands (); grub_register_rescue_parser (); + grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ grub_load_config ();+ grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ grub_load_normal_mode ();+ grub_printf ("%s:%d\n", __FILE__, __LINE__);+ grub_getkey ();+ grub_rescue_run (); }