Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a test case as part of the load_elf() tests to verify the functionality that parses the ELF Note header to look for a PVH entry point address if one is encoded. This is done by parsing a minimal ELF binary that encodes a predefined address of 0x1e1fe1f, and verifying that the same value is read. A dummy note header is also included in the binary to verify the ability to ignore irrelevant notes. The minimal ELF source code (elfnote.S): #define ELFNOTE_START(name, type, flags) \ .pushsection .note.name, flags, @note ; \ .balign 4 ; \ .long 2f - 1f /* namesz */ ; \ .long 4484f - 3f /* descsz */ ; \ .long type ; \ 1:.asciz #name ; \ 2:.balign 4 ; \ 3: #define ELFNOTE_END \ 4484:.balign 4 ; \ .popsection ; #define ELFNOTE(name, type, desc) \ ELFNOTE_START(name, type, "a") \ desc ; \ ELFNOTE_END #define XEN_ELFNOTE_PHYS32_ENTRY 18 #define NT_VERSION 1 ELFNOTE(dummy, NT_VERSION, .quad 0xcafecafe) ELFNOTE(PVHNote, XEN_ELFNOTE_PHYS32_ENTRY, .quad 0x1e1fe1f) .section ".text","ax" .global _start _start: Built with: $ gcc elfnote.S -s -nostdlib -o test_elfnote.bin Signed-off-by: Alejandro Jimenez <[email protected]>
- Loading branch information