diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2014-11-06 22:49:13 +0000 | 
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2014-11-06 22:49:13 +0000 | 
| commit | 8ef50bf3d1c287b5013c3168de77a462dfce3495 (patch) | |
| tree | 3467f3372c1195b1546172d89af2205a50b1866d /lib/sanitizer_common/sanitizer_linux.h | |
| parent | 11023dc647fd8f41418da90d59db138400d0f334 (diff) | |
Notes
Diffstat (limited to 'lib/sanitizer_common/sanitizer_linux.h')
| -rw-r--r-- | lib/sanitizer_common/sanitizer_linux.h | 27 | 
1 files changed, 26 insertions, 1 deletions
diff --git a/lib/sanitizer_common/sanitizer_linux.h b/lib/sanitizer_common/sanitizer_linux.h index ba68e6c2dd5a..a32e9bf08bad 100644 --- a/lib/sanitizer_common/sanitizer_linux.h +++ b/lib/sanitizer_common/sanitizer_linux.h @@ -13,9 +13,13 @@  #ifndef SANITIZER_LINUX_H  #define SANITIZER_LINUX_H +#include "sanitizer_platform.h" +#if SANITIZER_LINUX  #include "sanitizer_common.h"  #include "sanitizer_internal_defs.h" +#include "sanitizer_platform_limits_posix.h" +struct link_map;  // Opaque type returned by dlopen().  struct sigaltstack;  namespace __sanitizer { @@ -28,6 +32,17 @@ uptr internal_getdents(fd_t fd, struct linux_dirent *dirp, unsigned int count);  uptr internal_prctl(int option, uptr arg2, uptr arg3, uptr arg4, uptr arg5);  uptr internal_sigaltstack(const struct sigaltstack* ss,                            struct sigaltstack* oss); +uptr internal_sigaction(int signum, const __sanitizer_kernel_sigaction_t *act, +    __sanitizer_kernel_sigaction_t *oldact); +uptr internal_sigprocmask(int how, __sanitizer_kernel_sigset_t *set, +    __sanitizer_kernel_sigset_t *oldset); +void internal_sigfillset(__sanitizer_kernel_sigset_t *set); +void internal_sigdelset(__sanitizer_kernel_sigset_t *set, int signum); + +#ifdef __x86_64__ +uptr internal_clone(int (*fn)(void *), void *child_stack, int flags, void *arg, +                    int *parent_tidptr, void *newtls, int *child_tidptr); +#endif  // This class reads thread IDs from /proc/<pid>/task using only syscalls.  class ThreadLister { @@ -51,15 +66,25 @@ class ThreadLister {    int bytes_read_;  }; -void AdjustStackSizeLinux(void *attr, int verbosity); +void AdjustStackSizeLinux(void *attr);  // Exposed for testing.  uptr ThreadDescriptorSize(); +uptr ThreadSelf(); +uptr ThreadSelfOffset();  // Matches a library's file name against a base name (stripping path and version  // information).  bool LibraryNameIs(const char *full_name, const char *base_name); +// Read the name of the current binary from /proc/self/exe. +uptr ReadBinaryName(/*out*/char *buf, uptr buf_len); +// Cache the value of /proc/self/exe. +void CacheBinaryName(); + +// Call cb for each region mapped by map. +void ForEachMappedRegion(link_map *map, void (*cb)(const void *, uptr));  }  // namespace __sanitizer +#endif  // SANITIZER_LINUX  #endif  // SANITIZER_LINUX_H  | 
