diff options
author | Zeex <zeex@rocketmail.com> | 2016-07-24 04:56:04 +0600 |
---|---|---|
committer | Zeex <zeex@rocketmail.com> | 2016-07-24 05:04:07 +0600 |
commit | 1b89e7f8ade270a81e672c6f2de079bdee336741 (patch) | |
tree | f913869243b6fed1923813a92601eecb52e62f3e /subhook.h | |
parent | 9551217ba4fadbf729e810ab94b4ab7f67b4cfbe (diff) | |
download | subhook-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.h | 7 |
1 files changed, 6 insertions, 1 deletions
@@ -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); |