search for: image_sz

Displaying 9 results from an estimated 9 matches for "image_sz".

2013 Nov 27
20
[PATCH 0/4] efi: PE header generation fix
The PE headers of the generated efi file were quite buggy. And since OVMF perform a few consistency checks, syslinux was unable to run on it. I don't pretend to have a thorough understanding of the PE+ headers, some bugs may remain. :) Celelibi (4): efi: Fix PE header field rva_and_sizes_nr efi: Location, size and alignment of .text section efi: Useless relocations in PE file efi: PE
2013 Nov 27
0
[PATCH 2/4] efi: Location, size and alignment of .text section
..._version = 0x14; - o_hdr.code_sz = total_sz; + o_hdr.code_sz = data_size; o_hdr.entry_point = entry; o_hdr.initialized_data_sz = data_size; fwrite(&o_hdr, sizeof(o_hdr), 1, f); memset(&e_hdr, 0, sizeof(e_hdr)); e_hdr.section_align = 4096; e_hdr.file_align = 512; - e_hdr.image_sz = total_sz; - e_hdr.headers_sz = 512; + e_hdr.image_sz = hdr_sz + so_size; + e_hdr.headers_sz = hdr_sz; e_hdr.subsystem = IMAGE_SUBSYSTEM_EFI_APPLICATION; e_hdr.rva_and_sizes_nr = sizeof(e_hdr.data_directory) / sizeof(__uint64_t); fwrite(&e_hdr, sizeof(e_hdr), 1, f); } else if (...
2013 Dec 01
0
[PATCH v2 4/4] efi: PE file size differ from in-memory size
PE headers code_sz and image_sz indicate more or less, the size of the file and the size of the in-memory image. They are now given the right value. In the ELF format, only the program headers are reliable to determine the actually needed part of the file and the in-memory size. The .bss section should always be marked as NOLOA...
2013 Nov 27
0
[PATCH 4/4] efi: PE file size differ from in-memory size
PE headers code_sz and image_sz indicate more or less, the size of the file and the size of the in-memory image. They are now given the right value. In the ELF format, only the program headers are reliable to determine the actually needed part of the file and the in-memory size. The .bss section should always be marked as NOLOA...
2013 Nov 27
0
[PATCH 1/4] efi: Fix PE header field rva_and_sizes_nr
...| 28 ++++++++++++++++------------ 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/efi/wrapper.c b/efi/wrapper.c index 04c895f..ec77271 100644 --- a/efi/wrapper.c +++ b/efi/wrapper.c @@ -102,7 +102,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size, e_hdr.image_sz = total_sz; e_hdr.headers_sz = 512; e_hdr.subsystem = IMAGE_SUBSYSTEM_EFI_APPLICATION; - e_hdr.rva_and_sizes_nr = 1; + e_hdr.rva_and_sizes_nr = sizeof(e_hdr.data_directory) / sizeof(__uint64_t); fwrite(&e_hdr, sizeof(e_hdr), 1, f); } else if (class == ELFCLASS64) { @@ -130,7 +130...
2013 Nov 29
1
[PATCH 1/4] efi: Fix PE header field rva_and_sizes_nr
...2 files changed, 19 insertions(+), 15 deletions(-) > > diff --git a/efi/wrapper.c b/efi/wrapper.c > index 04c895f..ec77271 100644 > --- a/efi/wrapper.c > +++ b/efi/wrapper.c > @@ -102,7 +102,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size, > e_hdr.image_sz = total_sz; > e_hdr.headers_sz = 512; > e_hdr.subsystem = IMAGE_SUBSYSTEM_EFI_APPLICATION; > - e_hdr.rva_and_sizes_nr = 1; > + e_hdr.rva_and_sizes_nr = sizeof(e_hdr.data_directory) / sizeof(__uint64_t); Since the data directories aren't ever used, can't we just delete...
2013 Dec 01
0
[PATCH v2 1/4] efi: Fix PE header field rva_and_sizes_nr
...| 28 ++++++++++++++++------------ 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/efi/wrapper.c b/efi/wrapper.c index 04c895f..ec77271 100644 --- a/efi/wrapper.c +++ b/efi/wrapper.c @@ -102,7 +102,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size, e_hdr.image_sz = total_sz; e_hdr.headers_sz = 512; e_hdr.subsystem = IMAGE_SUBSYSTEM_EFI_APPLICATION; - e_hdr.rva_and_sizes_nr = 1; + e_hdr.rva_and_sizes_nr = sizeof(e_hdr.data_directory) / sizeof(__uint64_t); fwrite(&e_hdr, sizeof(e_hdr), 1, f); } else if (class == ELFCLASS64) { @@ -130,7 +130...
2013 Dec 01
0
[PATCH v2 3/4] efi: Useless relocations in PE file
...y_point = entry; o_hdr.initialized_data_sz = data_size; fwrite(&o_hdr_pe32p, sizeof(o_hdr_pe32p), 1, f); - memset(&e_hdr_pe32p, 0, sizeof(e_hdr)); + memset(&e_hdr_pe32p, 0, sizeof(e_hdr_pe32p)); e_hdr_pe32p.section_align = 4096; e_hdr_pe32p.file_align = 512; e_hdr_pe32p.image_sz = hdr_sz + so_size; @@ -144,26 +142,6 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size, fwrite(&t_sec, sizeof(t_sec), 1, f); /* - * Write our dummy relocation and reloc section. - */ - memset(&r_sec, 0, sizeof(r_sec)); - strcpy((char *)r_sec.name, ".reloc...
2013 Nov 27
0
[PATCH 3/4] efi: Useless relocations in PE file
...y_point = entry; o_hdr.initialized_data_sz = data_size; fwrite(&o_hdr_pe32p, sizeof(o_hdr_pe32p), 1, f); - memset(&e_hdr_pe32p, 0, sizeof(e_hdr)); + memset(&e_hdr_pe32p, 0, sizeof(e_hdr_pe32p)); e_hdr_pe32p.section_align = 4096; e_hdr_pe32p.file_align = 512; e_hdr_pe32p.image_sz = hdr_sz + so_size; @@ -140,26 +138,6 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size, fwrite(&t_sec, sizeof(t_sec), 1, f); /* - * Write our dummy relocation and reloc section. - */ - memset(&r_sec, 0, sizeof(r_sec)); - strcpy((char *)r_sec.name, ".reloc...