318 #if defined (__cplusplus)
325 #define CMEM_VERSION 0x04000300U
330 #define CMEM_CMABLOCKID -1
333 #define CMEM_WB 0x00010000
334 #define CMEM_INV 0x00020000
335 #define CMEM_HEAP 0x00040000
336 #define CMEM_POOL 0x00000000
337 #define CMEM_CACHED 0x00080000
338 #define CMEM_NONCACHED 0x00000000
339 #define CMEM_PHYS 0x00100000
341 #define CMEM_IOCMAGIC 0x0000fe00
344 #define CMEM_IOCALLOC 1
345 #define CMEM_IOCALLOCHEAP 2
346 #define CMEM_IOCFREE 3
347 #define CMEM_IOCGETPHYS 4
348 #define CMEM_IOCGETSIZE 5
349 #define CMEM_IOCGETPOOL 6
350 #define CMEM_IOCCACHE 7
351 #define CMEM_IOCGETVERSION 8
352 #define CMEM_IOCGETBLOCK 9
353 #define CMEM_IOCREGUSER 10
354 #define CMEM_IOCGETNUMBLOCKS 11
355 #define CMEM_IOCCACHEWBINVALL 12
362 #define CMEM_IOCCACHEWBINV CMEM_IOCCACHE | CMEM_WB | CMEM_INV
363 #define CMEM_IOCCACHEWB CMEM_IOCCACHE | CMEM_WB
364 #define CMEM_IOCCACHEINV CMEM_IOCCACHE | CMEM_INV
365 #define CMEM_IOCALLOCCACHED CMEM_IOCALLOC | CMEM_CACHED
366 #define CMEM_IOCALLOCHEAPCACHED CMEM_IOCALLOCHEAP | CMEM_CACHED
367 #define CMEM_IOCFREEHEAP CMEM_IOCFREE | CMEM_HEAP
368 #define CMEM_IOCFREEPHYS CMEM_IOCFREE | CMEM_PHYS
369 #define CMEM_IOCFREEHEAPPHYS CMEM_IOCFREE | CMEM_HEAP | CMEM_PHYS
371 #define CMEM_IOCCMDMASK 0x000000ff
396 union CMEM_AllocUnion {
401 } alloc_heap_inparams;
405 } alloc_pool_inparams;
411 unsigned long long size;
415 unsigned long long physp;
416 unsigned long long size;
417 } alloc_pool_outparams;
419 unsigned long long physp;
420 unsigned long long size;
421 } get_block_outparams;
426 unsigned long long physp;
628 #if defined(LINUXUTILS_BUILDOS_ANDROID)
709 #if defined(LINUXUTILS_BUILDOS_ANDROID)
765 #if defined(LINUXUTILS_BUILDOS_ANDROID)
840 #if defined(LINUXUTILS_BUILDOS_ANDROID)
900 #if defined(LINUXUTILS_BUILDOS_ANDROID)
956 void *
CMEM_map(off_t physp,
size_t size);
958 #if defined(LINUXUTILS_BUILDOS_ANDROID)
1047 int CMEM_getBlock(off_t *pphys_base,
unsigned long long *psize);
1099 #if defined (__cplusplus)
struct CMEM_BlockAttrs CMEM_BlockAttrs
off64_t CMEM_allocPoolPhys64(int blockid, int poolid, CMEM_AllocParams *params)
Allocate unmapped memory from a specified pool in a specified memory block (Android only)...
off64_t CMEM_getPhys64(void *ptr)
Get the physical address of a contiguous buffer (Android only).
int CMEM_freePhys(off_t physp, CMEM_AllocParams *params)
Free an unmapped buffer previously allocated with CMEM_allocPhys()/CMEM_allocPoolPhys().
CMEM_AllocParams CMEM_DEFAULTPARAMS
void * CMEM_map64(off64_t physp, size_t size)
Map allocated memory using mmap64 (Android only)
int CMEM_unmap(void *userp, size_t size)
Unmap allocated memory.
void * CMEM_registerAlloc64(off64_t physp)
Register shared usage of an already-allocated buffer using mmap64 (Android only)
int CMEM_freePhys64(off64_t physp, CMEM_AllocParams *params)
Free an unmapped buffer previously allocated with CMEM_allocPhys64()/CMEM_allocPoolPhys64() (Android ...
int CMEM_cacheWb(void *ptr, size_t size)
Do a cache writeback of the block pointed to by ptr/size.
int CMEM_free(void *ptr, CMEM_AllocParams *params)
Free a buffer previously allocated with CMEM_alloc()/CMEM_allocPool().
int CMEM_getPool(unsigned long long size)
Find the pool that best fits a given buffer size and has a buffer available.
off_t CMEM_getPhys(void *ptr)
Get the physical address of a contiguous buffer.
off_t CMEM_allocPhys(size_t size, CMEM_AllocParams *params)
Allocate unmapped memory of a specified size.
size_t alignment
Definition: cmem.h:380
void * CMEM_alloc(size_t size, CMEM_AllocParams *params)
Allocate memory of a specified size.
off64_t CMEM_allocPhys64(int blockid, size_t size, CMEM_AllocParams *params)
Allocate unmapped memory of a specified size from a specified memory block (Android only) ...
Parameters for CMEM_alloc(), CMEM_alloc2(), CMEM_allocPool(), CMEM_allocPool2(), CMEM_free().
Definition: cmem.h:377
void * CMEM_allocPool2(int blockid, int poolid, CMEM_AllocParams *params)
Allocate memory from a specified pool in a specified memory block.
off_t phys_base
Definition: cmem.h:388
unsigned long long size
Definition: cmem.h:389
struct CMEM_AllocParams CMEM_AllocParams
Parameters for CMEM_alloc(), CMEM_alloc2(), CMEM_allocPool(), CMEM_allocPool2(), CMEM_free().
void * CMEM_registerAlloc(off_t physp)
Register shared usage of an already-allocated buffer.
int CMEM_exit(void)
Finalize the CMEM module.
int CMEM_getBlock(off_t *pphys_base, unsigned long long *psize)
Retrieve memory block bounds from CMEM driver.
int CMEM_getNumBlocks(int *pnblocks)
Retrieve number of blocks configured into CMEM driver.
off_t CMEM_allocPoolPhys2(int blockid, int poolid, CMEM_AllocParams *params)
Allocate unmapped memory from a specified pool in a specified memory block.
void * CMEM_allocPool(int poolid, CMEM_AllocParams *params)
Allocate memory from a specified pool.
int type
Definition: cmem.h:378
int CMEM_getPool2(int blockid, unsigned long long size)
Find the pool in memory block blockid that best fits a given buffer size and has a buffer available...
int CMEM_cacheWbInv(void *ptr, size_t size)
Do a cache writeback/invalidate of the block pointed to by ptr/size.
int CMEM_getBlockAttrs(int blockid, CMEM_BlockAttrs *pattrs)
Retrieve extended memory block attributes from CMEM driver.
void * CMEM_alloc2(int blockid, size_t size, CMEM_AllocParams *params)
Allocate memory of a specified size from a specified memory block.
off_t CMEM_allocPhys2(int blockid, size_t size, CMEM_AllocParams *params)
Allocate unmapped memory of a specified size from a specified memory block.
int CMEM_cacheWbInvAll(void)
Do a cache writeback/invalidate of the whole cache.
int CMEM_getVersion(void)
Retrieve version from CMEM driver.
void * CMEM_map(off_t physp, size_t size)
Map allocated memory.
int flags
Definition: cmem.h:379
int CMEM_unregister(void *ptr, CMEM_AllocParams *params)
Unregister use of a buffer previously registered with CMEM_registerAlloc().
int CMEM_init(void)
Initialize the CMEM module. Must be called before other API calls.
off_t CMEM_allocPoolPhys(int poolid, CMEM_AllocParams *params)
Allocate unmapped memory from a specified pool.
int CMEM_cacheInv(void *ptr, size_t size)
Do a cache invalidate of the block pointed to by ptr/size.