diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2021-03-02 17:55:55 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2021-03-02 17:55:55 +0100 |
| commit | b4851d8dd52dba587e55818b2e20b15f8624e955 (patch) | |
| tree | 799db5bcbe4d71e8ee91d1e6f2445b7ccae78fe4 /src/include/bridge.h | |
| parent | 8b56536bb1e38cfa83346544ec62e2e2003dd071 (diff) | |
| download | box64-b4851d8dd52dba587e55818b2e20b15f8624e955.tar.gz box64-b4851d8dd52dba587e55818b2e20b15f8624e955.zip | |
Added bridge handling
Diffstat (limited to 'src/include/bridge.h')
| -rwxr-xr-x | src/include/bridge.h | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/include/bridge.h b/src/include/bridge.h new file mode 100755 index 00000000..dfe402f9 --- /dev/null +++ b/src/include/bridge.h @@ -0,0 +1,25 @@ +#ifndef __BRIDGE_H_ +#define __BRIDGE_H_ +#include <stdint.h> + +typedef struct x64emu_s x64emu_t; +typedef struct bridge_s bridge_t; +typedef struct box64context_s box64context_t; +typedef void (*wrapper_t)(x64emu_t* emu, uintptr_t fnc); + +bridge_t *NewBridge(); +void FreeBridge(bridge_t** bridge); + +uintptr_t AddBridge(bridge_t* bridge, wrapper_t w, void* fnc, int N); +uintptr_t CheckBridged(bridge_t* bridge, void* fnc); +uintptr_t AddCheckBridge(bridge_t* bridge, wrapper_t w, void* fnc, int N); +uintptr_t AddAutomaticBridge(x64emu_t* emu, bridge_t* bridge, wrapper_t w, void* fnc, int N); +void* GetNativeFnc(uintptr_t fnc); +void* GetNativeFncOrFnc(uintptr_t fnc); + +int hasAlternate(void* addr); +void* getAlternate(void* addr); +void addAlternate(void* addr, void* alt); +void cleanAlternate(); + +#endif //__BRIDGE_H_ \ No newline at end of file |