From 4779a6137745f9ccad897b767ecfc9ff3bf5082e Mon Sep 17 00:00:00 2001 From: Ibrahim Zidan Date: Thu, 18 Apr 2019 14:43:03 +0200 Subject: Restore the ability for HPM Hooks to hook to private interfaces - Starting from 5db7c799055c6ae9c4463f6cf4c88a35597d5d31 the ability to hook to private interfaces was removed, this commit restores this ability by introducing two new macros specifically for this. - addHookPrePriv to add a pre-hook for private interface member - addHookPostPriv to add a post-hook for private interface member Signed-off-by: Ibrahim Zidan --- src/plugins/HPMHooking.h | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'src/plugins/HPMHooking.h') diff --git a/src/plugins/HPMHooking.h b/src/plugins/HPMHooking.h index 44970863c..f94dccac4 100644 --- a/src/plugins/HPMHooking.h +++ b/src/plugins/HPMHooking.h @@ -50,11 +50,21 @@ HPExport struct HPMHooking_interface HPMHooking_s; HPMi->hooking->AddHook(HOOK_TYPE_PRE, #ifname "->" #funcname, (hook), HPMi->pid) \ ) +#define addHookPrePriv(ifname, funcname, hook) ( \ + (void)((HPMHOOK_pre_PRIV__ ## ifname ## _ ## funcname)0 == (hook)), \ + HPMi->hooking->AddHook(HOOK_TYPE_PRE, #ifname "->p->" #funcname, (hook), HPMi->pid) \ + ) + #define addHookPost(ifname, funcname, hook) ( \ (void)((HPMHOOK_post_ ## ifname ## _ ## funcname)0 == (hook)), \ HPMi->hooking->AddHook(HOOK_TYPE_POST, #ifname "->" #funcname, (hook), HPMi->pid) \ ) +#define addHookPostPriv(ifname, funcname, hook) ( \ + (void)((HPMHOOK_post_PRIV__ ## ifname ## _ ## funcname)0 == (hook)), \ + HPMi->hooking->AddHook(HOOK_TYPE_POST, #ifname "->p->" #funcname, (hook), HPMi->pid) \ + ) + /* need better names ;/ */ /* will not run the original function after pre-hook processing is complete (other hooks will run) */ #define hookStop() (HPMi->hooking->HookStop(__func__,HPMi->pid)) -- cgit v1.2.3-60-g2f50