david/ipxe
Archived
1
0

Capable of starting a multiboot kernel (albeit without the multiboot

information table yet).
This commit is contained in:
Michael Brown 2007-01-11 18:41:15 +00:00
parent 9196e9069c
commit dc51af59a4

View File

@ -74,8 +74,21 @@ struct multiboot_header_info {
* @v image ELF file
* @ret rc Return status code
*/
static int multiboot_execute ( struct image *image __unused ) {
return -ENOTSUP;
static int multiboot_execute ( struct image *image ) {
struct multiboot_info mbinfo;
/* Populate multiboot information structure */
memset ( &mbinfo, 0, sizeof ( mbinfo ) );
/* Jump to OS with flat physical addressing */
__asm__ ( PHYS_CODE ( "call *%%edi\n\t" )
: : "a" ( MULTIBOOT_BOOTLOADER_MAGIC ),
"b" ( virt_to_phys ( &mbinfo ) ),
"D" ( image->entry )
: "ecx", "edx", "esi", "ebp" );
return -ECANCELED;
}
/**