Blame view
include/linux/cma.h
1.18 KB
b24413180
|
1 |
/* SPDX-License-Identifier: GPL-2.0 */ |
a254129e8
|
2 3 |
#ifndef __CMA_H__ #define __CMA_H__ |
d5e6eff26
|
4 5 |
#include <linux/init.h> #include <linux/types.h> |
a254129e8
|
6 7 8 9 10 11 12 13 14 15 16 17 18 |
/* * There is always at least global CMA area and a few optional * areas configured in kernel .config. */ #ifdef CONFIG_CMA_AREAS #define MAX_CMA_AREAS (1 + CONFIG_CMA_AREAS) #else #define MAX_CMA_AREAS (0) #endif struct cma; |
e48322abb
|
19 |
extern unsigned long totalcma_pages; |
ac1738249
|
20 21 |
extern phys_addr_t cma_get_base(const struct cma *cma); extern unsigned long cma_get_size(const struct cma *cma); |
f318dd083
|
22 |
extern const char *cma_get_name(const struct cma *cma); |
a254129e8
|
23 |
|
dda02fd62
|
24 25 |
extern int __init cma_declare_contiguous(phys_addr_t base, phys_addr_t size, phys_addr_t limit, |
a254129e8
|
26 |
phys_addr_t alignment, unsigned int order_per_bit, |
f318dd083
|
27 |
bool fixed, const char *name, struct cma **res_cma); |
ac1738249
|
28 29 |
extern int cma_init_reserved_mem(phys_addr_t base, phys_addr_t size, unsigned int order_per_bit, |
f318dd083
|
30 |
const char *name, |
de9e14eeb
|
31 |
struct cma **res_cma); |
e2f466e32
|
32 |
extern struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align, |
651820297
|
33 |
bool no_warn); |
ac1738249
|
34 |
extern bool cma_release(struct cma *cma, const struct page *pages, unsigned int count); |
e4231bcda
|
35 36 |
extern int cma_for_each_area(int (*it)(struct cma *cma, void *data), void *data); |
a254129e8
|
37 |
#endif |