From 1b89e7f8ade270a81e672c6f2de079bdee336741 Mon Sep 17 00:00:00 2001 From: Zeex Date: Sun, 24 Jul 2016 04:56:04 +0600 Subject: Return support for 32-bit jumps on x86-64 Add an option to allow the caller to decide whether to use 32-bit or 64-bit jumps (the latter requires almost 3 times more space (5 vs 14 bytes)). Also see: #13 --- subhook.h | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'subhook.h') diff --git a/subhook.h b/subhook.h index 5b8819f..79e94ee 100644 --- a/subhook.h +++ b/subhook.h @@ -85,10 +85,15 @@ #endif #endif +typedef enum subhook_options { + /* Use 64-bit jump method on x86-64 (requires more space). */ + SUBHOOK_OPTION_64BIT_OFFSET = 1u << 1 +} subhook_options_t; + struct subhook; typedef struct subhook *subhook_t; -SUBHOOK_EXPORT subhook_t SUBHOOK_API subhook_new(void *src, void *dst); +SUBHOOK_EXPORT subhook_t SUBHOOK_API subhook_new(void *src, void *dst, subhook_options_t options); SUBHOOK_EXPORT void SUBHOOK_API subhook_free(subhook_t hook); SUBHOOK_EXPORT void *SUBHOOK_API subhook_get_src(subhook_t hook); -- cgit v1.1