1//===-- msan_allocator.h ----------------------------------------*- C++ -*-===//
2//
3//                     The LLVM Compiler Infrastructure
4//
5// This file is distributed under the University of Illinois Open Source
6// License. See LICENSE.TXT for details.
7//
8//===----------------------------------------------------------------------===//
9//
10// This file is a part of MemorySanitizer.
11//
12//===----------------------------------------------------------------------===//
13
14#ifndef MSAN_ALLOCATOR_H
15#define MSAN_ALLOCATOR_H
16
17#include "sanitizer_common/sanitizer_common.h"
18
19namespace __msan {
20
21struct MsanThreadLocalMallocStorage {
22  uptr quarantine_cache[16];
23  // Allocator cache contains atomic_uint64_t which must be 8-byte aligned.
24  ALIGNED(8) uptr allocator_cache[96 * (512 * 8 + 16)];  // Opaque.
25  void CommitBack();
26
27 private:
28  // These objects are allocated via mmap() and are zero-initialized.
29  MsanThreadLocalMallocStorage() {}
30};
31
32} // namespace __msan
33#endif // MSAN_ALLOCATOR_H
34