diff options
Diffstat (limited to 'include/linux/mm.h')
-rw-r--r-- | include/linux/mm.h | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h index c31a9cd2a30e..2128ef7780c6 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h | |||
@@ -108,6 +108,7 @@ extern unsigned int kobjsize(const void *objp); | |||
108 | 108 | ||
109 | #define VM_CAN_NONLINEAR 0x08000000 /* Has ->fault & does nonlinear pages */ | 109 | #define VM_CAN_NONLINEAR 0x08000000 /* Has ->fault & does nonlinear pages */ |
110 | #define VM_MIXEDMAP 0x10000000 /* Can contain "struct page" and pure PFN pages */ | 110 | #define VM_MIXEDMAP 0x10000000 /* Can contain "struct page" and pure PFN pages */ |
111 | #define VM_SAO 0x20000000 /* Strong Access Ordering (powerpc) */ | ||
111 | 112 | ||
112 | #ifndef VM_STACK_DEFAULT_FLAGS /* arch can override this */ | 113 | #ifndef VM_STACK_DEFAULT_FLAGS /* arch can override this */ |
113 | #define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS | 114 | #define VM_STACK_DEFAULT_FLAGS VM_DATA_DEFAULT_FLAGS |
@@ -760,16 +761,17 @@ unsigned long unmap_vmas(struct mmu_gather **tlb, | |||
760 | * (see walk_page_range for more details) | 761 | * (see walk_page_range for more details) |
761 | */ | 762 | */ |
762 | struct mm_walk { | 763 | struct mm_walk { |
763 | int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, void *); | 764 | int (*pgd_entry)(pgd_t *, unsigned long, unsigned long, struct mm_walk *); |
764 | int (*pud_entry)(pud_t *, unsigned long, unsigned long, void *); | 765 | int (*pud_entry)(pud_t *, unsigned long, unsigned long, struct mm_walk *); |
765 | int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, void *); | 766 | int (*pmd_entry)(pmd_t *, unsigned long, unsigned long, struct mm_walk *); |
766 | int (*pte_entry)(pte_t *, unsigned long, unsigned long, void *); | 767 | int (*pte_entry)(pte_t *, unsigned long, unsigned long, struct mm_walk *); |
767 | int (*pte_hole)(unsigned long, unsigned long, void *); | 768 | int (*pte_hole)(unsigned long, unsigned long, struct mm_walk *); |
769 | struct mm_struct *mm; | ||
770 | void *private; | ||
768 | }; | 771 | }; |
769 | 772 | ||
770 | int walk_page_range(const struct mm_struct *, unsigned long addr, | 773 | int walk_page_range(unsigned long addr, unsigned long end, |
771 | unsigned long end, const struct mm_walk *walk, | 774 | struct mm_walk *walk); |
772 | void *private); | ||
773 | void free_pgd_range(struct mmu_gather **tlb, unsigned long addr, | 775 | void free_pgd_range(struct mmu_gather **tlb, unsigned long addr, |
774 | unsigned long end, unsigned long floor, unsigned long ceiling); | 776 | unsigned long end, unsigned long floor, unsigned long ceiling); |
775 | void free_pgtables(struct mmu_gather **tlb, struct vm_area_struct *start_vma, | 777 | void free_pgtables(struct mmu_gather **tlb, struct vm_area_struct *start_vma, |
@@ -997,8 +999,8 @@ extern void free_area_init_node(int nid, pg_data_t *pgdat, | |||
997 | extern void free_area_init_nodes(unsigned long *max_zone_pfn); | 999 | extern void free_area_init_nodes(unsigned long *max_zone_pfn); |
998 | extern void add_active_range(unsigned int nid, unsigned long start_pfn, | 1000 | extern void add_active_range(unsigned int nid, unsigned long start_pfn, |
999 | unsigned long end_pfn); | 1001 | unsigned long end_pfn); |
1000 | extern void shrink_active_range(unsigned int nid, unsigned long old_end_pfn, | 1002 | extern void remove_active_range(unsigned int nid, unsigned long start_pfn, |
1001 | unsigned long new_end_pfn); | 1003 | unsigned long end_pfn); |
1002 | extern void push_node_boundaries(unsigned int nid, unsigned long start_pfn, | 1004 | extern void push_node_boundaries(unsigned int nid, unsigned long start_pfn, |
1003 | unsigned long end_pfn); | 1005 | unsigned long end_pfn); |
1004 | extern void remove_all_active_ranges(void); | 1006 | extern void remove_all_active_ranges(void); |
@@ -1010,6 +1012,8 @@ extern unsigned long find_min_pfn_with_active_regions(void); | |||
1010 | extern unsigned long find_max_pfn_with_active_regions(void); | 1012 | extern unsigned long find_max_pfn_with_active_regions(void); |
1011 | extern void free_bootmem_with_active_regions(int nid, | 1013 | extern void free_bootmem_with_active_regions(int nid, |
1012 | unsigned long max_low_pfn); | 1014 | unsigned long max_low_pfn); |
1015 | typedef int (*work_fn_t)(unsigned long, unsigned long, void *); | ||
1016 | extern void work_with_active_regions(int nid, work_fn_t work_fn, void *data); | ||
1013 | extern void sparse_memory_present_with_active_regions(int nid); | 1017 | extern void sparse_memory_present_with_active_regions(int nid); |
1014 | #ifndef CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID | 1018 | #ifndef CONFIG_HAVE_ARCH_EARLY_PFN_TO_NID |
1015 | extern int early_pfn_to_nid(unsigned long pfn); | 1019 | extern int early_pfn_to_nid(unsigned long pfn); |
@@ -1023,6 +1027,7 @@ extern void mem_init(void); | |||
1023 | extern void show_mem(void); | 1027 | extern void show_mem(void); |
1024 | extern void si_meminfo(struct sysinfo * val); | 1028 | extern void si_meminfo(struct sysinfo * val); |
1025 | extern void si_meminfo_node(struct sysinfo *val, int nid); | 1029 | extern void si_meminfo_node(struct sysinfo *val, int nid); |
1030 | extern int after_bootmem; | ||
1026 | 1031 | ||
1027 | #ifdef CONFIG_NUMA | 1032 | #ifdef CONFIG_NUMA |
1028 | extern void setup_per_cpu_pageset(void); | 1033 | extern void setup_per_cpu_pageset(void); |