summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <xypron.glpk@gmx.de>2018-04-03 22:29:31 +0200
committerAlexander Graf <agraf@suse.de>2018-04-04 11:37:34 +0200
commit84b40b40ad9b95b4680766597c866b604147144c (patch)
tree2cc7a09e7e737744d42970300b03befb5a9b7cd1
parent7fb96a10b31953cde698326a61e963ba9df1dc1f (diff)
efi_loader: save image relocation address and size
For analyzing crash output the relocation address and size are needed. Save them in the loaded image info. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Signed-off-by: Alexander Graf <agraf@suse.de>
-rw-r--r--include/efi_api.h2
-rw-r--r--lib/efi_loader/efi_image_loader.c2
2 files changed, 4 insertions, 0 deletions
diff --git a/include/efi_api.h b/include/efi_api.h
index d9a69dbc005..2be470b2378 100644
--- a/include/efi_api.h
+++ b/include/efi_api.h
@@ -331,6 +331,8 @@ struct efi_loaded_image {
/* Below are efi loader private fields */
#ifdef CONFIG_EFI_LOADER
+ void *reloc_base;
+ aligned_u64 reloc_size;
efi_status_t exit_status;
struct jmp_buf_data exit_jmp;
#endif
diff --git a/lib/efi_loader/efi_image_loader.c b/lib/efi_loader/efi_image_loader.c
index cac64ba9fec..701387b95f2 100644
--- a/lib/efi_loader/efi_image_loader.c
+++ b/lib/efi_loader/efi_image_loader.c
@@ -221,6 +221,8 @@ void *efi_load_pe(void *efi, struct efi_loaded_image *loaded_image_info)
/* Populate the loaded image interface bits */
loaded_image_info->image_base = efi;
loaded_image_info->image_size = image_size;
+ loaded_image_info->reloc_base = efi_reloc;
+ loaded_image_info->reloc_size = virt_size;
return entry;
}