Skip to content

Commit a2274c7

Browse files
committed
cleaner sysinfo_load logic
1 parent ae3de25 commit a2274c7

File tree

1 file changed

+32
-27
lines changed

1 file changed

+32
-27
lines changed

panda/plugins/syscalls2/syscalls2.cpp

Lines changed: 32 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -871,37 +871,42 @@ int64_t get_return_s64_generic(CPUState *cpu, syscall_ctx *ctx, uint32_t argnum)
871871

872872
void sysinfo_load(int profile){
873873
const gchar *arch = "unknown";
874-
#if defined(TARGET_I386) && !defined(TARGET_X86_64)
875-
arch = "x86";
876-
#elif defined(TARGET_X86_64)
877-
if (profile == PROFILE_WINDOWS_7_X64 || profile == PROFILE_LINUX_X64
878-
|| profile == PROFILE_FREEBSD_X64){
879-
arch = "x64";
880-
} else if (profile == PROFILE_LINUX_X86 || profile == PROFILE_WINDOWS_2000_X86
881-
|| profile == PROFILE_WINDOWS_XPSP2_X86 || profile == PROFILE_WINDOWS_XPSP3_X86
882-
|| profile == PROFILE_WINDOWS_7_X86) {
874+
#if defined(TARGET_I386)
883875
arch = "x86";
884-
}
885-
#elif defined(TARGET_ARM) &&!defined(TARGET_AARCH64)
886-
arch = "arm";
887-
#elif defined(TARGET_ARM) &&defined(TARGET_AARCH64)
888-
if (profile == PROFILE_LINUX_AARCH64) {
889-
arch = "arm64";
890-
} else if (profile == PROFILE_LINUX_ARM){
876+
877+
// x86_64 logic
878+
#if defined(TARGET_X86_64)
879+
if (profile == PROFILE_WINDOWS_7_X64 || profile == PROFILE_LINUX_X64
880+
|| profile == PROFILE_FREEBSD_X64){
881+
arch = "x64";
882+
} else if (profile == PROFILE_LINUX_X86 || profile == PROFILE_WINDOWS_2000_X86
883+
|| profile == PROFILE_WINDOWS_XPSP2_X86 || profile == PROFILE_WINDOWS_XPSP3_X86
884+
|| profile == PROFILE_WINDOWS_7_X86) {
885+
arch = "x86";
886+
}
887+
#endif
888+
889+
#elif defined(TARGET_ARM)
891890
arch = "arm";
892-
}
893-
#elif defined(TARGET_MIPS) && defined(TARGET_MIPS64)
894-
if (profile == PROFILE_LINUX_MIPS64) {
895-
arch = "mips64";
896-
}else if (profile == PROFILE_LINUX_MIPS32){
897-
arch = "mips";
898-
}else if (profile == PROFILE_LINUX_MIPS64N32){
899-
arch = "mips64n32";
900-
}else{
901-
assert("invalid profile");
902-
}
891+
892+
// aarch64 logic
893+
#if defined(TARGET_AARCH64)
894+
if (profile == PROFILE_LINUX_AARCH64) {
895+
arch = "arm64";
896+
}
897+
#endif
898+
903899
#elif defined(TARGET_MIPS)
904900
arch = "mips";
901+
902+
// mips64 logic
903+
#if defined(TARGET_MIPS64)
904+
if (profile == PROFILE_LINUX_MIPS64) {
905+
arch = "mips64";
906+
}else if (profile == PROFILE_LINUX_MIPS64N32){
907+
arch = "mips64n32";
908+
}
909+
#endif
905910
#else
906911
// will fail on dlopen because dso file won't exist
907912
arch = "unknown";

0 commit comments

Comments
 (0)