brintos

brintos / llvm-project-archived public Read only

0
0
Text · 1.0 KiB · 109e24d Raw
36 lines · c
1//===-- msan_allocator.h ----------------------------------------*- C++ -*-===//2//3// Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions.4// See https://llvm.org/LICENSE.txt for license information.5// SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception6//7//===----------------------------------------------------------------------===//8//9// This file is a part of MemorySanitizer.10//11//===----------------------------------------------------------------------===//12 13#ifndef MSAN_ALLOCATOR_H14#define MSAN_ALLOCATOR_H15 16#include "sanitizer_common/sanitizer_common.h"17 18namespace __msan {19 20struct MsanThreadLocalMallocStorage {21  // Allocator cache contains atomic_uint64_t which must be 8-byte aligned.22  alignas(8) uptr allocator_cache[96 * (512 * 8 + 16)];  // Opaque.23  void Init();24  void CommitBack();25 26 private:27  // These objects are allocated via mmap() and are zero-initialized.28  MsanThreadLocalMallocStorage() {}29};30 31void LockAllocator();32void UnlockAllocator();33 34} // namespace __msan35#endif // MSAN_ALLOCATOR_H36