diff mbox series

[v2,1/2] mkimage: Simplify header size logic

Message ID 20181223025207.40755-2-agraf@suse.de
State Superseded
Headers show
Series arm64: Support HP Envy X2 | expand

Commit Message

Alexander Graf Dec. 23, 2018, 2:52 a.m. UTC
For EFI images, we always have the following layout:

  [PE header]
  [padding]
  [first section (which also is the entry point)]

Currently there are 2 places where we define how big header+padding are:
in the .vaddr_offset member of our target image definition struct as well
as in code in grub_install_generate_image().

Remove the latter, so that we only have a single place to modify if we
need to change the padding.

Signed-off-by: Alexander Graf <agraf@suse.de>

---
 util/mkimage.c | 5 +----
 1 file changed, 1 insertion(+), 4 deletions(-)

-- 
2.12.3


_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel

Comments

Daniel Kiper Jan. 14, 2019, 1:29 p.m. UTC | #1
On Sun, Dec 23, 2018 at 03:52:06AM +0100, Alexander Graf wrote:
> For EFI images, we always have the following layout:

>

>   [PE header]

>   [padding]

>   [first section (which also is the entry point)]

>

> Currently there are 2 places where we define how big header+padding are:

> in the .vaddr_offset member of our target image definition struct as well

> as in code in grub_install_generate_image().

>

> Remove the latter, so that we only have a single place to modify if we

> need to change the padding.

>

> Signed-off-by: Alexander Graf <agraf@suse.de>


Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>


Daniel

_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
https://lists.gnu.org/mailman/listinfo/grub-devel
diff mbox series

Patch

diff --git a/util/mkimage.c b/util/mkimage.c
index 353bb1098..88b991764 100644
--- a/util/mkimage.c
+++ b/util/mkimage.c
@@ -1226,10 +1226,7 @@  grub_install_generate_image (const char *dir, const char *prefix,
 	int header_size;
 	int reloc_addr;
 
-	if (image_target->voidp_sizeof == 4)
-	  header_size = EFI32_HEADER_SIZE;
-	else
-	  header_size = EFI64_HEADER_SIZE;
+	header_size = image_target->vaddr_offset;
 
 	reloc_addr = ALIGN_UP (header_size + core_size,
 			       image_target->section_align);