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