xref: /linux/mm/vmalloc.h (revision 1b78070aaef63512688aebfbc82365ef9d6660f1)
1 /* SPDX-License-Identifier: GPL-2.0-or-later */
2 /*
3  * mm-internal APIs for vmalloc
4  */
5 #ifndef __MM_VMALLOC_H
6 #define __MM_VMALLOC_H
7 
8 #include <linux/vmalloc.h>
9 
10 #ifdef CONFIG_MMU
11 void __init vmalloc_init(void);
12 int __must_check vmap_pages_range_noflush(unsigned long addr, unsigned long end,
13 		pgprot_t prot, struct page **pages,
14 		unsigned int page_shift, gfp_t gfp_mask);
15 unsigned int get_vm_area_page_order(struct vm_struct *vm);
16 #else
17 static inline void vmalloc_init(void) {}
18 
19 static inline
20 int __must_check vmap_pages_range_noflush(unsigned long addr, unsigned long end,
21 		pgprot_t prot, struct page **pages,
22 		unsigned int page_shift, gfp_t gfp_mask)
23 {
24 	return -EINVAL;
25 }
26 
27 static inline void vunmap_range_noflush(unsigned long start, unsigned long end)
28 {
29 }
30 #endif
31 
32 struct vm_struct *__get_vm_area_node(unsigned long size,
33 		unsigned long align, unsigned long shift,
34 		unsigned long vm_flags, unsigned long start,
35 		unsigned long end, int node, gfp_t gfp_mask,
36 		const void *caller);
37 
38 void clear_vm_uninitialized_flag(struct vm_struct *vm);
39 
40 int __must_check __vmap_pages_range_noflush(unsigned long addr,
41 		unsigned long end, pgprot_t prot,
42 		struct page **pages, unsigned int page_shift);
43 
44 void vunmap_range_noflush(unsigned long start, unsigned long end);
45 
46 void __vunmap_range_noflush(unsigned long start, unsigned long end);
47 
48 #endif /* __MM_VMALLOC_H */
49