|  | /* SPDX-License-Identifier: GPL-2.0 */ | 
|  | #ifndef _LINUX_HUGETLB_CMA_H | 
|  | #define _LINUX_HUGETLB_CMA_H | 
|  |  | 
|  | #ifdef CONFIG_CMA | 
|  | void hugetlb_cma_free_folio(struct folio *folio); | 
|  | struct folio *hugetlb_cma_alloc_folio(struct hstate *h, gfp_t gfp_mask, | 
|  | int nid, nodemask_t *nodemask); | 
|  | struct huge_bootmem_page *hugetlb_cma_alloc_bootmem(struct hstate *h, int *nid, | 
|  | bool node_exact); | 
|  | void hugetlb_cma_check(void); | 
|  | bool hugetlb_cma_exclusive_alloc(void); | 
|  | unsigned long hugetlb_cma_total_size(void); | 
|  | void hugetlb_cma_validate_params(void); | 
|  | bool hugetlb_early_cma(struct hstate *h); | 
|  | #else | 
|  | static inline void hugetlb_cma_free_folio(struct folio *folio) | 
|  | { | 
|  | } | 
|  |  | 
|  | static inline struct folio *hugetlb_cma_alloc_folio(struct hstate *h, | 
|  | gfp_t gfp_mask, int nid, nodemask_t *nodemask) | 
|  | { | 
|  | return NULL; | 
|  | } | 
|  |  | 
|  | static inline | 
|  | struct huge_bootmem_page *hugetlb_cma_alloc_bootmem(struct hstate *h, int *nid, | 
|  | bool node_exact) | 
|  | { | 
|  | return NULL; | 
|  | } | 
|  |  | 
|  | static inline void hugetlb_cma_check(void) | 
|  | { | 
|  | } | 
|  |  | 
|  | static inline bool hugetlb_cma_exclusive_alloc(void) | 
|  | { | 
|  | return false; | 
|  | } | 
|  |  | 
|  | static inline unsigned long hugetlb_cma_total_size(void) | 
|  | { | 
|  | return 0; | 
|  | } | 
|  |  | 
|  | static inline void hugetlb_cma_validate_params(void) | 
|  | { | 
|  | } | 
|  |  | 
|  | static inline bool hugetlb_early_cma(struct hstate *h) | 
|  | { | 
|  | return false; | 
|  | } | 
|  | #endif | 
|  | #endif |