vaseboot/include/grub
okuji 7f362539b7 2006-04-30 Yoshinori K. Okuji <okuji@enbug.org>
Extend the loader so that GRUB can accept a loader which comes
        back to GRUB when a loaded image exits. Also, this change adds
        support for a chainloader on EFI.

        * term/efi/console.c: Include grub/misc.h.
        (grub_console_checkkey): Display a scan code on the top for
        debugging. This will be removed once the EFI port gets stable.
        Correct the scan code mapping.

        * kern/efi/mm.c (sort_memory_map): Sort in a descending order to
        allocate memory from larger regions, in order to reduce the number
        of allocated regions. Otherwise, the MacOSX loader panics.
        (filter_memory_map): Avoid less than 1MB for compatibility with
        other loaders.
        (add_memory_regions): Allocate from the tail of a region, if
        possible, to avoid allocating a region near to 1MB, for the MacOSX
        loader.

        * kern/efi/init.c (grub_efi_set_prefix): Specify
        GRUB_EFI_IMAGE_HANDLE to grub_efi_get_loaded_image.

        * kern/efi/efi.c (grub_efi_get_loaded_image): Accept a new
        argument IMAGE_HANDLE and specify it to get a loaded image.
        (grub_arch_modules_addr): Specify GRUB_EFI_IMAGE_HANDLE to
        grub_efi_get_loaded_image.
        (grub_efi_get_filename): Divide the legnth by the size of
        grub_efi_char16_t.
        (grub_efi_get_device_path): New function.
        (grub_efi_print_device_path): Print End Device Path nodes. Divide
        the length by the size of grub_efi_char16_t for a file path device
        path node.

        * kern/loader.c (grub_loader_noreturn): New variable.
        (grub_loader_set): Accept a new argument NORETURN. Set
        GRUB_LOADER_NORETURN to NORETURN.
        All callers changed.
        (grub_loader_boot): If GRUB_LOADER_NORETURN is false, do not call
        grub_machine_fini.

        * include/grub/efi/efi.h (grub_efi_get_device_path): New
        prototype.
        (grub_efi_get_loaded_image): Take an argument to specify an image
        handle.

        * include/grub/loader.h (grub_loader_set): Added one more argument
        NORETURN.

        * disk/efi/efidisk.c (make_devices): Use grub_efi_get_device_path
        instead of grub_efi_open_protocol.
        (grub_efidisk_get_device_name): Likewise.
        (grub_efidisk_close): Print a newline.
        (grub_efidisk_get_device_handle): Fixed to use
        GRUB_EFI_DEVICE_PATH_SUBTYPE instead of
        GRUB_EFI_DEVICE_PATH_TYPE.

        * disk/efi/efidisk.c (device_path_guid): Moved to ...
        * kern/efi/efi.c (device_path_guid): ... here.

        * conf/i386-efi.rmk (pkgdata_MODULES): Added _chain.mod and
        chain.mod.
        (kernel_mod_HEADERS): Added efi/disk.h.
        (_chain_mod_SOURCES): New variable.
        (_chain_mod_CFLAGS): Likewise.
        (_chain_mod_LDFLAGS): Likewise.
        (chain_mod_SOURCES): Likewise.
        (chain_mod_CFLAGS): Likewise.
        (chain_mod_LDFLAGS): Likewise.

        * DISTLIST: Added include/grub/efi/chainloader.h,
        loader/efi/chainloader.c and loader/efi/chainloader_normal.c.

        * include/grub/efi/chainloader.h: New file.
        * loader/efi/chainloader.c: Likewise.
        * loader/efi/chainloader_normal.c: Likewise.
2006-04-30 21:09:37 +00:00
..
efi 2006-04-30 Yoshinori K. Okuji <okuji@enbug.org> 2006-04-30 21:09:37 +00:00
i386 2006-04-19 Yoshinori K. Okuji <okuji@enbug.org> 2006-04-19 08:59:44 +00:00
ieee1275 2005-08-21 Vincent Pelletier <subdino2004@yahoo.fr> 2005-08-21 18:42:55 +00:00
powerpc 2006-04-23 Yoshinori K. Okuji <okuji@enbug.org> 2006-04-23 13:37:36 +00:00
sparc64 2006-04-23 Yoshinori K. Okuji <okuji@enbug.org> 2006-04-23 13:37:36 +00:00
util 2005-02-15 Yoshinori K. Okuji <okuji@enbug.org> 2005-02-15 00:07:01 +00:00
acorn_filecore.h 2005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk> 2005-11-13 19:45:12 +00:00
arg.h 2005-07-17 Yoshinori Okuji <okuji@enbug.org> 2005-07-17 20:26:07 +00:00
boot.h 2004-04-04 Yoshinori K. Okuji <okuji@enbug.org> 2004-04-04 13:46:03 +00:00
cache.h 2004-12-27 Marco Gerards <metgerards@student.han.nl> 2004-12-27 13:46:20 +00:00
device.h 2005-08-20 Yoshinori K. Okuji <okuji@enbug.org> 2005-08-20 07:49:02 +00:00
disk.h 2006-04-23 Yoshinori K. Okuji <okuji@enbug.org> 2006-04-23 13:37:36 +00:00
dl.h 2005-11-27 Marco Gerards <mgerards@xs4all.nl> 2005-11-27 12:21:12 +00:00
elf.h 2004-04-04 Yoshinori K. Okuji <okuji@enbug.org> 2004-04-04 13:46:03 +00:00
env.h 2006-04-30 Marco Gerards <marco@gnu.org> 2006-04-30 14:05:50 +00:00
err.h 2005-12-24 Vesa Jaaskelainen <chaac@nic.fi> 2005-12-23 22:59:12 +00:00
file.h 2004-04-04 Yoshinori K. Okuji <okuji@enbug.org> 2004-04-04 13:46:03 +00:00
font.h 2006-03-14 Vesa Jaaskelainen <chaac@nic.fi> 2006-03-14 19:08:34 +00:00
fs.h 2005-10-09 Marco Gerards <mgerards@xs4all.nl> 2005-10-09 13:03:53 +00:00
fshelp.h 2005-12-25 Marco Gerards <marco@gnu.org> 2005-12-25 15:59:50 +00:00
gzio.h 2005-08-22 Yoshinori K. Okuji <okuji@enbug.org> 2005-08-22 17:28:59 +00:00
hfs.h 2006-01-03 Hollis Blanchard <hollis@penguinppc.org> 2006-01-03 14:30:57 +00:00
kernel.h 2006-04-25 Yoshinori K. Okuji <okuji@enbug.org> 2006-04-25 20:08:31 +00:00
loader.h 2006-04-30 Yoshinori K. Okuji <okuji@enbug.org> 2006-04-30 21:09:37 +00:00
misc.h 2006-04-23 Yoshinori K. Okuji <okuji@enbug.org> 2006-04-23 13:37:36 +00:00
mm.h 2006-04-25 Yoshinori K. Okuji <okuji@enbug.org> 2006-04-25 20:08:31 +00:00
net.h 2004-04-04 Yoshinori K. Okuji <okuji@enbug.org> 2004-04-04 13:46:03 +00:00
normal.h 2006-01-17 Marco Gerards <marco@gnu.org> 2006-01-17 09:50:47 +00:00
parser.h 2005-10-24 Marco Gerards <mgerards@xs4all.nl> 2005-10-24 10:23:46 +00:00
partition.h 2005-08-20 Yoshinori K. Okuji <okuji@enbug.org> 2005-08-20 07:49:02 +00:00
pc_partition.h 2005-12-03 Marco Gerards <mgerards@xs4all.nl> 2005-12-03 17:54:55 +00:00
rescue.h 2004-04-04 Yoshinori K. Okuji <okuji@enbug.org> 2004-04-04 13:46:03 +00:00
script.h 2006-17-04 Marco Gerards <marco@gnu.org> 2006-04-17 13:01:20 +00:00
setjmp.h 2004-11-17 Hollis Blanchard <hollis@penguinppc.org> 2004-11-16 23:34:45 +00:00
symbol.h 2006-04-26 Yoshinori K. Okuji <okuji@enbug.org> 2006-04-26 21:58:36 +00:00
term.h 2005-10-15 Yoshinori K. Okuji <okuji@enbug.org> 2005-10-15 09:22:32 +00:00
terminfo.h 2005-09-03 Yoshinori K. Okuji <okuji@enbug.org> 2005-09-03 16:54:27 +00:00
tparm.h 2005-09-03 Yoshinori K. Okuji <okuji@enbug.org> 2005-09-03 16:54:27 +00:00
types.h 2005-11-13 Timothy Baldwin <T.E.Baldwin99@members.leeds.ac.uk> 2005-11-13 19:45:12 +00:00
video.h 2006-04-26 Yoshinori K. Okuji <okuji@enbug.org> 2006-04-26 21:58:36 +00:00