| //===-- scudo_tls.h ---------------------------------------------*- C++ -*-===// |
| // |
| // The LLVM Compiler Infrastructure |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| /// |
| /// Scudo thread local structure definition. |
| /// Implementation will differ based on the thread local storage primitives |
| /// offered by the underlying platform. |
| /// |
| //===----------------------------------------------------------------------===// |
| |
| #ifndef SCUDO_TLS_H_ |
| #define SCUDO_TLS_H_ |
| |
| #include "scudo_allocator.h" |
| #include "scudo_utils.h" |
| |
| #include "sanitizer_common/sanitizer_linux.h" |
| #include "sanitizer_common/sanitizer_platform.h" |
| |
| namespace __scudo { |
| |
| // Platform specific base thread context definitions. |
| #include "scudo_tls_context_android.inc" |
| #include "scudo_tls_context_linux.inc" |
| |
| struct ALIGNED(64) ScudoThreadContext : public ScudoThreadContextPlatform { |
| AllocatorCache Cache; |
| ScudoPrng Prng; |
| uptr QuarantineCachePlaceHolder[4]; |
| void init(); |
| void commitBack(); |
| }; |
| |
| void initThread(); |
| |
| // Platform specific dastpath functions definitions. |
| #include "scudo_tls_android.inc" |
| #include "scudo_tls_linux.inc" |
| |
| } // namespace __scudo |
| |
| #endif // SCUDO_TLS_H_ |