| #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 |