1#include <atomic> 2#include <xray/xray_interface.h> 3 4namespace __xray { 5 6extern std::atomic<void (*)(int32_t, XRayEntryType)> XRayPatchedFunction; 7 8// Implement this in C++ instead of assembly, to avoid dealing with ToC by hand. 9void CallXRayPatchedFunction(int32_t FuncId, XRayEntryType Type) { 10 auto fptr = __xray::XRayPatchedFunction.load(); 11 if (fptr != nullptr) 12 (*fptr)(FuncId, Type); 13} 14 15} // namespace __xray 16