Lines Matching refs:mem

16 #include "ecmascript/mem/mem_map_allocator.h"
43 LOG_ECMA(ERROR) << "Regular object mem map big addr fail: " << errno;
66 LOG_ECMA(ERROR) << "Huge object mem map big addr fail: " << errno;
78 static bool PageProtectMem(bool machineCodeSpace, void *mem, size_t size, [[maybe_unused]] bool isEnableJitFort)
83 return PageProtect(mem, size, prot);
90 return PageProtect(mem, size, PAGE_PROT_READWRITE);
93 void *addr = PageMapExecFortSpace(mem, size, PAGE_PROT_EXEC_READWRITE);
94 if (addr != mem) {
101 return PageProtect(mem, size, PAGE_PROT_EXEC_READWRITE);
108 MemMap mem;
112 mem = memMapPool_.GetRegularMemFromCommitted(size);
113 if (mem.GetMem() != nullptr) {
114 bool res = PageProtectMem(isMachineCode, mem.GetMem(), mem.GetSize(), isEnableJitFort);
118 PageTag(mem.GetMem(), size, type, spaceName, threadId);
119 return mem;
125 mem = memMapPool_.GetMemFromCache(size);
126 if (mem.GetMem() != nullptr) {
128 bool res = PageProtectMem(isMachineCode, mem.GetMem(), mem.GetSize(), isEnableJitFort);
132 PageTag(mem.GetMem(), size, type, spaceName, threadId);
133 return mem;
135 mem = PageMap(REGULAR_REGION_MMAP_SIZE, PAGE_PROT_NONE, alignment);
136 memMapPool_.InsertMemMap(mem);
137 mem = memMapPool_.SplitMemFromCache(mem);
143 mem = memMapFreeList_.GetMemFromList(size);
145 if (mem.GetMem() != nullptr) {
146 bool res = PageProtectMem(isMachineCode, mem.GetMem(), mem.GetSize(), isEnableJitFort);
150 PageTag(mem.GetMem(), mem.GetSize(), type, spaceName, threadId);
151 memMapTotalSize_ += mem.GetSize();
153 return mem;
156 void MemMapAllocator::CacheOrFree(void *mem, size_t size, bool isRegular, size_t cachedSize)
160 // Clear ThreadId tag and tag the mem with ARKTS HEAP.
161 PageClearTag(mem, size);
162 PageTag(mem, size, PageTagType::HEAP);
163 memMapPool_.AddMemToCommittedCache(mem, size);
166 Free(mem, size, isRegular);
180 void MemMapAllocator::Free(void *mem, size_t size, bool isRegular)
183 PageTag(mem, size, PageTagType::MEMPOOL_CACHE);
184 if (!PageProtect(mem, size, PAGE_PROT_NONE)) {
187 PageRelease(mem, size);
189 memMapPool_.AddMemToCache(mem, size);
191 memMapFreeList_.AddMemToList(MemMap(mem, size));