projects/linux·blob master · refs

48 lines · 1.3 KiB

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
11void __init vmalloc_init(void);
12int __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);
15unsigned int get_vm_area_page_order(struct vm_struct *vm);
16#else
17static inline void vmalloc_init(void) {}
18
19static inline
20int __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
27static inline void vunmap_range_noflush(unsigned long start, unsigned long end)
28{
29}
30#endif
31
32struct 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
38void clear_vm_uninitialized_flag(struct vm_struct *vm);
39
40int __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
44void vunmap_range_noflush(unsigned long start, unsigned long end);
45
46void __vunmap_range_noflush(unsigned long start, unsigned long end);
47
48#endif /* __MM_VMALLOC_H */