1 //===-- tsan_interface.cc -------------------------------------------------===//
3 // This file is distributed under the University of Illinois Open Source
4 // License. See LICENSE.TXT for details.
6 //===----------------------------------------------------------------------===//
8 // This file is a part of ThreadSanitizer (TSan), a race detector.
10 //===----------------------------------------------------------------------===//
12 #include "tsan_interface.h"
13 #include "tsan_interface_ann.h"
16 #define CALLERPC ((uptr)__builtin_return_address(0))
18 using namespace __tsan
; // NOLINT
21 Initialize(cur_thread());
24 void __tsan_read16(void *addr
) {
25 MemoryRead(cur_thread(), CALLERPC
, (uptr
)addr
, kSizeLog8
);
26 MemoryRead(cur_thread(), CALLERPC
, (uptr
)addr
+ 8, kSizeLog8
);
29 void __tsan_write16(void *addr
) {
30 MemoryWrite(cur_thread(), CALLERPC
, (uptr
)addr
, kSizeLog8
);
31 MemoryWrite(cur_thread(), CALLERPC
, (uptr
)addr
+ 8, kSizeLog8
);
34 void __tsan_acquire(void *addr
) {
35 Acquire(cur_thread(), CALLERPC
, (uptr
)addr
);
38 void __tsan_release(void *addr
) {
39 Release(cur_thread(), CALLERPC
, (uptr
)addr
);