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