You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Add test cases to verify the functionality that parses
the ELF Note header to look for a PVH entry point address
if one is encoded.
Parse a minimal ELF binary that encodes a predefined address
of 0x1e1fe1f, and verify that the same value is read. Also
test the case in which a note header is present but no PVH
entry point is encoded, as well as a case where the PVH entry
address is encoded in the note header using a field of
incorrect size.
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
The elfnote.S source above is modified to generate the binaries
for the rest of the test cases.
Signed-off-by: Alejandro Jimenez <[email protected]>
0 commit comments