| 866 | } |
| 867 | |
| 868 | static void * |
| 869 | alloc_mem(size_t memsz, size_t pgsz, bool huge) |
| 870 | { |
| 871 | void *addr; |
| 872 | int flags; |
| 873 | |
| 874 | /* allocate anonymous hugepages */ |
| 875 | flags = MAP_ANONYMOUS | MAP_PRIVATE; |
| 876 | if (huge) |
| 877 | flags |= HUGE_FLAG | pagesz_flags(pgsz); |
| 878 | |
| 879 | addr = mmap(NULL, memsz, PROT_READ | PROT_WRITE, flags, -1, 0); |
| 880 | if (addr == MAP_FAILED) |
| 881 | return NULL; |
| 882 | |
| 883 | return addr; |
| 884 | } |
| 885 | |
| 886 | struct extmem_param { |
| 887 | void *addr; |
no test coverage detected