]>
Commit | Line | Data |
---|---|---|
696d846a | 1 | //===-- sanitizer_allocator_internal.h --------------------------*- C++ -*-===// |
ef1b3fda | 2 | // |
b667dd70 ML |
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-exception | |
ef1b3fda KS |
6 | // |
7 | //===----------------------------------------------------------------------===// | |
8 | // | |
9 | // This allocator is used inside run-times. | |
10 | // | |
11 | //===----------------------------------------------------------------------===// | |
12 | ||
13 | #ifndef SANITIZER_ALLOCATOR_INTERNAL_H | |
14 | #define SANITIZER_ALLOCATOR_INTERNAL_H | |
15 | ||
16 | #include "sanitizer_allocator.h" | |
17 | #include "sanitizer_internal_defs.h" | |
18 | ||
19 | namespace __sanitizer { | |
20 | ||
21 | // FIXME: Check if we may use even more compact size class map for internal | |
22 | // purposes. | |
23 | typedef CompactSizeClassMap InternalSizeClassMap; | |
24 | ||
5d3805fc JJ |
25 | struct AP32 { |
26 | static const uptr kSpaceBeg = 0; | |
27 | static const u64 kSpaceSize = SANITIZER_MMAP_RANGE_SIZE; | |
28 | static const uptr kMetadataSize = 0; | |
29 | typedef InternalSizeClassMap SizeClassMap; | |
b667dd70 ML |
30 | static const uptr kRegionSizeLog = 20; |
31 | using AddressSpaceView = LocalAddressSpaceView; | |
5d3805fc JJ |
32 | typedef NoOpMapUnmapCallback MapUnmapCallback; |
33 | static const uptr kFlags = 0; | |
34 | }; | |
35 | typedef SizeClassAllocator32<AP32> PrimaryInternalAllocator; | |
ef1b3fda | 36 | |
b667dd70 ML |
37 | typedef CombinedAllocator<PrimaryInternalAllocator, |
38 | LargeMmapAllocatorPtrArrayStatic> | |
39 | InternalAllocator; | |
40 | typedef InternalAllocator::AllocatorCache InternalAllocatorCache; | |
ef1b3fda | 41 | |
10189819 MO |
42 | void *InternalAlloc(uptr size, InternalAllocatorCache *cache = nullptr, |
43 | uptr alignment = 0); | |
44 | void *InternalRealloc(void *p, uptr size, | |
45 | InternalAllocatorCache *cache = nullptr); | |
b667dd70 ML |
46 | void *InternalReallocArray(void *p, uptr count, uptr size, |
47 | InternalAllocatorCache *cache = nullptr); | |
48 | void *InternalCalloc(uptr count, uptr size, | |
10189819 | 49 | InternalAllocatorCache *cache = nullptr); |
696d846a | 50 | void InternalFree(void *p, InternalAllocatorCache *cache = nullptr); |
ef1b3fda KS |
51 | InternalAllocator *internal_allocator(); |
52 | ||
696d846a MO |
53 | } // namespace __sanitizer |
54 | ||
696d846a | 55 | #endif // SANITIZER_ALLOCATOR_INTERNAL_H |