xref: /openbmc/linux/mm/cma.h (revision 9d637f8113deef57bbeb141a2c1a4eb00e8c14c4)
1  /* SPDX-License-Identifier: GPL-2.0 */
2  #ifndef __MM_CMA_H__
3  #define __MM_CMA_H__
4  
5  #include <linux/debugfs.h>
6  
7  struct cma {
8  	unsigned long   base_pfn;
9  	unsigned long   count;
10  	unsigned long   *bitmap;
11  	unsigned int order_per_bit; /* Order of pages represented by one bit */
12  	struct mutex    lock;
13  #ifdef CONFIG_CMA_DEBUGFS
14  	struct hlist_head mem_head;
15  	spinlock_t mem_head_lock;
16  	struct debugfs_u32_array dfs_bitmap;
17  #endif
18  	char name[CMA_MAX_NAME];
19  };
20  
21  extern struct cma cma_areas[MAX_CMA_AREAS];
22  extern unsigned cma_area_count;
23  
24  static inline unsigned long cma_bitmap_maxno(struct cma *cma)
25  {
26  	return cma->count >> cma->order_per_bit;
27  }
28  
29  #endif
30