1 #include <atomic> 2 #include <xray/xray_interface.h> 3 4 namespace __xray { 5 6 extern std::atomic<void (*)(int32_t, XRayEntryType)> XRayPatchedFunction; 7 8 // Implement this in C++ instead of assembly, to avoid dealing with ToC by hand. 9 void 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