59#define DMA_NUM_CLASSES 7
60#define DMA_MAX_POOL_SIZE 512
#define AU_EXTERN
Definition aurora.h:50
#define AU_EXPORT
Definition aurora.h:38
unsigned int uint32_t
Definition acefiex.h:163
unsigned char uint8_t
Definition acefiex.h:161
COMPILER_DEPENDENT_UINT64 uint64_t
Definition acefiex.h:165
AU_EXTERN AU_EXPORT void * AuDMAGClassAlloc(AuDMAGlobalClass *gClass, size_t sz, uint64_t *physOut)
AuDMAGClassAlloc – allocate memory from DMA Global Class.
Definition dma.c:356
AU_EXTERN AU_EXPORT void * AuDMAPoolAlloc(AuDMAPool *pool, uint64_t *phys_out)
AuDMAPoolAlloc – allocate a slot from desired pool.
Definition dma.c:185
AU_EXTERN AU_EXPORT void AuDMAPoolDestroy(AuDMAPool *pool)
AuDMAPoolDestroy – completely destroy a pool.
Definition dma.c:271
struct _au_dma_page_ AuDMAPage
AU_EXTERN AU_EXPORT void AuDMAGClassFree(AuDMAGlobalClass *gClass, void *virt, uint64_t physOut, size_t sz)
AuDMAGClassFree – free a memory and put it to gclass pool.
Definition dma.c:379
AU_EXTERN AU_EXPORT void AuDMAPoolFree(AuDMAPool *pool, void *virt, uint64_t phys)
AuDMAPoolFree – free up a slot within the pool.
Definition dma.c:229
AU_EXTERN AU_EXPORT void AuDMAGClassDestroy(AuDMAGlobalClass *gClass)
AuDMAGClassDestroy – destroy entire dma global class.
Definition dma.c:397
#define DMA_NUM_CLASSES
Definition dma.h:59
AU_EXTERN AU_EXPORT AuDMAPool * AuDMAPoolCreate(const char *name, size_t alloc_sz, size_t align, size_t boundary)
AuDMAPoolCreate – create a new pool.
Definition dma.c:139
AU_EXTERN AU_EXPORT void AuDMAGlobalClassInitialize(AuDMAGlobalClass *gclass, char *name)
AuDMAGlobalClassInitialize – initialize and populate global class structure.
Definition dma.c:302
struct _au_dma_pool_ AuDMAPool
struct _au_dma_global_class_ AuDMAGlobalClass
AuDMAPool * pools[DMA_NUM_CLASSES]
Definition dma.h:63
size_t szClass[DMA_NUM_CLASSES]
Definition dma.h:64
uint32_t slots
Definition dma.h:43
uint64_t phys
Definition dma.h:41
void * virt
Definition dma.h:40
uint32_t in_use
Definition dma.h:42
uint8_t * bitmap
Definition dma.h:44
struct _au_dma_page_ * next
Definition dma.h:45
uint64_t total_allocs
Definition dma.h:55
size_t align
Definition dma.h:51
size_t alloc_sz
Definition dma.h:50
uint64_t total_frees
Definition dma.h:56
size_t boundary
Definition dma.h:52
uint32_t slots_per_page
Definition dma.h:53
char name[32]
Definition dma.h:49
AuDMAPage * pages
Definition dma.h:54