22 |
#include <sys/stat.h> |
#include <sys/stat.h> |
23 |
#include <argp.h> |
#include <argp.h> |
24 |
#include <string.h> |
#include <string.h> |
25 |
|
#include <signal.h> |
26 |
|
|
27 |
#include <grub/mm.h> |
#include <grub/mm.h> |
28 |
#include <grub/setjmp.h> |
#include <grub/setjmp.h> |
46 |
|
|
47 |
#define DEFAULT_DEVICE_MAP DEFAULT_DIRECTORY "/device.map" |
#define DEFAULT_DEVICE_MAP DEFAULT_DIRECTORY "/device.map" |
48 |
|
|
49 |
|
/* Used for going back to the main function. */ |
50 |
|
jmp_buf main_env; |
51 |
|
|
52 |
grub_addr_t |
grub_addr_t |
53 |
grub_arch_modules_addr (void) |
grub_arch_modules_addr (void) |
54 |
{ |
{ |
75 |
void |
void |
76 |
grub_machine_init (void) |
grub_machine_init (void) |
77 |
{ |
{ |
78 |
|
signal (SIGINT, SIG_IGN); |
79 |
grub_console_init (); |
grub_console_init (); |
80 |
} |
} |
81 |
|
|
82 |
|
void |
83 |
|
grub_machine_fini (void) |
84 |
|
{ |
85 |
|
grub_console_fini (); |
86 |
|
} |
87 |
|
|
88 |
|
|
89 |
const char *argp_program_version = PACKAGE_STRING; |
const char *argp_program_version = PACKAGE_STRING; |
150 |
|
|
151 |
argp_parse (&argp, argc, argv, 0, 0, &args); |
argp_parse (&argp, argc, argv, 0, 0, &args); |
152 |
|
|
153 |
/* More sure there is a root device. */ |
/* Make sure that there is a root device. */ |
154 |
if (! args.root_dev) |
if (! args.root_dev) |
155 |
{ |
{ |
156 |
args.root_dev = grub_guess_root_device (args.dir ? : DEFAULT_DIRECTORY); |
args.root_dev = grub_guess_root_device (args.dir ? : DEFAULT_DIRECTORY); |
188 |
grub_terminal_init (); |
grub_terminal_init (); |
189 |
grub_loop_init (); |
grub_loop_init (); |
190 |
grub_help_init (); |
grub_help_init (); |
191 |
|
grub_halt_init (); |
192 |
|
grub_reboot_init (); |
193 |
|
|
194 |
/* XXX: Should normal mode be started by default? */ |
/* XXX: Should normal mode be started by default? */ |
195 |
grub_normal_init (); |
grub_normal_init (); |
196 |
|
|
197 |
/* Start GRUB! */ |
/* Start GRUB! */ |
198 |
grub_main (); |
if (setjmp (main_env) == 0) |
199 |
|
grub_main (); |
200 |
|
|
201 |
|
grub_reboot_fini (); |
202 |
|
grub_halt_fini (); |
203 |
grub_help_fini (); |
grub_help_fini (); |
204 |
grub_loop_fini (); |
grub_loop_fini (); |
205 |
grub_util_biosdisk_fini (); |
grub_util_biosdisk_fini (); |
217 |
grub_amiga_partition_map_fini (); |
grub_amiga_partition_map_fini (); |
218 |
grub_pc_partition_map_fini (); |
grub_pc_partition_map_fini (); |
219 |
grub_apple_partition_map_fini (); |
grub_apple_partition_map_fini (); |
220 |
|
|
221 |
|
grub_machine_fini (); |
222 |
|
|
223 |
return 0; |
return 0; |
224 |
} |
} |