void *numa_alloc_interleaved(size_t size, struct bitmask* bmp)
{
char *mem;
mem = mmap(0, size, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, 0, 0);
if (mem == (char *)-1)
return NULL;
if (mbind(mem, size, MPOL_INTERLEAVE, bmp ? bmp->maskkp : NULL, bmp ? bmp->size + 1 : 0, 0) < 0))
return NULL;
return mem;
}
void numa_free(void *mem, size_t size)
{
munmap(mem, size);
}




