From d592c1996d74e9e6e728026486cdab6a75f43aaa Mon Sep 17 00:00:00 2001 From: Yang Liu Date: Wed, 9 Apr 2025 01:12:55 +0800 Subject: [WOW64] Add wow64 PE build scaffolding (#2513) --- src/include/os.h | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) (limited to 'src/include/os.h') diff --git a/src/include/os.h b/src/include/os.h index 6968df19..2ab70722 100644 --- a/src/include/os.h +++ b/src/include/os.h @@ -2,6 +2,37 @@ #define __OS_H_ #include +#include + +#ifndef _WIN32 +#include +#include +#else +typedef __int64 ssize_t; + +#define PROT_READ 0x1 +#define PROT_WRITE 0x2 +#define PROT_EXEC 0x4 + +#define MAP_FAILED ((void*)-1) +#define MAP_PRIVATE 0x02 +#define MAP_FIXED 0x10 +#define MAP_ANONYMOUS 0x20 +#define MAP_32BIT 0x40 +#define MAP_NORESERVE 0 + +void* mmap(void* addr, size_t length, int prot, int flags, int fd, off_t offset); +int munmap(void* addr, size_t length); +int mprotect(void* addr, size_t len, int prot); + +void* WinMalloc(size_t size); +void* WinRealloc(void* ptr, size_t size); +void* WinCalloc(size_t nmemb, size_t size); +void WinFree(void* ptr); +#endif + +void* InternalMmap(void* addr, unsigned long length, int prot, int flags, int fd, ssize_t offset); +int InternalMunmap(void* addr, unsigned long length); int GetTID(void); int SchedYield(void); @@ -17,6 +48,8 @@ int IsBridgeSignature(char s, char c); int IsNativeCall(uintptr_t addr, int is32bits, uintptr_t* calladdress, uint16_t* retn); void EmuInt3(void* emu, void* addr); void* EmuFork(void* emu, int forktype); + +void PersonalityAddrLimit32Bit(void); // ---------------------------------------------------------------- #ifndef _WIN32 -- cgit 1.4.1