mirror of
https://github.com/Ed94/raddebugger.git
synced 2026-11-15 02:30:11 -08:00
linux_demon: checkpoint
This commit is contained in:
1 parent
338a8226a1
commit
94392b4975
7 files changed
+305
-346
No files matched your search
@@ -213,6 +213,20 @@ elf_sym_size_from_class(ELF_Class elf_class)
|
||||
return result;
|
||||
}
|
||||
|
||||
internal U64
|
||||
elf_auxv_size_from_class(ELF_Class elf_class)
|
||||
{
|
||||
U64 result = 0;
|
||||
switch((ELF_ClassEnum)elf_class)
|
||||
{
|
||||
case ELF_Class_COUNT:
|
||||
case ELF_Class_None:{}break;
|
||||
case ELF_Class_32:{result = sizeof(ELF_Auxv32);}break;
|
||||
case ELF_Class_64:{result = sizeof(ELF_Auxv64);}break;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Optional Class Conversion Readers
|
||||
|
||||
@@ -335,3 +349,27 @@ elf_sym64_from_class_data(ELF_Class elf_class, String8 data)
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
internal ELF_Auxv64
|
||||
elf_auxv64_from_class_data(ELF_Class elf_class, String8 data)
|
||||
{
|
||||
ELF_Auxv64 result = {0};
|
||||
U64 needed_size = elf_auxv_size_from_class(elf_class);
|
||||
if(data.size >= needed_size)
|
||||
{
|
||||
switch(elf_class)
|
||||
{
|
||||
default:{}break;
|
||||
case ELF_Class_32:
|
||||
{
|
||||
ELF_Auxv32 result32 = *(ELF_Auxv32 *)data.str;
|
||||
result = elf_auxv64_from_auxv32(result32);
|
||||
}break;
|
||||
case ELF_Class_64:
|
||||
{
|
||||
result = *(ELF_Auxv64 *)data.str;
|
||||
}break;
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
@@ -880,6 +880,7 @@ internal U64 elf_phdr_size_from_class(ELF_Class elf_class);
|
||||
internal U64 elf_shdr_size_from_class(ELF_Class elf_class);
|
||||
internal U64 elf_dyn_size_from_class(ELF_Class elf_class);
|
||||
internal U64 elf_sym_size_from_class(ELF_Class elf_class);
|
||||
internal U64 elf_auxv_size_from_class(ELF_Class elf_class);
|
||||
|
||||
////////////////////////////////
|
||||
//~ rjf: Optional Class Conversion Readers
|
||||
@@ -889,5 +890,6 @@ internal ELF_Phdr64 elf_phdr64_from_class_data(ELF_Class elf_class, String8 data
|
||||
internal ELF_Shdr64 elf_shdr64_from_class_data(ELF_Class elf_class, String8 data);
|
||||
internal ELF_Dyn64 elf_dyn64_from_class_data(ELF_Class elf_class, String8 data);
|
||||
internal ELF_Sym64 elf_sym64_from_class_data(ELF_Class elf_class, String8 data);
|
||||
internal ELF_Auxv64 elf_auxv64_from_class_data(ELF_Class elf_class, String8 data);
|
||||
|
||||
#endif // ELF_H
|
||||
Reference in new issue
Block a user