5 struct cdi_mem_area
*cdi_mem_alloc(size_t size
, cdi_mem_flags_t flags
)
7 if (flags
& CDI_MEM_DMA_16M
) {
11 uint32_t alignment
= 1 << (flags
& CDI_MEM_ALIGN_MASK
);
13 struct cdi_mem_area
*area
= malloc(sizeof(*area
));
15 area
->vaddr
= (void *)(((uintptr_t)malloc(size
+ alignment
- 1) + alignment
- 1) & ~(alignment
- 1));
17 area
->paddr
.items
= malloc(sizeof(*area
->paddr
.items
));
18 area
->paddr
.items
[0].start
= (uintptr_t)area
->vaddr
;
19 area
->paddr
.items
[0].size
= size
;