#include <atomic> | |
#include <xray/xray_interface.h> | |
namespace __xray { | |
extern std::atomic<void (*)(int32_t, XRayEntryType)> XRayPatchedFunction; | |
// Implement this in C++ instead of assembly, to avoid dealing with ToC by hand. | |
void CallXRayPatchedFunction(int32_t FuncId, XRayEntryType Type) { | |
auto fptr = __xray::XRayPatchedFunction.load(); | |
if (fptr != nullptr) | |
(*fptr)(FuncId, Type); | |
} | |
} // namespace __xray |