3#ifndef SYMS_ELF_PARSER_C
4#define SYMS_ELF_PARSER_C
144 img.is_32bit = is_32bit;
147 img.sh_name_low_offset = sh_name_low_offset;
148 img.sh_name_high_offset = sh_name_high_offset;
149 img.base_address = base_address;
150 img.entry_point = entry_point;
167 SYMS_U64 section_count =
img.ehdr.e_shnum ? (
img.ehdr.e_shnum-1) : 0;
272 stream.next_in = (
const Bytef*)compressed;
279 if (stream.avail_out == 0)
284 if (stream.avail_in == 0)
336 result.
count = section_count;
344 void *base =
file.str;
364 result.
count = segment_count;
460 list.node_count += 1;
522 void *base = (
void *)data.
str;
624 if(
vna.vna_other == version)
632 if(
vna.vna_next == 0)
662 if(vna_name.
size > 0)
688 in = in->
next, idx += 1)
690 result.
imports[idx] = in->data;
733 void *base = (
void*)data.
str;
OODEFFUNC typedef const char * file
Definition oodle2.h:678
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
Definition syms_base.h:402
Definition syms_elf_parser.h:68
SYMS_ElfImgHeader header
Definition syms_elf_parser.h:70
SYMS_ElfSectionArray sections
Definition syms_elf_parser.h:71
Definition syms_elf.h:303
Definition syms_elf.h:310
Definition syms_elf_parser.h:48
SYMS_U32 external_file_checksum
Definition syms_elf_parser.h:50
SYMS_String8 path
Definition syms_elf_parser.h:49
Definition syms_elf.h:245
Definition syms_elf.h:233
Definition syms_elf.h:262
Definition syms_elf.h:252
Definition syms_elf.h:272
Definition syms_elf_parser.h:58
Definition syms_elf.h:111
Definition syms_elf_parser.h:34
SYMS_U64 count
Definition syms_elf_parser.h:35
SYMS_ElfSection * v
Definition syms_elf_parser.h:36
Definition syms_elf_parser.h:25
SYMS_String8 name
Definition syms_elf_parser.h:29
SYMS_U64Range file_range
Definition syms_elf_parser.h:28
SYMS_U64Range virtual_range
Definition syms_elf_parser.h:27
SYMS_ElfShdr64 header
Definition syms_elf_parser.h:26
Definition syms_elf_parser.h:41
SYMS_U64 count
Definition syms_elf_parser.h:42
SYMS_ElfPhdr64 * v
Definition syms_elf_parser.h:43
SYMS_U64 sh_flags
Definition syms_elf.h:71
SYMS_U64 sh_size
Definition syms_elf.h:74
SYMS_U32 sh_name
Definition syms_elf.h:69
SYMS_U32 sh_type
Definition syms_elf.h:70
SYMS_U64 sh_addr
Definition syms_elf.h:72
SYMS_U64 sh_offset
Definition syms_elf.h:73
Definition syms_elf.h:170
Definition syms_elf.h:180
Definition syms_debug_info.h:69
SYMS_U64 count
Definition syms_debug_info.h:71
Definition syms_debug_info.h:59
struct SYMS_ExportNode * next
Definition syms_debug_info.h:60
SYMS_Export data
Definition syms_debug_info.h:61
Definition syms_debug_info.h:45
SYMS_String8 name
Definition syms_debug_info.h:46
Definition syms_debug_info.h:119
Definition syms_debug_info.h:114
SYMS_ExtFile ext_file
Definition syms_debug_info.h:116
SYMS_String8 file_name
Definition syms_debug_info.h:110
SYMS_ExtMatchKey match_key
Definition syms_debug_info.h:111
SYMS_U8 v[16]
Definition syms_debug_info.h:106
Definition syms_debug_info.h:64
SYMS_Import * imports
Definition syms_debug_info.h:65
SYMS_U64 count
Definition syms_debug_info.h:66
Definition syms_debug_info.h:54
SYMS_Import data
Definition syms_debug_info.h:56
struct SYMS_ImportNode * next
Definition syms_debug_info.h:55
Definition syms_debug_info.h:39
Definition syms_debug_info.h:21
SYMS_U64 count
Definition syms_debug_info.h:23
Definition syms_debug_info.h:15
SYMS_U64Range vrange
Definition syms_debug_info.h:17
SYMS_String8 name
Definition syms_debug_info.h:16
SYMS_U64Range frange
Definition syms_debug_info.h:18
Definition syms_base.h:306
Definition syms_base.h:296
SYMS_U8 * str
Definition syms_base.h:297
SYMS_U64 size
Definition syms_base.h:298
Definition syms_base.h:325
Definition syms_base.h:264
SYMS_U64 max
Definition syms_base.h:266
SYMS_U64 min
Definition syms_base.h:265
SYMS_API SYMS_U64 syms_u64_range_size(SYMS_U64Range range)
Definition syms_base.c:31
SYMS_API SYMS_U64 syms_based_range_read(void *base, SYMS_U64Range range, SYMS_U64 offset, SYMS_U64 out_size, void *out)
Definition syms_base.c:753
SYMS_API SYMS_String8 syms_string_list_join(SYMS_Arena *arena, SYMS_String8List *list, SYMS_StringJoin *join_ptr)
Definition syms_base.c:315
SYMS_API SYMS_ArenaTemp syms_get_scratch(SYMS_Arena **conflicts, SYMS_U64 conflict_count)
Definition syms_base.c:694
SYMS_API SYMS_B32 syms_string_match(SYMS_String8 a, SYMS_String8 b, SYMS_StringMatchFlags flags)
Definition syms_base.c:210
SYMS_API void * syms_based_range_ptr(void *base, SYMS_U64Range range, SYMS_U64 offset)
Definition syms_base.c:744
SYMS_API SYMS_U64Range syms_make_u64_range(SYMS_U64 min, SYMS_U64 max)
Definition syms_base.c:18
SYMS_API SYMS_String8 syms_based_range_read_string(void *base, SYMS_U64Range range, SYMS_U64 offset)
Definition syms_base.c:823
SYMS_API void syms_arena_temp_end(SYMS_ArenaTemp temp)
Definition syms_base.c:689
SYMS_API SYMS_String8 syms_str8(SYMS_U8 *str, SYMS_U64 size)
Definition syms_base.c:169
SYMS_API SYMS_String8 syms_push_string_copy(SYMS_Arena *arena, SYMS_String8 string)
Definition syms_base.c:353
SYMS_API void syms_string_list_push(SYMS_Arena *arena, SYMS_String8List *list, SYMS_String8 string)
Definition syms_base.c:282
SYMS_API SYMS_ArenaTemp syms_arena_temp_begin(SYMS_Arena *arena)
Definition syms_base.c:682
#define syms_true
Definition syms_base.h:105
#define SYMS_U16_MAX
Definition syms_base.h:174
#define syms_based_range_read_struct(b, r, o, p)
Definition syms_base.h:593
#define SYMS_U32_MAX
Definition syms_base.h:175
#define syms_push_array(a, T, c)
Definition syms_base.h:561
#define syms_memzero_struct(s)
Definition syms_base.h:161
#define SYMS_ClampTop(a, b)
Definition syms_base.h:182
#define syms_false
Definition syms_base.h:104
#define SYMS_API
Definition syms_base.h:29
#define SYMS_ASSERT(x)
Definition syms_base.h:125
SYMS_S32 SYMS_B32
Definition syms_base.h:99
#define syms_push_array_zero(a, T, c)
Definition syms_base.h:564
#define SYMS_U64_MAX
Definition syms_base.h:176
#define syms_str8_lit(s)
Definition syms_base.h:483
#define SYMS_QueuePush(f, l, n)
Definition syms_base.h:220
#define syms_release_scratch
Definition syms_base.h:567
uint32_t SYMS_U32
Definition syms_crt_overrides.h:38
uint64_t SYMS_U64
Definition syms_crt_overrides.h:39
#define syms_memmove
Definition syms_crt_overrides.h:65
uint16_t SYMS_U16
Definition syms_crt_overrides.h:37
#define syms_memset
Definition syms_crt_overrides.h:66
uint8_t SYMS_U8
Definition syms_crt_overrides.h:36
#define SYMS_Arena
Definition syms_default_arena.h:61
SYMS_API SYMS_ElfPhdr64 syms_elf_phdr64_from_phdr32(SYMS_ElfPhdr32 h32)
Definition syms_elf.c:53
SYMS_API SYMS_ElfShdr64 syms_elf_shdr64_from_shdr32(SYMS_ElfShdr32 h32)
Definition syms_elf.c:36
SYMS_API SYMS_ElfSym64 syms_elf_sym64_from_sym32(SYMS_ElfSym32 sym32)
Definition syms_elf.c:76
SYMS_API SYMS_ElfEhdr64 syms_elf_ehdr64_from_ehdr32(SYMS_ElfEhdr32 h32)
Definition syms_elf.c:15
@ SYMS_ElfCompressType_ZLib
Definition syms_elf.h:292
@ SYMS_ElfCompressType_None
Definition syms_elf.h:291
#define SYMS_ELF_EXTERNAL_VERSYM_MASK
Definition syms_elf.h:229
#define SYMS_ELF_ST_BIND(x)
Definition syms_elf.h:190
#define SYMS_ELF_EXTERNAL_VERSYM_HIDDEN
Definition syms_elf.h:228
@ SYMS_ElfIdentifier_MAG3
Definition syms_elf.h:19
@ SYMS_ElfIdentifier_MAG1
Definition syms_elf.h:17
@ SYMS_ElfIdentifier_MAG0
Definition syms_elf.h:16
@ SYMS_ElfIdentifier_MAG2
Definition syms_elf.h:18
@ SYMS_ElfIdentifier_CLASS
Definition syms_elf.h:20
@ SYMS_ElfIdentifier_NIDENT
Definition syms_elf.h:25
SYMS_API SYMS_SecInfo syms_elf_section_info_from_elf_section(SYMS_ElfSection elf_section)
Definition syms_elf_parser.c:406
SYMS_API SYMS_ImportArray syms_elf_imports_from_bin(SYMS_Arena *arena, SYMS_String8 data, SYMS_ElfBinAccel *bin)
Definition syms_elf_parser.c:517
SYMS_API SYMS_ElfExtDebugRef syms_elf_ext_debug_ref_from_elf_section_array(SYMS_String8 file, SYMS_ElfSectionArray sections)
Definition syms_elf_parser.c:371
SYMS_API SYMS_ElfBinAccel * syms_elf_bin_accel_from_file(SYMS_Arena *arena, SYMS_String8 data, SYMS_ElfFileAccel *file_accel)
Definition syms_elf_parser.c:438
SYMS_API SYMS_String8 syms_elf_sec_name_from_elf_section(SYMS_ElfSection elf_section)
Definition syms_elf_parser.c:415
SYMS_API SYMS_ExtFileList syms_elf_ext_file_list_from_bin(SYMS_Arena *arena, SYMS_String8 file, SYMS_ElfBinAccel *bin_accel)
Definition syms_elf_parser.c:449
SYMS_API SYMS_U64 syms_elf_default_vbase_from_bin(SYMS_ElfBinAccel *bin)
Definition syms_elf_parser.c:479
SYMS_API SYMS_ElfSectionArray syms_elf_section_array_from_img_header(SYMS_Arena *arena, SYMS_String8 file, SYMS_ElfImgHeader img)
Definition syms_elf_parser.c:157
SYMS_API SYMS_ElfSection * syms_elf_sec_from_bin_name__unstable(SYMS_ElfBinAccel *bin, SYMS_String8 name)
Definition syms_elf_parser.c:500
SYMS_API SYMS_ExportArray syms_elf_exports_from_bin(SYMS_Arena *arena, SYMS_String8 data, SYMS_ElfBinAccel *bin)
Definition syms_elf_parser.c:700
SYMS_API SYMS_ElfImgHeader syms_elf_img_header_from_file(SYMS_String8 file)
Definition syms_elf_parser.c:12
SYMS_API SYMS_U64 syms_elf_entry_point_voff_from_bin(SYMS_ElfBinAccel *bin)
Definition syms_elf_parser.c:485
SYMS_API SYMS_Arch syms_elf_arch_from_bin(SYMS_ElfBinAccel *bin)
Definition syms_elf_parser.c:491
SYMS_API SYMS_ElfSegmentArray syms_elf_segment_array_from_img_header(SYMS_Arena *arena, SYMS_String8 file, SYMS_ElfImgHeader img)
Definition syms_elf_parser.c:342
SYMS_API SYMS_SecInfoArray syms_elf_sec_info_array_from_bin(SYMS_Arena *arena, SYMS_String8 data, SYMS_ElfBinAccel *bin)
Definition syms_elf_parser.c:466
SYMS_API SYMS_ElfFileAccel * syms_elf_file_accel_from_data(SYMS_Arena *arena, SYMS_String8 string)
Definition syms_elf_parser.c:424