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 |