//===-- guarded_pool_allocator.h --------------------------------*- C++ -*-===// // // Part of the LLVM Project, under the Apache License v2.0 with LLVM Exceptions. // See https://llvm.org/LICENSE.txt for license information. // SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception // //===----------------------------------------------------------------------===// #ifndef GWP_ASAN_GUARDED_POOL_ALLOCATOR_H_ #define GWP_ASAN_GUARDED_POOL_ALLOCATOR_H_ #include "gwp_asan/common.h" #include "gwp_asan/definitions.h" #include "gwp_asan/mutex.h" #include "gwp_asan/options.h" #include "gwp_asan/platform_specific/guarded_pool_allocator_fuchsia.h" // IWYU pragma: keep #include "gwp_asan/platform_specific/guarded_pool_allocator_posix.h" // IWYU pragma: keep #include "gwp_asan/platform_specific/guarded_pool_allocator_tls.h" #include <stddef.h> #include <stdint.h> // IWYU pragma: no_include <__stddef_max_align_t.h> // IWYU pragma: no_include <__stddef_null.h> // IWYU pragma: no_include <__stddef_nullptr_t.h> // IWYU pragma: no_include <__stddef_offsetof.h> // IWYU pragma: no_include <__stddef_ptrdiff_t.h> // IWYU pragma: no_include <__stddef_rsize_t.h> // IWYU pragma: no_include <__stddef_size_t.h> // IWYU pragma: no_include <__stddef_unreachable.h> // IWYU pragma: no_include <__stddef_wchar_t.h> // IWYU pragma: no_include <__stddef_wint_t.h> namespace gwp_asan { // This class is the primary implementation of the allocator portion of GWP- // ASan. It is the sole owner of the pool of sequentially allocated guarded // slots. It should always be treated as a singleton. // Functions in the public interface of this class are thread-compatible until // init() is called, at which point they become thread-safe (unless specified // otherwise). class GuardedPoolAllocator { … }; } // namespace gwp_asan #endif // GWP_ASAN_GUARDED_POOL_ALLOCATOR_H_