aboutsummaryrefslogtreecommitdiff
path: root/subhook.h
diff options
context:
space:
mode:
authorZeex <zeex@rocketmail.com>2016-07-24 04:56:04 +0600
committerZeex <zeex@rocketmail.com>2016-07-24 05:04:07 +0600
commit1b89e7f8ade270a81e672c6f2de079bdee336741 (patch)
treef913869243b6fed1923813a92601eecb52e62f3e /subhook.h
parent9551217ba4fadbf729e810ab94b4ab7f67b4cfbe (diff)
downloadsubhook-1b89e7f8ade270a81e672c6f2de079bdee336741.zip
subhook-1b89e7f8ade270a81e672c6f2de079bdee336741.tar.gz
subhook-1b89e7f8ade270a81e672c6f2de079bdee336741.tar.bz2
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
Diffstat (limited to 'subhook.h')
-rw-r--r--subhook.h7
1 files changed, 6 insertions, 1 deletions
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);