search for: image_subsystem_efi_appl

Displaying 7 results from an estimated 7 matches for "image_subsystem_efi_appl".

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 1/4] efi: Fix PE header field rva_and_sizes_nr
..., 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,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size, e_hdr_...
2013 Nov 29
1
[PATCH 1/4] efi: Fix PE header field rva_and_sizes_nr
.../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 them and set rva_and_sizes_nr to 0? -- Matt Fleming, Intel Open Source Technology Center
2013 Dec 01
0
[PATCH v2 1/4] efi: Fix PE header field rva_and_sizes_nr
..., 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,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size, e_hdr_...
2013 Nov 27
0
[PATCH 2/4] efi: Location, size and alignment of .text section
...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 (class == ELFCLASS64) { - hdr_sz = sizeof(o_hdr_pe32p) + sizeof(t_sec) + sizeof(e_hdr_pe32p) + - sizeof(r_sec) + sizeof(c_hdr) + sizeof(hdr) + sizeof(...
2013 Dec 01
0
[PATCH v2 4/4] efi: PE file size differ from in-memory size
...@@ static void write_header(FILE *f, __uint32_t entry, size_t data_size, memset(&e_hdr, 0, sizeof(e_hdr)); e_hdr.section_align = 4096; e_hdr.file_align = 512; - e_hdr.image_sz = hdr_sz + so_size; + e_hdr.image_sz = hdr_sz + so_memsz; 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); @@ -123,7 +123,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size, memset(&e_hdr_pe32p, 0, sizeof(e_hdr_pe32p)); e_hdr_pe32p.section_align = 4096; e_hdr_pe32p.file_align = 512;...
2013 Nov 27
0
[PATCH 4/4] efi: PE file size differ from in-memory size
...@@ static void write_header(FILE *f, __uint32_t entry, size_t data_size, memset(&e_hdr, 0, sizeof(e_hdr)); e_hdr.section_align = 4096; e_hdr.file_align = 512; - e_hdr.image_sz = hdr_sz + so_size; + e_hdr.image_sz = hdr_sz + so_memsz; 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); @@ -119,7 +119,7 @@ static void write_header(FILE *f, __uint32_t entry, size_t data_size, memset(&e_hdr_pe32p, 0, sizeof(e_hdr_pe32p)); e_hdr_pe32p.section_align = 4096; e_hdr_pe32p.file_align = 512;...