int memkind_default_get_size(struct memkind *kind, size_t *total, size_t *free) { nodemask_t nodemask; struct bitmask nodemask_bm = {NUMA_NUM_NODES, nodemask.n}; long long f; int err = 0; int i; *total = 0; *free = 0; if (kind->ops->get_mbind_nodemask) { err = kind->ops->get_mbind_nodemask(kind, nodemask.n, NUMA_NUM_NODES); } else { copy_bitmask_to_bitmask(numa_all_nodes_ptr, &nodemask_bm); } if (!err) { for (i = 0; i < NUMA_NUM_NODES; ++i) { if (numa_bitmask_isbitset(&nodemask_bm, i)) { *total += numa_node_size64(i, &f); *free += f; } } } return err; }
CPU_Set_t * CPU_GetPossible(void) { CPU_Set_t *cs = numa_allocate_cpumask(); copy_bitmask_to_bitmask(numa_all_cpus_ptr, cs); return cs; }
int memkind_default_get_mbind_nodemask(struct memkind *kind, unsigned long *nodemask, unsigned long maxnode) { struct bitmask nodemask_bm = {maxnode, nodemask}; copy_bitmask_to_bitmask(numa_all_nodes_ptr, &nodemask_bm); return 0; }
MEMKIND_EXPORT int memkind_regular_all_get_mbind_nodemask(struct memkind *kind, unsigned long *nodemask, unsigned long maxnode) { struct bitmask nodemask_bm = {maxnode, nodemask}; if(!regular_nodes_mask) { return MEMKIND_ERROR_UNAVAILABLE; } copy_bitmask_to_bitmask(regular_nodes_mask, &nodemask_bm); return MEMKIND_SUCCESS; }