21 #define LIBNUMA_API_VERSION 2
27 #include <sys/types.h>
30 #if defined(__x86_64__) || defined(__i386__)
31 #define NUMA_NUM_NODES 128
33 #define NUMA_NUM_NODES 2048
70 tmp.
maskp = (
unsigned long *)mask;
79 tmp.
maskp = (
unsigned long *)mask;
86 mask->
n[node / (8*
sizeof(
unsigned long))] |=
87 (1UL<<(node%(8*
sizeof(
unsigned long))));
92 mask->
n[node / (8*
sizeof(
unsigned long))] &=
93 ~(1UL<<(node%(8*
sizeof(
unsigned long))));
100 if (mask->
n[node / (8*
sizeof(
unsigned long))] &
101 (1UL<<(node%(8*
sizeof(
unsigned long)))))
110 tmp_a.
maskp = (
unsigned long *)a;
113 tmp_b.
maskp = (
unsigned long *)b;
123 tmp_a.
maskp = (
unsigned long *)a;
126 tmp_b.
maskp = (
unsigned long *)b;
217 void *
numa_realloc(
void *old_addr,
size_t old_size,
size_t new_size);
310 const int *nodes,
int *
status,
int flags);
339 tmp.
maskp = (
unsigned long *)nodemask;
369 tmp.
maskp = (
unsigned long *)mask;
390 tmp.
maskp = (
unsigned long *)mask;
399 tmp.
maskp = (
unsigned long *)mask;
420 tmp.
maskp = (
unsigned long *)mask;
430 tmp.
maskp = (
unsigned long *)mask;
440 tmp.
maskp = (
unsigned long *)mask;
450 tmp.
maskp = (
unsigned long *)mask;
460 tmp.
maskp = (
unsigned long *)buffer;
461 tmp.
size = buffer_len * 8;
471 #ifdef NUMA_VERSION1_COMPATIBILITY
472 #include <numacompat1.h>
struct bitmask * numa_all_nodes_ptr
unsigned long n[2048/(sizeof(unsigned long)*8)]
struct bitmask * numa_nodes_ptr
static void * numa_alloc_interleaved_subset_compat(size_t size, const nodemask_t *mask)
unsigned int numa_bitmask_nbytes(struct bitmask *)
void * numa_alloc_interleaved(size_t size)
struct bitmask * numa_allocate_nodemask(void)
static int nodemask_equal_compat(const nodemask_t *a, const nodemask_t *b)
static void nodemask_clr_compat(nodemask_t *mask, int node)
void numa_bitmask_free(struct bitmask *)
int numa_run_on_node(int node)
static nodemask_t numa_get_membind_compat()
void numa_free(void *mem, size_t size)
int numa_run_on_node_mask_all(struct bitmask *mask)
struct bitmask * numa_parse_nodestring(const char *)
int numa_sched_getaffinity(pid_t, struct bitmask *)
void numa_tonodemask_memory(void *mem, size_t size, struct bitmask *mask)
void numa_set_membind(struct bitmask *nodemask)
int numa_max_possible_node(void)
struct bitmask * numa_all_cpus_ptr
FileStatus status(const Path &p)
Returns the status of the file.
void copy_bitmask_to_bitmask(struct bitmask *, struct bitmask *)
long numa_node_size(int node, long *freep)
struct bitmask * numa_bitmask_clearbit(struct bitmask *, unsigned int)
void copy_bitmask_to_nodemask(struct bitmask *, nodemask_t *)
struct bitmask * numa_bitmask_clearall(struct bitmask *)
static int numa_run_on_node_mask_compat(const nodemask_t *mask)
int numa_num_thread_cpus()
int numa_bitmask_isbitset(const struct bitmask *, unsigned int)
int numa_node_of_cpu(int cpu)
void numa_bind(struct bitmask *nodes)
int numa_num_configured_nodes()
void * numa_alloc_interleaved_subset(size_t size, struct bitmask *nodemask)
struct bitmask * numa_allocate_cpumask()
void * numa_alloc(size_t size)
struct bitmask * numa_get_interleave_mask(void)
void numa_tonode_memory(void *start, size_t size, int node)
static int numa_sched_getaffinity_compat(pid_t pid, unsigned len, unsigned long *mask)
int numa_num_configured_cpus()
static void nodemask_zero(nodemask_t *mask)
int numa_bitmask_equal(const struct bitmask *, const struct bitmask *)
void numa_set_bind_policy(int strict)
int numa_node_to_cpus(int, struct bitmask *)
int numa_num_possible_nodes()
struct bitmask * numa_get_run_node_mask(void)
int numa_sched_setaffinity(pid_t, struct bitmask *)
void numa_setlocal_memory(void *start, size_t size)
static int nodemask_isset_compat(const nodemask_t *mask, int node)
static void numa_bind_compat(nodemask_t *mask)
void numa_warn(int num, char *fmt,...)
void numa_set_localalloc(void)
void * numa_realloc(void *old_addr, size_t old_size, size_t new_size)
void * numa_alloc_onnode(size_t size, int node)
int numa_num_task_nodes()
struct bitmask * numa_bitmask_setall(struct bitmask *)
int numa_migrate_pages(int pid, struct bitmask *from, struct bitmask *to)
static void nodemask_set_compat(nodemask_t *mask, int node)
static int numa_sched_setaffinity_compat(pid_t pid, unsigned len, unsigned long *mask)
struct bitmask * numa_bitmask_alloc(unsigned int)
static int nodemask_equal(const nodemask_t *a, const nodemask_t *b)
void numa_error(char *where)
static void numa_free_nodemask(struct bitmask *b)
int numa_move_pages(int pid, unsigned long count, void **pages, const int *nodes, int *status, int flags)
void copy_nodemask_to_bitmask(nodemask_t *, struct bitmask *)
unsigned int numa_bitmask_weight(const struct bitmask *)
static void numa_interleave_memory_compat(void *mem, size_t size, const nodemask_t *mask)
static void numa_free_cpumask(struct bitmask *b)
static void numa_tonodemask_memory_compat(void *mem, size_t size, const nodemask_t *mask)
static nodemask_t numa_get_interleave_mask_compat()
struct bitmask * numa_parse_cpustring(const char *)
struct bitmask * numa_get_mems_allowed(void)
static nodemask_t numa_get_run_node_mask_compat()
int numa_get_interleave_node(void)
void numa_set_strict(int flag)
struct bitmask * numa_no_nodes_ptr
static void numa_set_membind_compat(nodemask_t *mask)
void numa_set_preferred(int node)
struct bitmask * numa_bitmask_setbit(struct bitmask *, unsigned int)
int numa_num_thread_nodes()
static void nodemask_zero_compat(nodemask_t *mask)
static int numa_node_to_cpus_compat(int node, unsigned long *buffer, int buffer_len)
static void numa_set_interleave_mask_compat(nodemask_t *nodemask)
int numa_run_on_node_mask(struct bitmask *mask)
void numa_police_memory(void *start, size_t size)
void numa_set_interleave_mask(struct bitmask *nodemask)
void numa_interleave_memory(void *mem, size_t size, struct bitmask *mask)
long long numa_node_size64(int node, long long *freep)
int numa_distance(int node1, int node2)
nodemask_t numa_all_nodes
struct bitmask * numa_parse_cpustring_all(const char *)
struct bitmask * numa_get_membind(void)
int numa_num_possible_cpus()
struct bitmask * numa_parse_nodestring_all(const char *)
void * numa_alloc_local(size_t size)