1276789Sdim//===-- msan_allocator.h ----------------------------------------*- C++ -*-===// 2276789Sdim// 3276789Sdim// The LLVM Compiler Infrastructure 4276789Sdim// 5276789Sdim// This file is distributed under the University of Illinois Open Source 6276789Sdim// License. See LICENSE.TXT for details. 7276789Sdim// 8276789Sdim//===----------------------------------------------------------------------===// 9276789Sdim// 10276789Sdim// This file is a part of MemorySanitizer. 11276789Sdim// 12276789Sdim//===----------------------------------------------------------------------===// 13276789Sdim 14276789Sdim#ifndef MSAN_ALLOCATOR_H 15276789Sdim#define MSAN_ALLOCATOR_H 16276789Sdim 17276789Sdim#include "sanitizer_common/sanitizer_common.h" 18276789Sdim 19276789Sdimnamespace __msan { 20276789Sdim 21276789Sdimstruct MsanThreadLocalMallocStorage { 22276789Sdim uptr quarantine_cache[16]; 23276789Sdim // Allocator cache contains atomic_uint64_t which must be 8-byte aligned. 24276789Sdim ALIGNED(8) uptr allocator_cache[96 * (512 * 8 + 16)]; // Opaque. 25276789Sdim void CommitBack(); 26276789Sdim 27276789Sdim private: 28276789Sdim // These objects are allocated via mmap() and are zero-initialized. 29276789Sdim MsanThreadLocalMallocStorage() {} 30276789Sdim}; 31276789Sdim 32276789Sdim} // namespace __msan 33276789Sdim#endif // MSAN_ALLOCATOR_H 34