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