hwasan_thread_list.cpp 855 B

12345678910111213141516171819202122232425262728
  1. #include "hwasan_thread_list.h"
  2. #include "sanitizer_common/sanitizer_thread_arg_retval.h"
  3. namespace __hwasan {
  4. static HwasanThreadList *hwasan_thread_list;
  5. static ThreadArgRetval *thread_data;
  6. HwasanThreadList &hwasanThreadList() { return *hwasan_thread_list; }
  7. ThreadArgRetval &hwasanThreadArgRetval() { return *thread_data; }
  8. void InitThreadList(uptr storage, uptr size) {
  9. CHECK_EQ(hwasan_thread_list, nullptr);
  10. static ALIGNED(alignof(
  11. HwasanThreadList)) char thread_list_placeholder[sizeof(HwasanThreadList)];
  12. hwasan_thread_list =
  13. new (thread_list_placeholder) HwasanThreadList(storage, size);
  14. CHECK_EQ(thread_data, nullptr);
  15. static ALIGNED(alignof(
  16. ThreadArgRetval)) char thread_data_placeholder[sizeof(ThreadArgRetval)];
  17. thread_data = new (thread_data_placeholder) ThreadArgRetval();
  18. }
  19. } // namespace __hwasan