summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlexey Samsonov <samsonov@google.com>2012-06-06 07:30:33 +0000
committerAlexey Samsonov <samsonov@google.com>2012-06-06 07:30:33 +0000
commitca2b5d7abbd40271c09a648395c64867a2383e54 (patch)
tree2b67172ca7b4c9a90c0875f62b577a30702d7fe9
parentc4b201308bdd19138c21b7b92db235a7ad0e4665 (diff)
downloadbcm5719-llvm-ca2b5d7abbd40271c09a648395c64867a2383e54.tar.gz
bcm5719-llvm-ca2b5d7abbd40271c09a648395c64867a2383e54.zip
[Sanitizer] move internal_filesize and internal_dup2 from TSan to sanitizer_common.
llvm-svn: 158052
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_libc.h2
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_linux.cc11
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_mac.cc11
-rw-r--r--compiler-rt/lib/sanitizer_common/sanitizer_win.cc10
-rw-r--r--compiler-rt/lib/tsan/rtl/tsan_platform.h3
-rw-r--r--compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc12
6 files changed, 34 insertions, 15 deletions
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_libc.h b/compiler-rt/lib/sanitizer_common/sanitizer_libc.h
index c167079b4f6..8472d0b82a7 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_libc.h
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_libc.h
@@ -40,6 +40,8 @@ int internal_close(fd_t fd);
fd_t internal_open(const char *filename, bool write);
uptr internal_read(fd_t fd, void *buf, uptr count);
uptr internal_write(fd_t fd, const void *buf, uptr count);
+uptr internal_filesize(fd_t fd); // -1 on error.
+int internal_dup2(int oldfd, int newfd);
int internal_sscanf(const char *str, const char *format, ...);
} // namespace __sanitizer
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
index 26270c3ae1b..0a8818a5e10 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_linux.cc
@@ -55,6 +55,17 @@ uptr internal_write(fd_t fd, const void *buf, uptr count) {
return (uptr)syscall(__NR_write, fd, buf, count);
}
+uptr internal_filesize(fd_t fd) {
+ struct stat st = {};
+ if (syscall(__NR_fstat, fd, &st))
+ return -1;
+ return (uptr)st.st_size;
+}
+
+int internal_dup2(int oldfd, int newfd) {
+ return syscall(__NR_dup2, oldfd, newfd);
+}
+
} // namespace __sanitizer
#endif // __linux__
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc b/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
index 6e2c8c1f9f9..c607838f590 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_mac.cc
@@ -51,6 +51,17 @@ uptr internal_write(fd_t fd, const void *buf, uptr count) {
return write(fd, buf, count);
}
+uptr internal_filesize(fd_t fd) {
+ struct stat st = {};
+ if (fstat(fd, &st))
+ return -1;
+ return (uptr)st.st_size;
+}
+
+int internal_dup2(int oldfd, int newfd) {
+ return dup2(oldfd, newfd);
+}
+
} // namespace __sanitizer
#endif // __APPLE__
diff --git a/compiler-rt/lib/sanitizer_common/sanitizer_win.cc b/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
index a70817de160..39459078774 100644
--- a/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
+++ b/compiler-rt/lib/sanitizer_common/sanitizer_win.cc
@@ -63,6 +63,16 @@ uptr internal_write(fd_t fd, const void *buf, uptr count) {
return ret;
}
+uptr internal_filesize(fd_t fd) {
+ UNIMPLEMENTED_WIN();
+ return -1;
+}
+
+int internal_dup2(int oldfd, int newfd) {
+ UNIMPLEMENTED_WIN();
+ return -1;
+}
+
int internal_sscanf(const char *str, const char *format, ...) {
UNIMPLEMENTED_WIN();
return -1;
diff --git a/compiler-rt/lib/tsan/rtl/tsan_platform.h b/compiler-rt/lib/tsan/rtl/tsan_platform.h
index e43ec8a5111..94dc1ccb4b4 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_platform.h
+++ b/compiler-rt/lib/tsan/rtl/tsan_platform.h
@@ -76,9 +76,6 @@ void internal_sleep_ms(u32 ms);
void internal_start_thread(void(*func)(void*), void *arg);
-typedef int fd_t;
-uptr internal_filesize(fd_t fd); // -1 on error.
-int internal_dup2(int oldfd, int newfd);
const char *internal_getpwd();
uptr GetTlsSize();
diff --git a/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc b/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
index e60b821ec14..a38eb88df39 100644
--- a/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
+++ b/compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc
@@ -83,18 +83,6 @@ void internal_sleep_ms(u32 ms) {
usleep(ms * 1000);
}
-uptr internal_filesize(fd_t fd) {
- struct stat st = {};
- if (syscall(__NR_fstat, fd, &st))
- return -1;
- return (uptr)st.st_size;
-}
-
-int internal_dup2(int oldfd, int newfd) {
- ScopedInRtl in_rtl;
- return syscall(__NR_dup2, oldfd, newfd);
-}
-
const char *internal_getpwd() {
return getenv("PWD");
}
OpenPOWER on IntegriCloud