diff options
author | Srikant Patnaik | 2015-01-11 12:28:04 +0530 |
---|---|---|
committer | Srikant Patnaik | 2015-01-11 12:28:04 +0530 |
commit | 871480933a1c28f8a9fed4c4d34d06c439a7a422 (patch) | |
tree | 8718f573808810c2a1e8cb8fb6ac469093ca2784 /ANDROID_3.4.5/include/linux/mempolicy.h | |
parent | 9d40ac5867b9aefe0722bc1f110b965ff294d30d (diff) | |
download | FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.gz FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.tar.bz2 FOSSEE-netbook-kernel-source-871480933a1c28f8a9fed4c4d34d06c439a7a422.zip |
Moved, renamed, and deleted files
The original directory structure was scattered and unorganized.
Changes are basically to make it look like kernel structure.
Diffstat (limited to 'ANDROID_3.4.5/include/linux/mempolicy.h')
-rw-r--r-- | ANDROID_3.4.5/include/linux/mempolicy.h | 385 |
1 files changed, 0 insertions, 385 deletions
diff --git a/ANDROID_3.4.5/include/linux/mempolicy.h b/ANDROID_3.4.5/include/linux/mempolicy.h deleted file mode 100644 index 7c727a90..00000000 --- a/ANDROID_3.4.5/include/linux/mempolicy.h +++ /dev/null @@ -1,385 +0,0 @@ -#ifndef _LINUX_MEMPOLICY_H -#define _LINUX_MEMPOLICY_H 1 - -#include <linux/errno.h> - -/* - * NUMA memory policies for Linux. - * Copyright 2003,2004 Andi Kleen SuSE Labs - */ - -/* - * Both the MPOL_* mempolicy mode and the MPOL_F_* optional mode flags are - * passed by the user to either set_mempolicy() or mbind() in an 'int' actual. - * The MPOL_MODE_FLAGS macro determines the legal set of optional mode flags. - */ - -/* Policies */ -enum { - MPOL_DEFAULT, - MPOL_PREFERRED, - MPOL_BIND, - MPOL_INTERLEAVE, - MPOL_MAX, /* always last member of enum */ -}; - -enum mpol_rebind_step { - MPOL_REBIND_ONCE, /* do rebind work at once(not by two step) */ - MPOL_REBIND_STEP1, /* first step(set all the newly nodes) */ - MPOL_REBIND_STEP2, /* second step(clean all the disallowed nodes)*/ - MPOL_REBIND_NSTEP, -}; - -/* Flags for set_mempolicy */ -#define MPOL_F_STATIC_NODES (1 << 15) -#define MPOL_F_RELATIVE_NODES (1 << 14) - -/* - * MPOL_MODE_FLAGS is the union of all possible optional mode flags passed to - * either set_mempolicy() or mbind(). - */ -#define MPOL_MODE_FLAGS (MPOL_F_STATIC_NODES | MPOL_F_RELATIVE_NODES) - -/* Flags for get_mempolicy */ -#define MPOL_F_NODE (1<<0) /* return next IL mode instead of node mask */ -#define MPOL_F_ADDR (1<<1) /* look up vma using address */ -#define MPOL_F_MEMS_ALLOWED (1<<2) /* return allowed memories */ - -/* 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 */ -#define MPOL_MF_INTERNAL (1<<3) /* Internal flags start here */ - -/* - * Internal flags that share the struct mempolicy flags word with - * "mode flags". These flags are allocated from bit 0 up, as they - * are never OR'ed into the mode in mempolicy API arguments. - */ -#define MPOL_F_SHARED (1 << 0) /* identify shared policies */ -#define MPOL_F_LOCAL (1 << 1) /* preferred local allocation */ -#define MPOL_F_REBINDING (1 << 2) /* identify policies in rebinding */ - -#ifdef __KERNEL__ - -#include <linux/mmzone.h> -#include <linux/slab.h> -#include <linux/rbtree.h> -#include <linux/spinlock.h> -#include <linux/nodemask.h> -#include <linux/pagemap.h> - -struct mm_struct; - -#ifdef CONFIG_NUMA - -/* - * Describe a memory policy. - * - * A mempolicy can be either associated with a process or with a VMA. - * For VMA related allocations the VMA policy is preferred, otherwise - * the process policy is used. Interrupts ignore the memory policy - * of the current process. - * - * Locking policy for interlave: - * In process context there is no locking because only the process accesses - * its own state. All vma manipulation is somewhat protected by a down_read on - * mmap_sem. - * - * Freeing policy: - * Mempolicy objects are reference counted. A mempolicy will be freed when - * mpol_put() decrements the reference count to zero. - * - * Duplicating policy objects: - * mpol_dup() allocates a new mempolicy and copies the specified mempolicy - * to the new storage. The reference count of the new object is initialized - * to 1, representing the caller of mpol_dup(). - */ -struct mempolicy { - atomic_t refcnt; - unsigned short mode; /* See MPOL_* above */ - unsigned short flags; /* See set_mempolicy() MPOL_F_* above */ - union { - short preferred_node; /* preferred */ - nodemask_t nodes; /* interleave/bind */ - /* undefined for default */ - } v; - union { - nodemask_t cpuset_mems_allowed; /* relative to these nodes */ - nodemask_t user_nodemask; /* nodemask passed by user */ - } w; -}; - -/* - * Support for managing mempolicy data objects (clone, copy, destroy) - * The default fast path of a NULL MPOL_DEFAULT policy is always inlined. - */ - -extern void __mpol_put(struct mempolicy *pol); -static inline void mpol_put(struct mempolicy *pol) -{ - if (pol) - __mpol_put(pol); -} - -/* - * Does mempolicy pol need explicit unref after use? - * Currently only needed for shared policies. - */ -static inline int mpol_needs_cond_ref(struct mempolicy *pol) -{ - return (pol && (pol->flags & MPOL_F_SHARED)); -} - -static inline void mpol_cond_put(struct mempolicy *pol) -{ - if (mpol_needs_cond_ref(pol)) - __mpol_put(pol); -} - -extern struct mempolicy *__mpol_cond_copy(struct mempolicy *tompol, - struct mempolicy *frompol); -static inline struct mempolicy *mpol_cond_copy(struct mempolicy *tompol, - struct mempolicy *frompol) -{ - if (!frompol) - return frompol; - return __mpol_cond_copy(tompol, frompol); -} - -extern struct mempolicy *__mpol_dup(struct mempolicy *pol); -static inline struct mempolicy *mpol_dup(struct mempolicy *pol) -{ - if (pol) - pol = __mpol_dup(pol); - return pol; -} - -#define vma_policy(vma) ((vma)->vm_policy) -#define vma_set_policy(vma, pol) ((vma)->vm_policy = (pol)) - -static inline void mpol_get(struct mempolicy *pol) -{ - if (pol) - atomic_inc(&pol->refcnt); -} - -extern bool __mpol_equal(struct mempolicy *a, struct mempolicy *b); -static inline bool mpol_equal(struct mempolicy *a, struct mempolicy *b) -{ - if (a == b) - return true; - return __mpol_equal(a, b); -} - -/* - * Tree of shared policies for a shared memory region. - * Maintain the policies in a pseudo mm that contains vmas. The vmas - * carry the policy. As a special twist the pseudo mm is indexed in pages, not - * bytes, so that we can work with shared memory segments bigger than - * unsigned long. - */ - -struct sp_node { - struct rb_node nd; - unsigned long start, end; - struct mempolicy *policy; -}; - -struct shared_policy { - struct rb_root root; - spinlock_t lock; -}; - -void mpol_shared_policy_init(struct shared_policy *sp, struct mempolicy *mpol); -int mpol_set_shared_policy(struct shared_policy *info, - struct vm_area_struct *vma, - struct mempolicy *new); -void mpol_free_shared_policy(struct shared_policy *p); -struct mempolicy *mpol_shared_policy_lookup(struct shared_policy *sp, - unsigned long idx); - -struct mempolicy *get_vma_policy(struct task_struct *tsk, - struct vm_area_struct *vma, unsigned long addr); - -extern void numa_default_policy(void); -extern void numa_policy_init(void); -extern void mpol_rebind_task(struct task_struct *tsk, const nodemask_t *new, - enum mpol_rebind_step step); -extern void mpol_rebind_mm(struct mm_struct *mm, nodemask_t *new); -extern void mpol_fix_fork_child_flag(struct task_struct *p); - -extern struct zonelist *huge_zonelist(struct vm_area_struct *vma, - unsigned long addr, gfp_t gfp_flags, - struct mempolicy **mpol, nodemask_t **nodemask); -extern bool init_nodemask_of_mempolicy(nodemask_t *mask); -extern bool mempolicy_nodemask_intersects(struct task_struct *tsk, - const nodemask_t *mask); -extern unsigned slab_node(struct mempolicy *policy); - -extern enum zone_type policy_zone; - -static inline void check_highest_zone(enum zone_type k) -{ - if (k > policy_zone && k != ZONE_MOVABLE) - policy_zone = k; -} - -int do_migrate_pages(struct mm_struct *mm, - const nodemask_t *from_nodes, const nodemask_t *to_nodes, int flags); - - -#ifdef CONFIG_TMPFS -extern int mpol_parse_str(char *str, struct mempolicy **mpol, int no_context); -#endif - -extern int mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol, - int no_context); - -/* Check if a vma is migratable */ -static inline int vma_migratable(struct vm_area_struct *vma) -{ - if (vma->vm_flags & (VM_IO|VM_HUGETLB|VM_PFNMAP|VM_RESERVED)) - return 0; - /* - * Migration allocates pages in the highest zone. If we cannot - * do so then migration (at least from node to node) is not - * possible. - */ - if (vma->vm_file && - gfp_zone(mapping_gfp_mask(vma->vm_file->f_mapping)) - < policy_zone) - return 0; - return 1; -} - -#else - -struct mempolicy {}; - -static inline bool mpol_equal(struct mempolicy *a, struct mempolicy *b) -{ - return true; -} - -static inline void mpol_put(struct mempolicy *p) -{ -} - -static inline void mpol_cond_put(struct mempolicy *pol) -{ -} - -static inline struct mempolicy *mpol_cond_copy(struct mempolicy *to, - struct mempolicy *from) -{ - return from; -} - -static inline void mpol_get(struct mempolicy *pol) -{ -} - -static inline struct mempolicy *mpol_dup(struct mempolicy *old) -{ - return NULL; -} - -struct shared_policy {}; - -static inline int mpol_set_shared_policy(struct shared_policy *info, - struct vm_area_struct *vma, - struct mempolicy *new) -{ - return -EINVAL; -} - -static inline void mpol_shared_policy_init(struct shared_policy *sp, - struct mempolicy *mpol) -{ -} - -static inline void mpol_free_shared_policy(struct shared_policy *p) -{ -} - -static inline struct mempolicy * -mpol_shared_policy_lookup(struct shared_policy *sp, unsigned long idx) -{ - return NULL; -} - -#define vma_policy(vma) NULL -#define vma_set_policy(vma, pol) do {} while(0) - -static inline void numa_policy_init(void) -{ -} - -static inline void numa_default_policy(void) -{ -} - -static inline void mpol_rebind_task(struct task_struct *tsk, - const nodemask_t *new, - enum mpol_rebind_step step) -{ -} - -static inline void mpol_rebind_mm(struct mm_struct *mm, nodemask_t *new) -{ -} - -static inline void mpol_fix_fork_child_flag(struct task_struct *p) -{ -} - -static inline struct zonelist *huge_zonelist(struct vm_area_struct *vma, - unsigned long addr, gfp_t gfp_flags, - struct mempolicy **mpol, nodemask_t **nodemask) -{ - *mpol = NULL; - *nodemask = NULL; - return node_zonelist(0, gfp_flags); -} - -static inline bool init_nodemask_of_mempolicy(nodemask_t *m) -{ - return false; -} - -static inline bool mempolicy_nodemask_intersects(struct task_struct *tsk, - const nodemask_t *mask) -{ - return false; -} - -static inline int do_migrate_pages(struct mm_struct *mm, - const nodemask_t *from_nodes, - const nodemask_t *to_nodes, int flags) -{ - return 0; -} - -static inline void check_highest_zone(int k) -{ -} - -#ifdef CONFIG_TMPFS -static inline int mpol_parse_str(char *str, struct mempolicy **mpol, - int no_context) -{ - return 1; /* error */ -} -#endif - -static inline int mpol_to_str(char *buffer, int maxlen, struct mempolicy *pol, - int no_context) -{ - return 0; -} - -#endif /* CONFIG_NUMA */ -#endif /* __KERNEL__ */ - -#endif |