diff options
author | Alexey Samsonov <samsonov@google.com> | 2012-06-06 07:30:33 +0000 |
---|---|---|
committer | Alexey Samsonov <samsonov@google.com> | 2012-06-06 07:30:33 +0000 |
commit | ca2b5d7abbd40271c09a648395c64867a2383e54 (patch) | |
tree | 2b67172ca7b4c9a90c0875f62b577a30702d7fe9 | |
parent | c4b201308bdd19138c21b7b92db235a7ad0e4665 (diff) | |
download | bcm5719-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.h | 2 | ||||
-rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_linux.cc | 11 | ||||
-rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_mac.cc | 11 | ||||
-rw-r--r-- | compiler-rt/lib/sanitizer_common/sanitizer_win.cc | 10 | ||||
-rw-r--r-- | compiler-rt/lib/tsan/rtl/tsan_platform.h | 3 | ||||
-rw-r--r-- | compiler-rt/lib/tsan/rtl/tsan_platform_linux.cc | 12 |
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"); } |