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