blob: 33c0b517733c775a2762996c79198a17c2cf9fa5 [file] [log] [blame]
Greg Kroah-Hartmanb2441312017-11-01 15:07:57 +01001/* SPDX-License-Identifier: GPL-2.0 */
Sasha Levin28b24c12015-04-14 15:44:57 -07002#ifndef __MM_CMA_H__
3#define __MM_CMA_H__
4
5struct 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;
Sasha Levin26b02a12015-04-14 15:44:59 -070011#ifdef CONFIG_CMA_DEBUGFS
12 struct hlist_head mem_head;
13 spinlock_t mem_head_lock;
14#endif
Laura Abbottf318dd02017-04-18 11:27:03 -070015 const char *name;
Sasha Levin28b24c12015-04-14 15:44:57 -070016};
17
18extern struct cma cma_areas[MAX_CMA_AREAS];
19extern unsigned cma_area_count;
20
Gregory Fongf21838e2015-08-14 15:35:21 -070021static inline unsigned long cma_bitmap_maxno(struct cma *cma)
Sasha Levin28b24c12015-04-14 15:44:57 -070022{
23 return cma->count >> cma->order_per_bit;
24}
25
26#endif