tsan: add memory range access functions to public iface
authorDmitry Vyukov <dvyukov@google.com>
Tue, 27 Nov 2012 08:41:39 +0000 (08:41 +0000)
committerDmitry Vyukov <dvyukov@google.com>
Tue, 27 Nov 2012 08:41:39 +0000 (08:41 +0000)
llvm-svn: 168692

compiler-rt/lib/tsan/rtl/tsan_interface.h
compiler-rt/lib/tsan/rtl/tsan_interface_inl.h

index ed21ec6..c2a493c 100644 (file)
@@ -44,6 +44,9 @@ void __tsan_vptr_update(void **vptr_p, void *new_val);
 void __tsan_func_entry(void *call_pc);
 void __tsan_func_exit();
 
+void __tsan_read_range(void *addr, unsigned long size);  // NOLINT
+void __tsan_write_range(void *addr, unsigned long size);  // NOLINT
+
 #ifdef __cplusplus
 }  // extern "C"
 #endif
index 233f902..8a92155 100644 (file)
@@ -63,3 +63,11 @@ void __tsan_func_entry(void *pc) {
 void __tsan_func_exit() {
   FuncExit(cur_thread());
 }
+
+void __tsan_read_range(void *addr, uptr size) {
+  MemoryAccessRange(cur_thread(), CALLERPC, (uptr)addr, size, false);
+}
+
+void __tsan_write_range(void *addr, uptr size) {
+  MemoryAccessRange(cur_thread(), CALLERPC, (uptr)addr, size, true);
+}