Lines Matching refs:addr

49 static void os_pages_unmap(void *addr, size_t size);
54 os_pages_map(void *addr, size_t size, size_t alignment, bool *commit) { in os_pages_map() argument
55 assert(ALIGNMENT_ADDR2BASE(addr, os_page) == addr); in os_pages_map()
69 ret = VirtualAlloc(addr, size, MEM_RESERVE | (*commit ? MEM_COMMIT : 0), in os_pages_map()
79 ret = mmap(addr, size, prot, mmap_flags, -1, 0); in os_pages_map()
85 } else if (addr != NULL && ret != addr) { in os_pages_map()
93 assert(ret == NULL || (addr == NULL && ret != addr) || (addr != NULL && in os_pages_map()
94 ret == addr)); in os_pages_map()
99 os_pages_trim(void *addr, size_t alloc_size, size_t leadsize, size_t size, in os_pages_trim() argument
101 void *ret = (void *)((uintptr_t)addr + leadsize); in os_pages_trim()
105 os_pages_unmap(addr, alloc_size); in os_pages_trim()
118 os_pages_unmap(addr, leadsize); in os_pages_trim()
128 os_pages_unmap(void *addr, size_t size) { in os_pages_unmap() argument
129 assert(ALIGNMENT_ADDR2BASE(addr, os_page) == addr); in os_pages_unmap()
133 if (VirtualFree(addr, 0, MEM_RELEASE) == 0) in os_pages_unmap()
135 if (munmap(addr, size) == -1) in os_pages_unmap()
179 pages_map(void *addr, size_t size, size_t alignment, bool *commit) { in pages_map() argument
181 assert(ALIGNMENT_ADDR2BASE(addr, alignment) == addr); in pages_map()
197 void *ret = os_pages_map(addr, size, os_page, commit); in pages_map()
198 if (ret == NULL || ret == addr) { in pages_map()
201 assert(addr == NULL); in pages_map()
212 pages_unmap(void *addr, size_t size) { in pages_unmap() argument
213 assert(PAGE_ADDR2BASE(addr) == addr); in pages_unmap()
216 os_pages_unmap(addr, size); in pages_unmap()
220 pages_commit_impl(void *addr, size_t size, bool commit) { in pages_commit_impl() argument
221 assert(PAGE_ADDR2BASE(addr) == addr); in pages_commit_impl()
229 return (commit ? (addr != VirtualAlloc(addr, size, MEM_COMMIT, in pages_commit_impl()
230 PAGE_READWRITE)) : (!VirtualFree(addr, size, MEM_DECOMMIT))); in pages_commit_impl()
234 void *result = mmap(addr, size, prot, mmap_flags | MAP_FIXED, in pages_commit_impl()
239 if (result != addr) { in pages_commit_impl()
253 pages_commit(void *addr, size_t size) { in pages_commit() argument
254 return pages_commit_impl(addr, size, true); in pages_commit()
258 pages_decommit(void *addr, size_t size) { in pages_decommit() argument
259 return pages_commit_impl(addr, size, false); in pages_decommit()
263 pages_purge_lazy(void *addr, size_t size) { in pages_purge_lazy() argument
264 assert(PAGE_ADDR2BASE(addr) == addr); in pages_purge_lazy()
279 VirtualAlloc(addr, size, MEM_RESET, PAGE_READWRITE); in pages_purge_lazy()
282 return (madvise(addr, size, in pages_purge_lazy()
291 return (madvise(addr, size, MADV_DONTNEED) != 0); in pages_purge_lazy()
298 pages_purge_forced(void *addr, size_t size) { in pages_purge_forced() argument
299 assert(PAGE_ADDR2BASE(addr) == addr); in pages_purge_forced()
308 return (madvise(addr, size, MADV_DONTNEED) != 0); in pages_purge_forced()
311 return pages_commit(addr, size); in pages_purge_forced()
318 pages_huge_impl(void *addr, size_t size, bool aligned) { in pages_huge_impl() argument
320 assert(HUGEPAGE_ADDR2BASE(addr) == addr); in pages_huge_impl()
324 return (madvise(addr, size, MADV_HUGEPAGE) != 0); in pages_huge_impl()
331 pages_huge(void *addr, size_t size) { in pages_huge() argument
332 return pages_huge_impl(addr, size, true); in pages_huge()
336 pages_huge_unaligned(void *addr, size_t size) { in pages_huge_unaligned() argument
337 return pages_huge_impl(addr, size, false); in pages_huge_unaligned()
341 pages_nohuge_impl(void *addr, size_t size, bool aligned) { in pages_nohuge_impl() argument
343 assert(HUGEPAGE_ADDR2BASE(addr) == addr); in pages_nohuge_impl()
348 return (madvise(addr, size, MADV_NOHUGEPAGE) != 0); in pages_nohuge_impl()
355 pages_nohuge(void *addr, size_t size) { in pages_nohuge() argument
356 return pages_nohuge_impl(addr, size, true); in pages_nohuge()
360 pages_nohuge_unaligned(void *addr, size_t size) { in pages_nohuge_unaligned() argument
361 return pages_nohuge_impl(addr, size, false); in pages_nohuge_unaligned()
365 pages_dontdump(void *addr, size_t size) { in pages_dontdump() argument
366 assert(PAGE_ADDR2BASE(addr) == addr); in pages_dontdump()
369 return madvise(addr, size, MADV_DONTDUMP) != 0; in pages_dontdump()
376 pages_dodump(void *addr, size_t size) { in pages_dodump() argument
377 assert(PAGE_ADDR2BASE(addr) == addr); in pages_dodump()
380 return madvise(addr, size, MADV_DODUMP) != 0; in pages_dodump()