Lines Matching full:size

23 /* Actual operating system page size, detected during bootstrap, <= PAGE. */
51 static void os_pages_unmap(void *addr, size_t size);
56 os_pages_map(void *addr, size_t size, size_t alignment, bool *commit) {
58 assert(ALIGNMENT_CEILING(size, os_page) == size);
59 assert(size != 0);
71 ret = VirtualAlloc(addr, size, MEM_RESERVE | (*commit ? MEM_COMMIT : 0),
81 ret = mmap(addr, size, prot, mmap_flags, -1, 0);
91 os_pages_unmap(ret, size);
101 os_pages_trim(void *addr, size_t alloc_size, size_t leadsize, size_t size,
105 assert(alloc_size >= leadsize + size);
108 void *new_addr = os_pages_map(ret, size, PAGE, commit);
113 os_pages_unmap(new_addr, size);
117 size_t trailsize = alloc_size - leadsize - size;
123 os_pages_unmap((void *)((uintptr_t)ret + size), trailsize);
130 os_pages_unmap(void *addr, size_t size) {
132 assert(ALIGNMENT_CEILING(size, os_page) == size);
137 if (munmap(addr, size) == -1)
157 pages_map_slow(size_t size, size_t alignment, bool *commit) {
158 size_t alloc_size = size + alignment - os_page;
160 if (alloc_size < size) {
172 ret = os_pages_trim(pages, alloc_size, leadsize, size, commit);
181 pages_map(void *addr, size_t size, size_t alignment, bool *commit) {
206 void *ret = mmap(addr, size, prot, flags, -1, 0);
228 void *ret = os_pages_map(addr, size, os_page, commit);
234 os_pages_unmap(ret, size);
235 return pages_map_slow(size, alignment, commit);
243 pages_unmap(void *addr, size_t size) {
245 assert(PAGE_CEILING(size) == size);
247 os_pages_unmap(addr, size);
251 pages_commit_impl(void *addr, size_t size, bool commit) {
253 assert(PAGE_CEILING(size) == size);
260 return (commit ? (addr != VirtualAlloc(addr, size, MEM_COMMIT,
261 PAGE_READWRITE)) : (!VirtualFree(addr, size, MEM_DECOMMIT)));
265 void *result = mmap(addr, size, prot, mmap_flags | MAP_FIXED,
275 os_pages_unmap(result, size);
284 pages_commit(void *addr, size_t size) {
285 return pages_commit_impl(addr, size, true);
289 pages_decommit(void *addr, size_t size) {
290 return pages_commit_impl(addr, size, false);
294 pages_purge_lazy(void *addr, size_t size) {
296 assert(PAGE_CEILING(size) == size);
310 VirtualAlloc(addr, size, MEM_RESET, PAGE_READWRITE);
313 return (madvise(addr, size,
322 return (madvise(addr, size, MADV_DONTNEED) != 0);
329 pages_purge_forced(void *addr, size_t size) {
331 assert(PAGE_CEILING(size) == size);
339 return (madvise(addr, size, MADV_DONTNEED) != 0);
342 return pages_commit(addr, size);
349 pages_huge_impl(void *addr, size_t size, bool aligned) {
352 assert(HUGEPAGE_CEILING(size) == size);
355 return (madvise(addr, size, MADV_HUGEPAGE) != 0);
362 pages_huge(void *addr, size_t size) {
363 return pages_huge_impl(addr, size, true);
367 pages_huge_unaligned(void *addr, size_t size) {
368 return pages_huge_impl(addr, size, false);
372 pages_nohuge_impl(void *addr, size_t size, bool aligned) {
375 assert(HUGEPAGE_CEILING(size) == size);
379 return (madvise(addr, size, MADV_NOHUGEPAGE) != 0);
386 pages_nohuge(void *addr, size_t size) {
387 return pages_nohuge_impl(addr, size, true);
391 pages_nohuge_unaligned(void *addr, size_t size) {
392 return pages_nohuge_impl(addr, size, false);
396 pages_dontdump(void *addr, size_t size) {
398 assert(PAGE_CEILING(size) == size);
400 return madvise(addr, size, MADV_DONTDUMP) != 0;
407 pages_dodump(void *addr, size_t size) {
409 assert(PAGE_CEILING(size) == size);
411 return madvise(addr, size, MADV_DODUMP) != 0;
537 pages_set_thp_state (void *ptr, size_t size) {
547 pages_huge_unaligned(ptr, size);
551 pages_nohuge_unaligned(ptr, size);
609 malloc_write("<jemalloc>: Unsupported system page size\n");