summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDmitry Vyukov <dvyukov@google.com>2012-11-27 08:41:39 +0000
committerDmitry Vyukov <dvyukov@google.com>2012-11-27 08:41:39 +0000
commit210c21129ec88b55d01caecc6de4476a281aee85 (patch)
tree4f1ea937b842420e31fcfceea43744287b50c39c
parent96c39f733fcb29d3b18bade0a63fc0e18943b4c2 (diff)
downloadbcm5719-llvm-210c21129ec88b55d01caecc6de4476a281aee85.tar.gz
bcm5719-llvm-210c21129ec88b55d01caecc6de4476a281aee85.zip
tsan: add memory range access functions to public iface
llvm-svn: 168692
-rw-r--r--compiler-rt/lib/tsan/rtl/tsan_interface.h3
-rw-r--r--compiler-rt/lib/tsan/rtl/tsan_interface_inl.h8
2 files changed, 11 insertions, 0 deletions
diff --git a/compiler-rt/lib/tsan/rtl/tsan_interface.h b/compiler-rt/lib/tsan/rtl/tsan_interface.h
index ed21ec60544..c2a493cde7e 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_interface.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_interface.h
@@ -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
diff --git a/compiler-rt/lib/tsan/rtl/tsan_interface_inl.h b/compiler-rt/lib/tsan/rtl/tsan_interface_inl.h
index 233f9028a63..8a92155d57e 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_interface_inl.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_interface_inl.h
@@ -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);
+}
OpenPOWER on IntegriCloud