1 /* SPDX-License-Identifier: GPL-2.0 */
2 #ifndef _LINUX_HUGETLB_CMA_H
3 #define _LINUX_HUGETLB_CMA_H
4
5 #ifdef CONFIG_CMA
6 void hugetlb_cma_free_frozen_folio(struct folio *folio);
7 struct folio *hugetlb_cma_alloc_frozen_folio(int order, gfp_t gfp_mask,
8 int nid, nodemask_t *nodemask);
9 struct huge_bootmem_page *hugetlb_cma_alloc_bootmem(struct hstate *h, int *nid,
10 bool node_exact);
11 bool hugetlb_cma_exclusive_alloc(void);
12 unsigned long hugetlb_cma_total_size(void);
13 void hugetlb_cma_validate_params(void);
14 bool hugetlb_early_cma(struct hstate *h);
15 #else
hugetlb_cma_free_frozen_folio(struct folio * folio)16 static inline void hugetlb_cma_free_frozen_folio(struct folio *folio)
17 {
18 }
19
hugetlb_cma_alloc_frozen_folio(int order,gfp_t gfp_mask,int nid,nodemask_t * nodemask)20 static inline struct folio *hugetlb_cma_alloc_frozen_folio(int order,
21 gfp_t gfp_mask, int nid, nodemask_t *nodemask)
22 {
23 return NULL;
24 }
25
26 static inline
hugetlb_cma_alloc_bootmem(struct hstate * h,int * nid,bool node_exact)27 struct huge_bootmem_page *hugetlb_cma_alloc_bootmem(struct hstate *h, int *nid,
28 bool node_exact)
29 {
30 return NULL;
31 }
32
hugetlb_cma_exclusive_alloc(void)33 static inline bool hugetlb_cma_exclusive_alloc(void)
34 {
35 return false;
36 }
37
hugetlb_cma_total_size(void)38 static inline unsigned long hugetlb_cma_total_size(void)
39 {
40 return 0;
41 }
42
hugetlb_cma_validate_params(void)43 static inline void hugetlb_cma_validate_params(void)
44 {
45 }
46
hugetlb_early_cma(struct hstate * h)47 static inline bool hugetlb_early_cma(struct hstate *h)
48 {
49 return false;
50 }
51 #endif
52 #endif
53