static grub_err_t grub_multiboot_boot (void) { grub_err_t err; struct grub_relocator32_state state = MULTIBOOT_INITIAL_STATE; state.MULTIBOOT_ENTRY_REGISTER = grub_multiboot_payload_eip; err = grub_multiboot_make_mbi (&state.MULTIBOOT_MBI_REGISTER); if (err) return err; if (grub_efi_is_finished) normal_boot (grub_multiboot_relocator, state); else efi_boot (grub_multiboot_relocator, state.MULTIBOOT_MBI_REGISTER); /* Not reached. */ return GRUB_ERR_NONE; }
static grub_err_t grub_multiboot_boot (void) { grub_err_t err; struct grub_relocator32_state state = MULTIBOOT_INITIAL_STATE; state.MULTIBOOT_ENTRY_REGISTER = grub_multiboot_payload_eip; err = grub_multiboot_make_mbi (&state.MULTIBOOT_MBI_REGISTER); if (err) return err; #if defined (__i386__) || defined (__x86_64__) grub_relocator32_boot (grub_multiboot_relocator, state, 0); #else grub_relocator32_boot (grub_multiboot_relocator, state); #endif /* Not reached. */ return GRUB_ERR_NONE; }