forked from numactl/numactl
-
Notifications
You must be signed in to change notification settings - Fork 1
/
numaif.h
61 lines (50 loc) · 2.01 KB
/
numaif.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
#ifndef NUMAIF_H
#define NUMAIF_H 1
#ifdef __cplusplus
extern "C" {
#endif
/* Kernel interface for NUMA API */
/* System calls */
extern long get_mempolicy(int *mode, unsigned long *nmask,
unsigned long maxnode, void *addr, unsigned flags);
extern long mbind(void *start, unsigned long len, int mode,
const unsigned long *nmask, unsigned long maxnode, unsigned flags);
extern long set_mempolicy(int mode, const unsigned long *nmask,
unsigned long maxnode);
extern long migrate_pages(int pid, unsigned long maxnode,
const unsigned long *frommask,
const unsigned long *tomask);
extern long move_pages(int pid, unsigned long count,
void **pages, const int *nodes, int *status, int flags);
extern long set_mempolicy_node_weight(const unsigned int *weights,
unsigned int weight_count,
unsigned long flags);
extern long mrange_node_weight(void* start, unsigned long len,
const unsigned int* weights,
unsigned int weight_count, unsigned long flags);
/* Policies */
#define MPOL_DEFAULT 0
#define MPOL_PREFERRED 1
#define MPOL_BIND 2
#define MPOL_INTERLEAVE 3
#define MPOL_LOCAL 4
#define MPOL_PREFERRED_MANY 5
#define MPOL_INTERLEAVE_WEIGHT 6
#define MPOL_MAX 7
/* Flags for set_mempolicy, specified in mode */
#define MPOL_F_NUMA_BALANCING (1 << 13) /* Optimize with NUMA balancing if possible */
#define MPOL_F_AUTO_WEIGHT (1 << 12)
/* Flags for get_mem_policy */
#define MPOL_F_NODE (1<<0) /* return next il node or node of address */
/* Warning: MPOL_F_NODE is unsupported and
subject to change. Don't use. */
#define MPOL_F_ADDR (1<<1) /* look up vma using address */
#define MPOL_F_MEMS_ALLOWED (1<<2) /* query nodes allowed in cpuset */
/* Flags for mbind */
#define MPOL_MF_STRICT (1<<0) /* Verify existing pages in the mapping */
#define MPOL_MF_MOVE (1<<1) /* Move pages owned by this process to conform to mapping */
#define MPOL_MF_MOVE_ALL (1<<2) /* Move every page to conform to mapping */
#ifdef __cplusplus
}
#endif
#endif