xref: /linux/mm/hugetlb_cma.h (revision 3e9e952bb3139ad1e08f3e1960239c2988ab90c9)
1474fe91fSFrank van der Linden /* SPDX-License-Identifier: GPL-2.0 */
2474fe91fSFrank van der Linden #ifndef _LINUX_HUGETLB_CMA_H
3474fe91fSFrank van der Linden #define _LINUX_HUGETLB_CMA_H
4474fe91fSFrank van der Linden 
5474fe91fSFrank van der Linden #ifdef CONFIG_CMA
6*14f27076SKefeng Wang void hugetlb_cma_free_frozen_folio(struct folio *folio);
7*14f27076SKefeng Wang struct folio *hugetlb_cma_alloc_frozen_folio(int order, gfp_t gfp_mask,
8474fe91fSFrank van der Linden 				      int nid, nodemask_t *nodemask);
9474fe91fSFrank van der Linden struct huge_bootmem_page *hugetlb_cma_alloc_bootmem(struct hstate *h, int *nid,
10474fe91fSFrank van der Linden 						    bool node_exact);
11474fe91fSFrank van der Linden bool hugetlb_cma_exclusive_alloc(void);
12474fe91fSFrank van der Linden unsigned long hugetlb_cma_total_size(void);
13474fe91fSFrank van der Linden void hugetlb_cma_validate_params(void);
14474fe91fSFrank van der Linden bool hugetlb_early_cma(struct hstate *h);
15474fe91fSFrank van der Linden #else
hugetlb_cma_free_frozen_folio(struct folio * folio)16*14f27076SKefeng Wang static inline void hugetlb_cma_free_frozen_folio(struct folio *folio)
17474fe91fSFrank van der Linden {
18474fe91fSFrank van der Linden }
19474fe91fSFrank van der Linden 
hugetlb_cma_alloc_frozen_folio(int order,gfp_t gfp_mask,int nid,nodemask_t * nodemask)20*14f27076SKefeng Wang static inline struct folio *hugetlb_cma_alloc_frozen_folio(int order,
21*14f27076SKefeng Wang 		gfp_t gfp_mask,	int nid, nodemask_t *nodemask)
22474fe91fSFrank van der Linden {
23474fe91fSFrank van der Linden 	return NULL;
24474fe91fSFrank van der Linden }
25474fe91fSFrank van der Linden 
26474fe91fSFrank van der Linden static inline
hugetlb_cma_alloc_bootmem(struct hstate * h,int * nid,bool node_exact)27474fe91fSFrank van der Linden struct huge_bootmem_page *hugetlb_cma_alloc_bootmem(struct hstate *h, int *nid,
28474fe91fSFrank van der Linden 						    bool node_exact)
29474fe91fSFrank van der Linden {
30474fe91fSFrank van der Linden 	return NULL;
31474fe91fSFrank van der Linden }
32474fe91fSFrank van der Linden 
hugetlb_cma_exclusive_alloc(void)33474fe91fSFrank van der Linden static inline bool hugetlb_cma_exclusive_alloc(void)
34474fe91fSFrank van der Linden {
35474fe91fSFrank van der Linden 	return false;
36474fe91fSFrank van der Linden }
37474fe91fSFrank van der Linden 
hugetlb_cma_total_size(void)38474fe91fSFrank van der Linden static inline unsigned long hugetlb_cma_total_size(void)
39474fe91fSFrank van der Linden {
40474fe91fSFrank van der Linden 	return 0;
41474fe91fSFrank van der Linden }
42474fe91fSFrank van der Linden 
hugetlb_cma_validate_params(void)43474fe91fSFrank van der Linden static inline void hugetlb_cma_validate_params(void)
44474fe91fSFrank van der Linden {
45474fe91fSFrank van der Linden }
46474fe91fSFrank van der Linden 
hugetlb_early_cma(struct hstate * h)47474fe91fSFrank van der Linden static inline bool hugetlb_early_cma(struct hstate *h)
48474fe91fSFrank van der Linden {
49474fe91fSFrank van der Linden 	return false;
50474fe91fSFrank van der Linden }
51474fe91fSFrank van der Linden #endif
52474fe91fSFrank van der Linden #endif
53