diff --git a/src/raddbg/raddbg_main.cpp b/src/raddbg/raddbg_main.cpp index 2295916b..4e72888d 100644 --- a/src/raddbg/raddbg_main.cpp +++ b/src/raddbg/raddbg_main.cpp @@ -27,8 +27,6 @@ #include "msf/msf.h" #include "pdb/pdb.h" #include "pdb/pdb_stringize.h" -#include "raddbgi_from_pdb/raddbgi_coff_conversion.h" -#include "raddbgi_from_pdb/raddbgi_codeview_conversion.h" #include "raddbgi_from_pdb/raddbgi_from_pdb.h" #include "regs/regs.h" #include "regs/raddbgi/regs_raddbgi.h" @@ -66,8 +64,6 @@ #include "msf/msf.c" #include "pdb/pdb.c" #include "pdb/pdb_stringize.c" -#include "raddbgi_from_pdb/raddbgi_coff_conversion.c" -#include "raddbgi_from_pdb/raddbgi_codeview_conversion.c" #include "raddbgi_from_pdb/raddbgi_from_pdb.c" #include "regs/regs.c" #include "regs/raddbgi/regs_raddbgi.c" diff --git a/src/raddbgi_from_pdb/raddbgi_codeview_conversion.c b/src/raddbgi_from_pdb/raddbgi_codeview_conversion.c deleted file mode 100644 index fc920d85..00000000 --- a/src/raddbgi_from_pdb/raddbgi_codeview_conversion.c +++ /dev/null @@ -1,124 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ CodeView Conversion Functions - -internal RADDBGI_Arch -raddbgi_arch_from_cv_arch(CV_Arch cv_arch){ - RADDBGI_Arch result = 0; - switch (cv_arch){ - case CV_Arch_8086: result = RADDBGI_Arch_X86; break; - case CV_Arch_X64: result = RADDBGI_Arch_X64; break; - - //case CV_Arch_8080: break; - //case CV_Arch_80286: break; - //case CV_Arch_80386: break; - //case CV_Arch_80486: break; - //case CV_Arch_PENTIUM: break; - //case CV_Arch_PENTIUMII: break; - //case CV_Arch_PENTIUMIII: break; - //case CV_Arch_MIPS: break; - //case CV_Arch_MIPS16: break; - //case CV_Arch_MIPS32: break; - //case CV_Arch_MIPS64: break; - //case CV_Arch_MIPSI: break; - //case CV_Arch_MIPSII: break; - //case CV_Arch_MIPSIII: break; - //case CV_Arch_MIPSIV: break; - //case CV_Arch_MIPSV: break; - //case CV_Arch_M68000: break; - //case CV_Arch_M68010: break; - //case CV_Arch_M68020: break; - //case CV_Arch_M68030: break; - //case CV_Arch_M68040: break; - //case CV_Arch_ALPHA: break; - //case CV_Arch_ALPHA_21164: break; - //case CV_Arch_ALPHA_21164A: break; - //case CV_Arch_ALPHA_21264: break; - //case CV_Arch_ALPHA_21364: break; - //case CV_Arch_PPC601: break; - //case CV_Arch_PPC603: break; - //case CV_Arch_PPC604: break; - //case CV_Arch_PPC620: break; - //case CV_Arch_PPCFP: break; - //case CV_Arch_PPCBE: break; - //case CV_Arch_SH3: break; - //case CV_Arch_SH3E: break; - //case CV_Arch_SH3DSP: break; - //case CV_Arch_SH4: break; - //case CV_Arch_SHMEDIA: break; - //case CV_Arch_ARM3: break; - //case CV_Arch_ARM4: break; - //case CV_Arch_ARM4T: break; - //case CV_Arch_ARM5: break; - //case CV_Arch_ARM5T: break; - //case CV_Arch_ARM6: break; - //case CV_Arch_ARM_XMAC: break; - //case CV_Arch_ARM_WMMX: break; - //case CV_Arch_ARM7: break; - //case CV_Arch_OMNI: break; - //case CV_Arch_IA64_1: break; - //case CV_Arch_IA64_2: break; - //case CV_Arch_CEE: break; - //case CV_Arch_AM33: break; - //case CV_Arch_M32R: break; - //case CV_Arch_TRICORE: break; - //case CV_Arch_EBC: break; - //case CV_Arch_THUMB: break; - //case CV_Arch_ARMNT: break; - //case CV_Arch_ARM64: break; - //case CV_Arch_D3D11_SHADER: break; - } - return(result); -} - -internal RADDBGI_RegisterCode -raddbgi_reg_code_from_cv_reg_code(RADDBGI_Arch arch, CV_Reg reg_code){ - RADDBGI_RegisterCode result = 0; - switch (arch){ - case RADDBGI_Arch_X86: - { - switch (reg_code){ -#define X(CVN,C,RDN,BP,BZ) case C: result = RADDBGI_RegisterCode_X86_##RDN; break; - CV_Reg_X86_XList(X) -#undef X - } - }break; - - case RADDBGI_Arch_X64: - { - switch (reg_code){ -#define X(CVN,C,RDN,BP,BZ) case C: result = RADDBGI_RegisterCode_X64_##RDN; break; - CV_Reg_X64_XList(X) -#undef X - } - }break; - } - return(result); -} - -internal RADDBGI_Language -raddbgi_language_from_cv_language(CV_Language cv_language){ - RADDBGI_Language result = 0; - switch (cv_language){ - case CV_Language_C: result = RADDBGI_Language_C; break; - case CV_Language_CXX: result = RADDBGI_Language_CPlusPlus; break; - //case CV_Language_FORTRAN: result = ; break; - //case CV_Language_MASM: result = ; break; - //case CV_Language_PASCAL: result = ; break; - //case CV_Language_BASIC: result = ; break; - //case CV_Language_COBOL: result = ; break; - //case CV_Language_LINK: result = ; break; - //case CV_Language_CVTRES: result = ; break; - //case CV_Language_CVTPGD: result = ; break; - //case CV_Language_CSHARP: result = ; break; - //case CV_Language_VB: result = ; break; - //case CV_Language_ILASM: result = ; break; - //case CV_Language_JAVA: result = ; break; - //case CV_Language_JSCRIPT: result = ; break; - //case CV_Language_MSIL: result = ; break; - //case CV_Language_HLSL: result = ; break; - } - return(result); -} diff --git a/src/raddbgi_from_pdb/raddbgi_codeview_conversion.h b/src/raddbgi_from_pdb/raddbgi_codeview_conversion.h deleted file mode 100644 index 318e9134..00000000 --- a/src/raddbgi_from_pdb/raddbgi_codeview_conversion.h +++ /dev/null @@ -1,14 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef RADDBGI_CODEVIEW_CONVERSION_H -#define RADDBGI_CODEVIEW_CONVERSION_H - -//////////////////////////////// -//~ CodeView Conversion Functions - -internal RADDBGI_Arch raddbgi_arch_from_cv_arch(CV_Arch arch); -internal RADDBGI_RegisterCode raddbgi_reg_code_from_cv_reg_code(RADDBGI_Arch arch, CV_Reg reg_code); -internal RADDBGI_Language raddbgi_language_from_cv_language(CV_Language language); - -#endif //RADDBGI_CODEVIEW_CONVERSION_H diff --git a/src/raddbgi_from_pdb/raddbgi_coff_conversion.c b/src/raddbgi_from_pdb/raddbgi_coff_conversion.c deleted file mode 100644 index b04b1118..00000000 --- a/src/raddbgi_from_pdb/raddbgi_coff_conversion.c +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -//////////////////////////////// -//~ COFF Conversion Functions - -internal RADDBGI_BinarySectionFlags -raddbgi_binary_section_flags_from_coff_section_flags(COFF_SectionFlags flags){ - RADDBGI_BinarySectionFlags result = 0; - - if (flags & COFF_SectionFlag_MEM_READ){ - result |= RADDBGI_BinarySectionFlag_Read; - } - if (flags & COFF_SectionFlag_MEM_WRITE){ - result |= RADDBGI_BinarySectionFlag_Write; - } - if (flags & COFF_SectionFlag_MEM_EXECUTE){ - result |= RADDBGI_BinarySectionFlag_Execute; - } - - return(result); -} diff --git a/src/raddbgi_from_pdb/raddbgi_coff_conversion.h b/src/raddbgi_from_pdb/raddbgi_coff_conversion.h deleted file mode 100644 index d25bf34f..00000000 --- a/src/raddbgi_from_pdb/raddbgi_coff_conversion.h +++ /dev/null @@ -1,12 +0,0 @@ -// Copyright (c) 2024 Epic Games Tools -// Licensed under the MIT license (https://opensource.org/license/mit/) - -#ifndef RADDBGI_COFF_CONVERSION_H -#define RADDBGI_COFF_CONVERSION_H - -//////////////////////////////// -//~ COFF Conversion Functions - -internal RADDBGI_BinarySectionFlags raddbgi_binary_section_flags_from_coff_section_flags(COFF_SectionFlags flags); - -#endif //RADDBGI_COFF_CONVERSION_H diff --git a/src/raddbgi_from_pdb/raddbgi_from_pdb.c b/src/raddbgi_from_pdb/raddbgi_from_pdb.c index 82fc6b1c..bcfeecbb 100644 --- a/src/raddbgi_from_pdb/raddbgi_from_pdb.c +++ b/src/raddbgi_from_pdb/raddbgi_from_pdb.c @@ -148,6 +148,156 @@ p2r_params_from_cmd_line(Arena *arena, CmdLine *cmdline) return(result); } +//////////////////////////////// +//~ rjf: COFF <-> RADDBGI Canonical Conversions + +internal RADDBGI_BinarySectionFlags +raddbgi_binary_section_flags_from_coff_section_flags(COFF_SectionFlags flags) +{ + RADDBGI_BinarySectionFlags result = 0; + if(flags & COFF_SectionFlag_MEM_READ) + { + result |= RADDBGI_BinarySectionFlag_Read; + } + if(flags & COFF_SectionFlag_MEM_WRITE) + { + result |= RADDBGI_BinarySectionFlag_Write; + } + if(flags & COFF_SectionFlag_MEM_EXECUTE) + { + result |= RADDBGI_BinarySectionFlag_Execute; + } + return(result); +} + +//////////////////////////////// +//~ rjf: CodeView <-> RADDBGI Canonical Conversions + +internal RADDBGI_Arch +raddbgi_arch_from_cv_arch(CV_Arch cv_arch) +{ + RADDBGI_Arch result = 0; + switch(cv_arch) + { + case CV_Arch_8086: result = RADDBGI_Arch_X86; break; + case CV_Arch_X64: result = RADDBGI_Arch_X64; break; + //case CV_Arch_8080: break; + //case CV_Arch_80286: break; + //case CV_Arch_80386: break; + //case CV_Arch_80486: break; + //case CV_Arch_PENTIUM: break; + //case CV_Arch_PENTIUMII: break; + //case CV_Arch_PENTIUMIII: break; + //case CV_Arch_MIPS: break; + //case CV_Arch_MIPS16: break; + //case CV_Arch_MIPS32: break; + //case CV_Arch_MIPS64: break; + //case CV_Arch_MIPSI: break; + //case CV_Arch_MIPSII: break; + //case CV_Arch_MIPSIII: break; + //case CV_Arch_MIPSIV: break; + //case CV_Arch_MIPSV: break; + //case CV_Arch_M68000: break; + //case CV_Arch_M68010: break; + //case CV_Arch_M68020: break; + //case CV_Arch_M68030: break; + //case CV_Arch_M68040: break; + //case CV_Arch_ALPHA: break; + //case CV_Arch_ALPHA_21164: break; + //case CV_Arch_ALPHA_21164A: break; + //case CV_Arch_ALPHA_21264: break; + //case CV_Arch_ALPHA_21364: break; + //case CV_Arch_PPC601: break; + //case CV_Arch_PPC603: break; + //case CV_Arch_PPC604: break; + //case CV_Arch_PPC620: break; + //case CV_Arch_PPCFP: break; + //case CV_Arch_PPCBE: break; + //case CV_Arch_SH3: break; + //case CV_Arch_SH3E: break; + //case CV_Arch_SH3DSP: break; + //case CV_Arch_SH4: break; + //case CV_Arch_SHMEDIA: break; + //case CV_Arch_ARM3: break; + //case CV_Arch_ARM4: break; + //case CV_Arch_ARM4T: break; + //case CV_Arch_ARM5: break; + //case CV_Arch_ARM5T: break; + //case CV_Arch_ARM6: break; + //case CV_Arch_ARM_XMAC: break; + //case CV_Arch_ARM_WMMX: break; + //case CV_Arch_ARM7: break; + //case CV_Arch_OMNI: break; + //case CV_Arch_IA64_1: break; + //case CV_Arch_IA64_2: break; + //case CV_Arch_CEE: break; + //case CV_Arch_AM33: break; + //case CV_Arch_M32R: break; + //case CV_Arch_TRICORE: break; + //case CV_Arch_EBC: break; + //case CV_Arch_THUMB: break; + //case CV_Arch_ARMNT: break; + //case CV_Arch_ARM64: break; + //case CV_Arch_D3D11_SHADER: break; + } + return(result); +} + +internal RADDBGI_RegisterCode +raddbgi_reg_code_from_cv_reg_code(RADDBGI_Arch arch, CV_Reg reg_code) +{ + RADDBGI_RegisterCode result = 0; + switch(arch) + { + case RADDBGI_Arch_X86: + { + switch(reg_code) + { +#define X(CVN,C,RDN,BP,BZ) case C: result = RADDBGI_RegisterCode_X86_##RDN; break; + CV_Reg_X86_XList(X) +#undef X + } + }break; + case RADDBGI_Arch_X64: + { + switch(reg_code) + { +#define X(CVN,C,RDN,BP,BZ) case C: result = RADDBGI_RegisterCode_X64_##RDN; break; + CV_Reg_X64_XList(X) +#undef X + } + }break; + } + return(result); +} + +internal RADDBGI_Language +raddbgi_language_from_cv_language(CV_Language cv_language) +{ + RADDBGI_Language result = 0; + switch(cv_language) + { + case CV_Language_C: result = RADDBGI_Language_C; break; + case CV_Language_CXX: result = RADDBGI_Language_CPlusPlus; break; + //case CV_Language_FORTRAN: result = ; break; + //case CV_Language_MASM: result = ; break; + //case CV_Language_PASCAL: result = ; break; + //case CV_Language_BASIC: result = ; break; + //case CV_Language_COBOL: result = ; break; + //case CV_Language_LINK: result = ; break; + //case CV_Language_CVTRES: result = ; break; + //case CV_Language_CVTPGD: result = ; break; + //case CV_Language_CSHARP: result = ; break; + //case CV_Language_VB: result = ; break; + //case CV_Language_ILASM: result = ; break; + //case CV_Language_JAVA: result = ; break; + //case CV_Language_JSCRIPT: result = ; break; + //case CV_Language_MSIL: result = ; break; + //case CV_Language_HLSL: result = ; break; + } + return(result); +} + //////////////////////////////// //~ rjf: Conversion Implementation Helpers diff --git a/src/raddbgi_from_pdb/raddbgi_from_pdb.h b/src/raddbgi_from_pdb/raddbgi_from_pdb.h index eb96d79d..6a2b4050 100644 --- a/src/raddbgi_from_pdb/raddbgi_from_pdb.h +++ b/src/raddbgi_from_pdb/raddbgi_from_pdb.h @@ -211,6 +211,18 @@ struct P2R_Out internal P2R_Params *p2r_params_from_cmd_line(Arena *arena, CmdLine *cmdline); +//////////////////////////////// +//~ rjf: COFF => RADDBGI Canonical Conversions + +internal RADDBGI_BinarySectionFlags raddbgi_binary_section_flags_from_coff_section_flags(COFF_SectionFlags flags); + +//////////////////////////////// +//~ rjf: CodeView => RADDBGI Canonical Conversions + +internal RADDBGI_Arch raddbgi_arch_from_cv_arch(CV_Arch arch); +internal RADDBGI_RegisterCode raddbgi_reg_code_from_cv_reg_code(RADDBGI_Arch arch, CV_Reg reg_code); +internal RADDBGI_Language raddbgi_language_from_cv_language(CV_Language language); + //////////////////////////////// //~ rjf: Conversion Implementation Helpers diff --git a/src/raddbgi_from_pdb/raddbgi_from_pdb_main.c b/src/raddbgi_from_pdb/raddbgi_from_pdb_main.c index 06aa1bbe..5b2891d8 100644 --- a/src/raddbgi_from_pdb/raddbgi_from_pdb_main.c +++ b/src/raddbgi_from_pdb/raddbgi_from_pdb_main.c @@ -13,8 +13,6 @@ #include "pdb/pdb.h" #include "pdb/pdb_stringize.h" #include "raddbgi_cons_local/raddbgi_cons_local.h" -#include "raddbgi_coff_conversion.h" -#include "raddbgi_codeview_conversion.h" #include "raddbgi_from_pdb.h" @@ -27,8 +25,6 @@ #include "pdb/pdb.c" #include "pdb/pdb_stringize.c" #include "raddbgi_cons_local/raddbgi_cons_local.c" -#include "raddbgi_coff_conversion.c" -#include "raddbgi_codeview_conversion.c" #include "raddbgi_from_pdb.c"