diff options
author | dfr <dfr@FreeBSD.org> | 2001-09-24 19:37:44 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2001-09-24 19:37:44 +0000 |
commit | 876717e81e830cdbfc61d9fe83aa928d05dd22bb (patch) | |
tree | ad97ca9aade3ec1b751d67d9a7b733270f00024b /sys | |
parent | e19e9a89725b0ba6f208a0a73cc571349c721078 (diff) | |
download | FreeBSD-src-876717e81e830cdbfc61d9fe83aa928d05dd22bb.zip FreeBSD-src-876717e81e830cdbfc61d9fe83aa928d05dd22bb.tar.gz |
Return the mapkey which EFI gave us when we read the memory map - we need
it to call ExitBootServices.
Diffstat (limited to 'sys')
-rw-r--r-- | sys/boot/efi/libefi/bootinfo.c | 4 | ||||
-rw-r--r-- | sys/boot/efi/libefi/efiboot.h | 3 | ||||
-rw-r--r-- | sys/boot/ia64/common/bootinfo.c | 4 |
3 files changed, 8 insertions, 3 deletions
diff --git a/sys/boot/efi/libefi/bootinfo.c b/sys/boot/efi/libefi/bootinfo.c index 60a2510..956b813 100644 --- a/sys/boot/efi/libefi/bootinfo.c +++ b/sys/boot/efi/libefi/bootinfo.c @@ -239,7 +239,7 @@ bi_copymodules(vm_offset_t addr) * - Module metadata are formatted and placed in kernel space. */ int -bi_load(struct bootinfo *bi, struct preloaded_file *fp, char *args) +bi_load(struct bootinfo *bi, struct preloaded_file *fp, UINTN *mapkey) { char *rootdevname; struct efi_devdesc *rootdev; @@ -340,7 +340,9 @@ bi_load(struct bootinfo *bi, struct preloaded_file *fp, char *args) &bi->bi_memdesc_version); if (EFI_ERROR(status)) { printf("bi_load: Can't read memory map\n"); + return EINVAL; } + *mapkey = key; return(0); } diff --git a/sys/boot/efi/libefi/efiboot.h b/sys/boot/efi/libefi/efiboot.h index 13d6d6a..c8d6da7 100644 --- a/sys/boot/efi/libefi/efiboot.h +++ b/sys/boot/efi/libefi/efiboot.h @@ -85,4 +85,5 @@ extern int efi_autoload(void); struct bootinfo; struct preloaded_file; -extern int bi_load(struct bootinfo *, struct preloaded_file *); +extern int bi_load(struct bootinfo *, struct preloaded_file *, + UINTN *mapkey); diff --git a/sys/boot/ia64/common/bootinfo.c b/sys/boot/ia64/common/bootinfo.c index 60a2510..956b813 100644 --- a/sys/boot/ia64/common/bootinfo.c +++ b/sys/boot/ia64/common/bootinfo.c @@ -239,7 +239,7 @@ bi_copymodules(vm_offset_t addr) * - Module metadata are formatted and placed in kernel space. */ int -bi_load(struct bootinfo *bi, struct preloaded_file *fp, char *args) +bi_load(struct bootinfo *bi, struct preloaded_file *fp, UINTN *mapkey) { char *rootdevname; struct efi_devdesc *rootdev; @@ -340,7 +340,9 @@ bi_load(struct bootinfo *bi, struct preloaded_file *fp, char *args) &bi->bi_memdesc_version); if (EFI_ERROR(status)) { printf("bi_load: Can't read memory map\n"); + return EINVAL; } + *mapkey = key; return(0); } |