diff options
Diffstat (limited to 'include/linux/vmalloc.h')
| -rw-r--r-- | include/linux/vmalloc.h | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/include/linux/vmalloc.h b/include/linux/vmalloc.h index 4ed6fcd6b726..9332e52ea8c2 100644 --- a/include/linux/vmalloc.h +++ b/include/linux/vmalloc.h | |||
| @@ -95,10 +95,27 @@ extern struct vm_struct *remove_vm_area(const void *addr); | |||
| 95 | 95 | ||
| 96 | extern int map_vm_area(struct vm_struct *area, pgprot_t prot, | 96 | extern int map_vm_area(struct vm_struct *area, pgprot_t prot, |
| 97 | struct page ***pages); | 97 | struct page ***pages); |
| 98 | #ifdef CONFIG_MMU | ||
| 98 | extern int map_kernel_range_noflush(unsigned long start, unsigned long size, | 99 | extern int map_kernel_range_noflush(unsigned long start, unsigned long size, |
| 99 | pgprot_t prot, struct page **pages); | 100 | pgprot_t prot, struct page **pages); |
| 100 | extern void unmap_kernel_range_noflush(unsigned long addr, unsigned long size); | 101 | extern void unmap_kernel_range_noflush(unsigned long addr, unsigned long size); |
| 101 | extern void unmap_kernel_range(unsigned long addr, unsigned long size); | 102 | extern void unmap_kernel_range(unsigned long addr, unsigned long size); |
| 103 | #else | ||
| 104 | static inline int | ||
| 105 | map_kernel_range_noflush(unsigned long start, unsigned long size, | ||
| 106 | pgprot_t prot, struct page **pages) | ||
| 107 | { | ||
| 108 | return size >> PAGE_SHIFT; | ||
| 109 | } | ||
| 110 | static inline void | ||
| 111 | unmap_kernel_range_noflush(unsigned long addr, unsigned long size) | ||
| 112 | { | ||
| 113 | } | ||
| 114 | static inline void | ||
| 115 | unmap_kernel_range(unsigned long addr, unsigned long size) | ||
| 116 | { | ||
| 117 | } | ||
| 118 | #endif | ||
| 102 | 119 | ||
| 103 | /* Allocate/destroy a 'vmalloc' VM area. */ | 120 | /* Allocate/destroy a 'vmalloc' VM area. */ |
| 104 | extern struct vm_struct *alloc_vm_area(size_t size); | 121 | extern struct vm_struct *alloc_vm_area(size_t size); |
| @@ -116,11 +133,26 @@ extern struct vm_struct *vmlist; | |||
| 116 | extern __init void vm_area_register_early(struct vm_struct *vm, size_t align); | 133 | extern __init void vm_area_register_early(struct vm_struct *vm, size_t align); |
| 117 | 134 | ||
| 118 | #ifdef CONFIG_SMP | 135 | #ifdef CONFIG_SMP |
| 136 | # ifdef CONFIG_MMU | ||
| 119 | struct vm_struct **pcpu_get_vm_areas(const unsigned long *offsets, | 137 | struct vm_struct **pcpu_get_vm_areas(const unsigned long *offsets, |
| 120 | const size_t *sizes, int nr_vms, | 138 | const size_t *sizes, int nr_vms, |
| 121 | size_t align); | 139 | size_t align); |
| 122 | 140 | ||
| 123 | void pcpu_free_vm_areas(struct vm_struct **vms, int nr_vms); | 141 | void pcpu_free_vm_areas(struct vm_struct **vms, int nr_vms); |
| 142 | # else | ||
| 143 | static inline struct vm_struct ** | ||
| 144 | pcpu_get_vm_areas(const unsigned long *offsets, | ||
| 145 | const size_t *sizes, int nr_vms, | ||
| 146 | size_t align) | ||
| 147 | { | ||
| 148 | return NULL; | ||
| 149 | } | ||
| 150 | |||
| 151 | static inline void | ||
| 152 | pcpu_free_vm_areas(struct vm_struct **vms, int nr_vms) | ||
| 153 | { | ||
| 154 | } | ||
| 155 | # endif | ||
| 124 | #endif | 156 | #endif |
| 125 | 157 | ||
| 126 | #endif /* _LINUX_VMALLOC_H */ | 158 | #endif /* _LINUX_VMALLOC_H */ |
