| /* SPDX-License-Identifier: GPL-2.0-or-later */ |
| /* |
| * mm-internal APIs for vmalloc |
| */ |
| #ifndef __MM_VMALLOC_H |
| #define __MM_VMALLOC_H |
| |
| #include <linux/vmalloc.h> |
| |
| #ifdef CONFIG_MMU |
| void __init vmalloc_init(void); |
| int __must_check vmap_pages_range_noflush(unsigned long addr, unsigned long end, |
| pgprot_t prot, struct page **pages, |
| unsigned int page_shift, gfp_t gfp_mask); |
| unsigned int get_vm_area_page_order(struct vm_struct *vm); |
| #else |
| static inline void vmalloc_init(void) {} |
| |
| static inline |
| int __must_check vmap_pages_range_noflush(unsigned long addr, unsigned long end, |
| pgprot_t prot, struct page **pages, |
| unsigned int page_shift, gfp_t gfp_mask) |
| { |
| return -EINVAL; |
| } |
| |
| static inline void vunmap_range_noflush(unsigned long start, unsigned long end) |
| { |
| } |
| #endif |
| |
| struct vm_struct *__get_vm_area_node(unsigned long size, |
| unsigned long align, unsigned long shift, |
| unsigned long vm_flags, unsigned long start, |
| unsigned long end, int node, gfp_t gfp_mask, |
| const void *caller); |
| |
| void clear_vm_uninitialized_flag(struct vm_struct *vm); |
| |
| int __must_check __vmap_pages_range_noflush(unsigned long addr, |
| unsigned long end, pgprot_t prot, |
| struct page **pages, unsigned int page_shift); |
| |
| void vunmap_range_noflush(unsigned long start, unsigned long end); |
| |
| void __vunmap_range_noflush(unsigned long start, unsigned long end); |
| |
| #endif /* __MM_VMALLOC_H */ |