6#include "HAL/CriticalSection.h"
7#include "HAL/Allocators/CachedOSPageAllocator.h"
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
99
100
101
102
103
104
105
106
107
110 return static_cast<int32>(Size >> 16) + ((Size & 0xFFFF) ? 1 : 0) - 1;
114
115
118 return (
static_cast<SIZE_T>(Class) + 1) * 65536;
122
123
124
125
126
127
128
138
139
140
FWindowsCriticalSection FCriticalSection
SIZE_T VMSizeDivVirtualSizeAlignment
FPoolDescriptorBase * Next
FORCEINLINE int32 GetAllocationSizeClass(SIZE_T Size)
int32 NextPoolSize[Limits::NumAllocationSizeClasses]
FPoolDescriptorBase * ClassesListHeads[Limits::NumAllocationSizeClasses]
TCachedOSPageAllocator< MaxOSAllocsCached, MaxOSAllocCacheSize > OsAllocatorCache
FORCEINLINE SIZE_T CalculateAllocationSizeFromClass(int32 Class)
@ NumAllocationSizeClasses
@ MaxAllocationSizeToPool
FPooledVirtualMemoryAllocator()
void DecideOnTheNextPoolSize(int32 SizeClass, bool bGrowing)
void * Allocate(SIZE_T Size, uint32 AllocationHint=0, FCriticalSection *Mutex=nullptr)
uint64 GetCachedFreeTotal()
void DestroyPool(FPoolDescriptorBase *Pool)
FCriticalSection ClassesLocks[Limits::NumAllocationSizeClasses]
void FreeAll(FCriticalSection *Mutex=nullptr)
FPoolDescriptorBase * CreatePool(SIZE_T AllocationSize, int32 NumPooledAllocations)
void Free(void *Ptr, SIZE_T Size, FCriticalSection *Mutex=nullptr, bool ThreadIsTimeCritical=false)
FCriticalSection OsAllocatorCacheLock