cma.h 573 Bytes
Newer Older
1
/* SPDX-License-Identifier: GPL-2.0 */
Sasha Levin's avatar
Sasha Levin committed
2 3 4 5 6 7 8 9 10
#ifndef __MM_CMA_H__
#define __MM_CMA_H__

struct cma {
	unsigned long   base_pfn;
	unsigned long   count;
	unsigned long   *bitmap;
	unsigned int order_per_bit; /* Order of pages represented by one bit */
	struct mutex    lock;
Sasha Levin's avatar
Sasha Levin committed
11 12 13 14
#ifdef CONFIG_CMA_DEBUGFS
	struct hlist_head mem_head;
	spinlock_t mem_head_lock;
#endif
15
	const char *name;
Sasha Levin's avatar
Sasha Levin committed
16 17 18 19 20
};

extern struct cma cma_areas[MAX_CMA_AREAS];
extern unsigned cma_area_count;

21
static inline unsigned long cma_bitmap_maxno(struct cma *cma)
Sasha Levin's avatar
Sasha Levin committed
22 23 24 25 26
{
	return cma->count >> cma->order_per_bit;
}

#endif