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 #ifdef CONFIG_MMU 9 void __init vmalloc_init(void); 10 int __must_check vmap_pages_range_noflush(unsigned long addr, unsigned long end, 11 pgprot_t prot, struct page **pages, 12 unsigned int page_shift, gfp_t gfp_mask); 13 unsigned int get_vm_area_page_order(struct vm_struct *vm); 14 #else 15 static inline void vmalloc_init(void) {} 16 17 static inline 18 int __must_check vmap_pages_range_noflush(unsigned long addr, unsigned long end, 19 pgprot_t prot, struct page **pages, 20 unsigned int page_shift, gfp_t gfp_mask) 21 { 22 return -EINVAL; 23 } 24 25 static inline void vunmap_range_noflush(unsigned long start, unsigned long end) 26 { 27 } 28 #endif 29 30 struct vm_struct *__get_vm_area_node(unsigned long size, 31 unsigned long align, unsigned long shift, 32 unsigned long vm_flags, unsigned long start, 33 unsigned long end, int node, gfp_t gfp_mask, 34 const void *caller); 35 36 void clear_vm_uninitialized_flag(struct vm_struct *vm); 37 38 int __must_check __vmap_pages_range_noflush(unsigned long addr, 39 unsigned long end, pgprot_t prot, 40 struct page **pages, unsigned int page_shift); 41 42 void vunmap_range_noflush(unsigned long start, unsigned long end); 43 44 void __vunmap_range_noflush(unsigned long start, unsigned long end); 45 46 #endif /* __MM_VMALLOC_H */ 47