2006-04-20 Yoshinori K. Okuji <okuji@enbug.org>

Add support for pre-loaded modules into the EFI port.

        * util/i386/efi/grub-mkimage.c (make_mods_section): Rewritten
        completely. Accept one more argument DIR. The caller has changed.

        * kern/i386/efi/init.c (grub_arch_modules_addr): Removed.

        * kern/efi/efi.c: Include grub/efi/pe32.h and grub/kernel.h.
        (grub_efi_loaded_image_guid): New variable.
        (grub_efi_get_loaded_image): New function.
        (grub_arch_modules_addr): Likewise.

        * include/grub/efi/efi.h (grub_efi_get_loaded_image): New
        prototype.

        * include/grub/efi/api.h (GRUB_EFI_LOADED_IMAGE_GUID): New macro.
        (struct grub_efi_loaded_image): New structure.
        (grub_efi_loaded_image_t): New type.
This commit is contained in:
okuji committed 2006-04-20 04:29:17 +00:00
1 parent c352d8dd0b
commit 2eab1c0dad
6 files changed
+180 -14

No files matched your search

+25 -1
View File
@@ -69,6 +69,9 @@
#define GRUB_EFI_OPTIONAL_PTR 0x00000001
#define GRUB_EFI_LOADED_IMAGE_GUID \
{ 0x5b1b31a1, 0x9562, 0x11d2, 0x8e, 0x3f, 0x00, 0xa0, 0xc9, 0x69, 0x72, 0x3b }
/* Enumerations. */
enum grub_efi_timer_delay
{
@@ -343,7 +346,6 @@ struct grub_efi_boot_services
grub_efi_event_t *event);
grub_efi_status_t
(*set_timer) (grub_efi_event_t event,
grub_efi_timer_delay_t type,
grub_efi_uint64_t trigger_time);
@@ -682,4 +684,26 @@ struct grub_efi_system_table
};
typedef struct grub_efi_system_table grub_efi_system_table_t;
struct grub_efi_loaded_image
{
grub_efi_uint32_t revision;
grub_efi_handle_t parent_handle;
grub_efi_system_table_t *system_table;
grub_efi_handle_t device_handle;
grub_efi_device_path_t *file_path;
void *reserved;
grub_efi_uint32_t load_options_size;
void *load_options;
void *image_base;
grub_efi_uint64_t image_size;
grub_efi_memory_type_t image_code_type;
grub_efi_memory_type_t image_data_type;
grub_efi_status_t (*unload) (grub_efi_handle_t image_handle);
};
typedef struct grub_efi_loaded_image grub_efi_loaded_image_t;
#endif /* ! GRUB_EFI_API_HEADER */