#pragma once
#include <folly/Portability.h>
namespace folly {
enum class annotate_rwlock_level : long { … };
namespace detail {
annotate_rwlock_cd_t;
annotate_rwlock_ar_t;
annotate_benign_race_sized_t;
annotate_ignore_t;
extern annotate_rwlock_cd_t* const annotate_rwlock_create_v;
extern annotate_rwlock_cd_t* const annotate_rwlock_create_static_v;
extern annotate_rwlock_cd_t* const annotate_rwlock_destroy_v;
extern annotate_rwlock_ar_t* const annotate_rwlock_acquired_v;
extern annotate_rwlock_ar_t* const annotate_rwlock_released_v;
extern annotate_benign_race_sized_t* const annotate_benign_race_sized_v;
extern annotate_ignore_t* const annotate_ignore_reads_begin_v;
extern annotate_ignore_t* const annotate_ignore_reads_end_v;
extern annotate_ignore_t* const annotate_ignore_writes_begin_v;
extern annotate_ignore_t* const annotate_ignore_writes_end_v;
extern annotate_ignore_t* const annotate_ignore_sync_begin_v;
extern annotate_ignore_t* const annotate_ignore_sync_end_v;
}
FOLLY_ALWAYS_INLINE static void annotate_rwlock_create(
void const volatile* const addr, char const* const f, int const l) { … }
FOLLY_ALWAYS_INLINE static void annotate_rwlock_create_static(
void const volatile* const addr, char const* const f, int const l) { … }
FOLLY_ALWAYS_INLINE static void annotate_rwlock_destroy(
void const volatile* const addr, char const* const f, int const l) { … }
FOLLY_ALWAYS_INLINE static void annotate_rwlock_acquired(
void const volatile* const addr,
annotate_rwlock_level const w,
char const* const f,
int const l) { … }
FOLLY_ALWAYS_INLINE static void annotate_rwlock_try_acquired(
void const volatile* const addr,
annotate_rwlock_level const w,
bool const result,
char const* const f,
int const l) { … }
FOLLY_ALWAYS_INLINE static void annotate_rwlock_released(
void const volatile* const addr,
annotate_rwlock_level const w,
char const* const f,
int const l) { … }
FOLLY_ALWAYS_INLINE static void annotate_benign_race_sized(
void const volatile* const addr,
long const size,
char const* const desc,
char const* const f,
int const l) { … }
FOLLY_ALWAYS_INLINE static void annotate_ignore_reads_begin(
char const* const f, int const l) { … }
FOLLY_ALWAYS_INLINE static void annotate_ignore_reads_end(
char const* const f, int const l) { … }
FOLLY_ALWAYS_INLINE static void annotate_ignore_writes_begin(
char const* const f, int const l) { … }
FOLLY_ALWAYS_INLINE static void annotate_ignore_writes_end(
char const* const f, int const l) { … }
FOLLY_ALWAYS_INLINE static void annotate_ignore_sync_begin(
char const* const f, int const l) { … }
FOLLY_ALWAYS_INLINE static void annotate_ignore_sync_end(
char const* const f, int const l) { … }
class annotate_ignore_thread_sanitizer_guard { … };
}