From 46c749b54b73140543f31f36674af993aa121107 Mon Sep 17 00:00:00 2001 From: Jari Vetoniemi Date: Mon, 1 May 2017 23:13:54 +0300 Subject: Add elf.fspec Needs union support to be implemented fully. --- spec/elf.fspec | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 spec/elf.fspec (limited to 'spec') diff --git a/spec/elf.fspec b/spec/elf.fspec new file mode 100644 index 0000000..d107f85 --- /dev/null +++ b/spec/elf.fspec @@ -0,0 +1,26 @@ +struct elf64 { + e_entry: u64; + e_phoff: u64; + e_shoff: u64; +}; + +struct elf { + ei_magic: u8[4] | matches('\x7fELF') str; + ei_class: u8 hex; // word size + ei_data: u8 hex; // endianess + ei_version: u8; + ei_osabi: u8; + ei_abi_version: u8; + padding: u8[7] nul; + e_type: u16 hex; + e_machine: u16 hex; + e_version: u32; + elf64: struct elf64; // fspec needs union to parse ei_class != 2 type + e_flags: u32 hex; + e_ehsz: u16; + e_phentsize: u16; + e_phnum: u16; + e_shentsize: u16; + e_shnum: u16; + e_shstrndx: u16; +}; -- cgit v1.2.3