linux/include/linux/cma.h
<<
>>
Prefs
   1#ifndef __CMA_H__
   2#define __CMA_H__
   3
   4/*
   5 * There is always at least global CMA area and a few optional
   6 * areas configured in kernel .config.
   7 */
   8#ifdef CONFIG_CMA_AREAS
   9#define MAX_CMA_AREAS   (1 + CONFIG_CMA_AREAS)
  10
  11#else
  12#define MAX_CMA_AREAS   (0)
  13
  14#endif
  15
  16struct cma;
  17
  18extern unsigned long totalcma_pages;
  19extern phys_addr_t cma_get_base(const struct cma *cma);
  20extern unsigned long cma_get_size(const struct cma *cma);
  21
  22extern int __init cma_declare_contiguous(phys_addr_t base,
  23                        phys_addr_t size, phys_addr_t limit,
  24                        phys_addr_t alignment, unsigned int order_per_bit,
  25                        bool fixed, struct cma **res_cma);
  26extern int cma_init_reserved_mem(phys_addr_t base, phys_addr_t size,
  27                                        unsigned int order_per_bit,
  28                                        struct cma **res_cma);
  29extern struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align);
  30extern bool cma_release(struct cma *cma, const struct page *pages, unsigned int count);
  31#endif
  32