2008-08-12 Robert Millan <rmh@aybabtu.com>
* loader/i386/pc/multiboot.c (grub_multiboot_load_elf32): Move part of the relocation code from here ... (grub_multiboot): ... to here. (forward_relocator, backward_relocator): Move from here ... * kern/i386/loader.S (grub_multiboot_forward_relocator) (grub_multiboot_backward_relocator): ... to here. (grub_multiboot_real_boot): Use %edx for entry offset. Put Multiboot magic in %eax. Use %ebp for jumping (so %edx is not trashed). * include/grub/i386/loader.h (grub_multiboot_forward_relocator) (grub_multiboot_forward_relocator_end) (grub_multiboot_backward_relocator) (grub_multiboot_backward_relocator_end): New variables.
This commit is contained in:
parent
05f9452b12
commit
371458b576
4 changed files with 113 additions and 56 deletions
|
@ -53,4 +53,11 @@ extern grub_uint32_t EXPORT_VAR(grub_multiboot_payload_entry_offset);
|
|||
void grub_rescue_cmd_linux (int argc, char *argv[]);
|
||||
void grub_rescue_cmd_initrd (int argc, char *argv[]);
|
||||
|
||||
extern grub_uint8_t EXPORT_VAR(grub_multiboot_forward_relocator);
|
||||
extern grub_uint8_t EXPORT_VAR(grub_multiboot_forward_relocator_end);
|
||||
extern grub_uint8_t EXPORT_VAR(grub_multiboot_backward_relocator);
|
||||
extern grub_uint8_t EXPORT_VAR(grub_multiboot_backward_relocator_end);
|
||||
|
||||
#define RELOCATOR_SIZEOF(x) (&grub_multiboot_##x##_relocator_end - &grub_multiboot_##x##_relocator)
|
||||
|
||||
#endif /* ! GRUB_LOADER_CPU_HEADER */
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue