added ELF header and parser

This commit is contained in:
Nikita Smith
2025-02-25 14:41:15 -08:00
parent 87ae363292
commit b74c304f39
4 changed files with 1254 additions and 0 deletions
+29
View File
@@ -0,0 +1,29 @@
// Copyright (c) 2025 Epic Games Tools
// Licensed under the MIT license (https://opensource.org/license/mit/)
#ifndef ELF_PARSE_H
#define ELF_PARSE_H
////////////////////////////////
typedef struct ELF_BinInfo
{
ELF_Hdr64 hdr;
Rng1U64 sh_name_range;
} ELF_BinInfo;
typedef struct ELF_Shdr64Array
{
U64 count;
ELF_Shdr64 *v;
} ELF_Shdr64Array;
////////////////////////////////
internal B32 elf_check_magic(String8 data);
internal ELF_BinInfo elf_bin_from_data(String8 data);
internal ELF_Shdr64Array elf_shdr64_array_from_bin(Arena *arena, String8 raw_data, ELF_Hdr64 *hdr);
internal String8 elf_name_from_shdr64(String8 raw_data, ELF_Hdr64 *hdr, Rng1U64 sh_name_range, ELF_Shdr64 *shdr);
#endif // ELF_PARSE_H