#include <rtsan/rtsan.h>
#include <rtsan/rtsan_context.h>
#include <rtsan/rtsan_flags.h>
#include <rtsan/rtsan_interceptors.h>
#include "sanitizer_common/sanitizer_atomic.h"
#include "sanitizer_common/sanitizer_common.h"
#include "sanitizer_common/sanitizer_mutex.h"
usingnamespace__rtsan;
usingnamespace__sanitizer;
static StaticSpinMutex rtsan_inited_mutex;
static atomic_uint8_t rtsan_initialized = …;
static void SetInitialized() { … }
extern "C" {
SANITIZER_INTERFACE_ATTRIBUTE void __rtsan_init() { … }
SANITIZER_INTERFACE_ATTRIBUTE void __rtsan_ensure_initialized() { … }
SANITIZER_INTERFACE_ATTRIBUTE bool __rtsan_is_initialized() { … }
SANITIZER_INTERFACE_ATTRIBUTE void __rtsan_realtime_enter() { … }
SANITIZER_INTERFACE_ATTRIBUTE void __rtsan_realtime_exit() { … }
SANITIZER_INTERFACE_ATTRIBUTE void __rtsan_disable() { … }
SANITIZER_INTERFACE_ATTRIBUTE void __rtsan_enable() { … }
SANITIZER_INTERFACE_ATTRIBUTE void
__rtsan_expect_not_realtime(const char *intercepted_function_name) { … }
}