From 6c46e3d9b15be3e5c6227bb97fd542a4100ec4d2 Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Fri, 11 Apr 2025 18:26:51 +0800 Subject: [WOW64] Splitted freq and cleanup functions from x64emu (#2521) --- src/include/cleanup.h | 13 +++++++++++++ src/include/freq.h | 9 +++++++++ src/include/x64emu.h | 7 ------- 3 files changed, 22 insertions(+), 7 deletions(-) create mode 100644 src/include/cleanup.h create mode 100644 src/include/freq.h (limited to 'src/include') diff --git a/src/include/cleanup.h b/src/include/cleanup.h new file mode 100644 index 00000000..99c13b36 --- /dev/null +++ b/src/include/cleanup.h @@ -0,0 +1,13 @@ +#ifndef __CLEANUP_H_ +#define __CLEANUP_H_ + +#include "elfloader.h" + +typedef struct x64emu_s x64emu_t; + +void AddCleanup(x64emu_t *emu, void *p); +void AddCleanup1Arg(x64emu_t *emu, void *p, void* a, elfheader_t* h); +void CallCleanup(x64emu_t *emu, elfheader_t* h); +void CallAllCleanup(x64emu_t *emu); + +#endif // __CLEANUP_H_ \ No newline at end of file diff --git a/src/include/freq.h b/src/include/freq.h new file mode 100644 index 00000000..2f3a2427 --- /dev/null +++ b/src/include/freq.h @@ -0,0 +1,9 @@ +#ifndef __FREQ_H_ +#define __FREQ_H_ + +typedef struct x64emu_s x64emu_t; + +uint64_t ReadTSC(x64emu_t* emu); +uint64_t ReadTSCFrequency(x64emu_t* emu); + +#endif // __FREQ_H_ \ No newline at end of file diff --git a/src/include/x64emu.h b/src/include/x64emu.h index 4b88f6ae..d4311c77 100644 --- a/src/include/x64emu.h +++ b/src/include/x64emu.h @@ -20,15 +20,8 @@ void ResetFlags(x64emu_t *emu); void ResetSegmentsCache(x64emu_t *emu); const char* DumpCPURegs(x64emu_t* emu, uintptr_t ip, int is32bits); -void AddCleanup(x64emu_t *emu, void *p); -void AddCleanup1Arg(x64emu_t *emu, void *p, void* a, elfheader_t* h); -void CallCleanup(x64emu_t *emu, elfheader_t* h); -void CallAllCleanup(x64emu_t *emu); void UnimpOpcode(x64emu_t* emu, int is32bits); -uint64_t ReadTSC(x64emu_t* emu); -uint64_t ReadTSCFrequency(x64emu_t* emu); - double FromLD(void* ld); // long double (80bits pointer) -> double long double LD2localLD(void* ld); // long double (80bits pointer) -> long double (80 or 128bits) void LD2D(void* ld, void* d); // long double (80bits) -> double (64bits) -- cgit 1.4.1