xref: /utopia/UTPA2-700.0.x/projects/tools/lint/mips-linux-gnu_include/linux/mempolicy.h (revision 53ee8cc121a030b8d368113ac3e966b4705770ef)
1*53ee8cc1Swenshuai.xi #ifndef _LINUX_MEMPOLICY_H
2*53ee8cc1Swenshuai.xi #define _LINUX_MEMPOLICY_H 1
3*53ee8cc1Swenshuai.xi 
4*53ee8cc1Swenshuai.xi #include <linux/errno.h>
5*53ee8cc1Swenshuai.xi 
6*53ee8cc1Swenshuai.xi /*
7*53ee8cc1Swenshuai.xi  * NUMA memory policies for Linux.
8*53ee8cc1Swenshuai.xi  * Copyright 2003,2004 Andi Kleen SuSE Labs
9*53ee8cc1Swenshuai.xi  */
10*53ee8cc1Swenshuai.xi 
11*53ee8cc1Swenshuai.xi /*
12*53ee8cc1Swenshuai.xi  * Both the MPOL_* mempolicy mode and the MPOL_F_* optional mode flags are
13*53ee8cc1Swenshuai.xi  * passed by the user to either set_mempolicy() or mbind() in an 'int' actual.
14*53ee8cc1Swenshuai.xi  * The MPOL_MODE_FLAGS macro determines the legal set of optional mode flags.
15*53ee8cc1Swenshuai.xi  */
16*53ee8cc1Swenshuai.xi 
17*53ee8cc1Swenshuai.xi /* Policies */
18*53ee8cc1Swenshuai.xi enum {
19*53ee8cc1Swenshuai.xi 	MPOL_DEFAULT,
20*53ee8cc1Swenshuai.xi 	MPOL_PREFERRED,
21*53ee8cc1Swenshuai.xi 	MPOL_BIND,
22*53ee8cc1Swenshuai.xi 	MPOL_INTERLEAVE,
23*53ee8cc1Swenshuai.xi 	MPOL_MAX,	/* always last member of enum */
24*53ee8cc1Swenshuai.xi };
25*53ee8cc1Swenshuai.xi 
26*53ee8cc1Swenshuai.xi /* Flags for set_mempolicy */
27*53ee8cc1Swenshuai.xi #define MPOL_F_STATIC_NODES	(1 << 15)
28*53ee8cc1Swenshuai.xi #define MPOL_F_RELATIVE_NODES	(1 << 14)
29*53ee8cc1Swenshuai.xi 
30*53ee8cc1Swenshuai.xi /*
31*53ee8cc1Swenshuai.xi  * MPOL_MODE_FLAGS is the union of all possible optional mode flags passed to
32*53ee8cc1Swenshuai.xi  * either set_mempolicy() or mbind().
33*53ee8cc1Swenshuai.xi  */
34*53ee8cc1Swenshuai.xi #define MPOL_MODE_FLAGS	(MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES)
35*53ee8cc1Swenshuai.xi 
36*53ee8cc1Swenshuai.xi /* Flags for get_mempolicy */
37*53ee8cc1Swenshuai.xi #define MPOL_F_NODE	(1<<0)	/* return next IL mode instead of node mask */
38*53ee8cc1Swenshuai.xi #define MPOL_F_ADDR	(1<<1)	/* look up vma using address */
39*53ee8cc1Swenshuai.xi #define MPOL_F_MEMS_ALLOWED (1<<2) /* return allowed memories */
40*53ee8cc1Swenshuai.xi 
41*53ee8cc1Swenshuai.xi /* Flags for mbind */
42*53ee8cc1Swenshuai.xi #define MPOL_MF_STRICT	(1<<0)	/* Verify existing pages in the mapping */
43*53ee8cc1Swenshuai.xi #define MPOL_MF_MOVE	(1<<1)	/* Move pages owned by this process to conform to mapping */
44*53ee8cc1Swenshuai.xi #define MPOL_MF_MOVE_ALL (1<<2)	/* Move every page to conform to mapping */
45*53ee8cc1Swenshuai.xi #define MPOL_MF_INTERNAL (1<<3)	/* Internal flags start here */
46*53ee8cc1Swenshuai.xi 
47*53ee8cc1Swenshuai.xi /*
48*53ee8cc1Swenshuai.xi  * Internal flags that share the struct mempolicy flags word with
49*53ee8cc1Swenshuai.xi  * "mode flags".  These flags are allocated from bit 0 up, as they
50*53ee8cc1Swenshuai.xi  * are never OR'ed into the mode in mempolicy API arguments.
51*53ee8cc1Swenshuai.xi  */
52*53ee8cc1Swenshuai.xi #define MPOL_F_SHARED  (1 << 0)	/* identify shared policies */
53*53ee8cc1Swenshuai.xi #define MPOL_F_LOCAL   (1 << 1)	/* preferred local allocation */
54*53ee8cc1Swenshuai.xi 
55*53ee8cc1Swenshuai.xi 
56*53ee8cc1Swenshuai.xi #endif
57