aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/mempolicy.h
diff options
context:
space:
mode:
authorDavid Rientjes <rientjes@google.com>2008-04-28 05:12:23 -0400
committerLinus Torvalds <torvalds@linux-foundation.org>2008-04-28 11:58:19 -0400
commita3b51e0142d1be156ac697eaadadd6cfbb7ba32b (patch)
treeda9e527316f112c09f0bc16553c64e3c87125c82 /include/linux/mempolicy.h
parent1b27d05b6e21249d2338be26dfcbe8f8d8ff8a5b (diff)
mempolicy: convert MPOL constants to enum
The mempolicy mode constants, MPOL_DEFAULT, MPOL_PREFERRED, MPOL_BIND, and MPOL_INTERLEAVE, are better declared as part of an enum since they are sequentially numbered and cannot be combined. The policy member of struct mempolicy is also converted from type short to type unsigned short. A negative policy does not have any legitimate meaning, so it is possible to change its type in preparation for adding optional mode flags later. The equivalent member of struct shmem_sb_info is also changed from int to unsigned short. For compatibility, the policy formal to get_mempolicy() remains as a pointer to an int: int get_mempolicy(int *policy, unsigned long *nmask, unsigned long maxnode, unsigned long addr, unsigned long flags); although the only possible values is the range of type unsigned short. Cc: Paul Jackson <pj@sgi.com> Cc: Christoph Lameter <clameter@sgi.com> Cc: Lee Schermerhorn <Lee.Schermerhorn@hp.com> Cc: Andi Kleen <ak@suse.de> Signed-off-by: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/mempolicy.h')
-rw-r--r--include/linux/mempolicy.h19
1 files changed, 10 insertions, 9 deletions
diff --git a/include/linux/mempolicy.h b/include/linux/mempolicy.h
index b8b3da7a3315..389a06e8ee21 100644
--- a/include/linux/mempolicy.h
+++ b/include/linux/mempolicy.h
@@ -9,12 +9,13 @@
9 */ 9 */
10 10
11/* Policies */ 11/* Policies */
12#define MPOL_DEFAULT 0 12enum {
13#define MPOL_PREFERRED 1 13 MPOL_DEFAULT,
14#define MPOL_BIND 2 14 MPOL_PREFERRED,
15#define MPOL_INTERLEAVE 3 15 MPOL_BIND,
16 16 MPOL_INTERLEAVE,
17#define MPOL_MAX MPOL_INTERLEAVE 17 MPOL_MAX, /* always last member of enum */
18};
18 19
19/* Flags for get_mem_policy */ 20/* Flags for get_mem_policy */
20#define MPOL_F_NODE (1<<0) /* return next IL mode instead of node mask */ 21#define MPOL_F_NODE (1<<0) /* return next IL mode instead of node mask */
@@ -64,7 +65,7 @@ struct mm_struct;
64 */ 65 */
65struct mempolicy { 66struct mempolicy {
66 atomic_t refcnt; 67 atomic_t refcnt;
67 short policy; /* See MPOL_* above */ 68 unsigned short policy; /* See MPOL_* above */
68 union { 69 union {
69 short preferred_node; /* preferred */ 70 short preferred_node; /* preferred */
70 nodemask_t nodes; /* interleave/bind */ 71 nodemask_t nodes; /* interleave/bind */
@@ -134,7 +135,7 @@ struct shared_policy {
134 spinlock_t lock; 135 spinlock_t lock;
135}; 136};
136 137
137void mpol_shared_policy_init(struct shared_policy *info, int policy, 138void mpol_shared_policy_init(struct shared_policy *info, unsigned short policy,
138 nodemask_t *nodes); 139 nodemask_t *nodes);
139int mpol_set_shared_policy(struct shared_policy *info, 140int mpol_set_shared_policy(struct shared_policy *info,
140 struct vm_area_struct *vma, 141 struct vm_area_struct *vma,
@@ -202,7 +203,7 @@ static inline int mpol_set_shared_policy(struct shared_policy *info,
202} 203}
203 204
204static inline void mpol_shared_policy_init(struct shared_policy *info, 205static inline void mpol_shared_policy_init(struct shared_policy *info,
205 int policy, nodemask_t *nodes) 206 unsigned short policy, nodemask_t *nodes)
206{ 207{
207} 208}
208 209