Linux Utils Application Programming Interface (API)
linuxutils-m08
|
Data Structures | |
struct | CMEM_AllocParams |
Parameters for CMEM_alloc(), CMEM_alloc2(), CMEM_allocPool(), CMEM_allocPool2(), CMEM_free(). More... | |
struct | CMEM_BlockAttrs |
Typedefs | |
typedef struct CMEM_AllocParams | CMEM_AllocParams |
Parameters for CMEM_alloc(), CMEM_alloc2(), CMEM_allocPool(), CMEM_allocPool2(), CMEM_free(). More... | |
typedef struct CMEM_BlockAttrs | CMEM_BlockAttrs |
Functions | |
int | CMEM_init (void) |
Initialize the CMEM module. Must be called before other API calls. More... | |
int | CMEM_getPool (size_t size) |
Find the pool that best fits a given buffer size and has a buffer available. More... | |
int | CMEM_getPool2 (int blockid, size_t size) |
Find the pool in memory block blockid that best fits a given buffer size and has a buffer available. More... | |
void * | CMEM_allocPool (int poolid, CMEM_AllocParams *params) |
Allocate memory from a specified pool. More... | |
void * | CMEM_allocPool2 (int blockid, int poolid, CMEM_AllocParams *params) |
Allocate memory from a specified pool in a specified memory block. More... | |
void * | CMEM_alloc (size_t size, CMEM_AllocParams *params) |
Allocate memory of a specified size. More... | |
void * | CMEM_alloc2 (int blockid, size_t size, CMEM_AllocParams *params) |
Allocate memory of a specified size from a specified memory block. More... | |
off_t | CMEM_allocPoolPhys (int poolid, CMEM_AllocParams *params) |
Allocate unmapped memory from a specified pool. More... | |
off_t | CMEM_allocPoolPhys2 (int blockid, int poolid, CMEM_AllocParams *params) |
Allocate unmapped memory from a specified pool in a specified memory block. More... | |
off_t | CMEM_allocPhys (size_t size, CMEM_AllocParams *params) |
Allocate unmapped memory of a specified size. More... | |
off_t | CMEM_allocPhys2 (int blockid, size_t size, CMEM_AllocParams *params) |
Allocate unmapped memory of a specified size from a specified memory block. More... | |
void * | CMEM_registerAlloc (off_t physp) |
Register shared usage of an already-allocated buffer. More... | |
int | CMEM_free (void *ptr, CMEM_AllocParams *params) |
Free a buffer previously allocated with CMEM_alloc()/CMEM_allocPool(). More... | |
int | CMEM_freePhys (off_t physp, CMEM_AllocParams *params) |
Free an unmapped buffer previously allocated with CMEM_allocPhys()/CMEM_allocPoolPhys(). More... | |
int | CMEM_unregister (void *ptr, CMEM_AllocParams *params) |
Unregister use of a buffer previously registered with CMEM_registerAlloc(). More... | |
off_t | CMEM_getPhys (void *ptr) |
Get the physical address of a contiguous buffer. More... | |
int | CMEM_cacheWb (void *ptr, size_t size) |
Do a cache writeback of the block pointed to by ptr/ More... | |
void * | CMEM_map (off_t physp, size_t size) |
Map allocated memory. More... | |
int | CMEM_unmap (void *userp, size_t size) |
Unmap allocated memory. More... | |
int | CMEM_cacheInv (void *ptr, size_t size) |
Do a cache invalidate of the block pointed to by ptr/ More... | |
int | CMEM_cacheWbInv (void *ptr, size_t size) |
Do a cache writeback/invalidate of the block pointed to by ptr/ More... | |
int | CMEM_getVersion (void) |
Retrieve version from CMEM driver. More... | |
int | CMEM_getBlock (off_t *pphys_base, size_t *psize) |
Retrieve memory block bounds from CMEM driver. More... | |
int | CMEM_getBlockAttrs (int blockid, CMEM_BlockAttrs *pattrs) |
Retrieve extended memory block attributes from CMEM driver. More... | |
int | CMEM_getNumBlocks (int *pnblocks) |
Retrieve number of blocks configured into CMEM driver. More... | |
int | CMEM_exit (void) |
Finalize the CMEM module. More... | |
Variables | |
CMEM_AllocParams | CMEM_DEFAULTPARAMS |
This is the API for the Contiguous Memory Manager.
#define CMEM_VERSION 0x04000000U |
#define MAX_POOLS 32 |
#define CMEM_CMABLOCKID -1 |
#define CMEM_WB 0x00010000 |
#define CMEM_INV 0x00020000 |
#define CMEM_HEAP 0x00040000 |
operation applies to heap
#define CMEM_POOL 0x00000000 |
operation applies to a pool
#define CMEM_CACHED 0x00080000 |
allocated buffer is cached
#define CMEM_NONCACHED 0x00000000 |
allocated buffer is not cached
#define CMEM_PHYS 0x00100000 |
#define CMEM_IOCMAGIC 0x0000fe00 |
#define CMEM_IOCALLOC 1 |
#define CMEM_IOCALLOCHEAP 2 |
#define CMEM_IOCFREE 3 |
#define CMEM_IOCGETPHYS 4 |
#define CMEM_IOCGETSIZE 5 |
#define CMEM_IOCGETPOOL 6 |
#define CMEM_IOCCACHE 7 |
#define CMEM_IOCGETVERSION 8 |
#define CMEM_IOCGETBLOCK 9 |
#define CMEM_IOCREGUSER 10 |
#define CMEM_IOCGETNUMBLOCKS 11 |
#define CMEM_IOCCACHEWBINV CMEM_IOCCACHE | CMEM_WB | CMEM_INV |
#define CMEM_IOCCACHEWB CMEM_IOCCACHE | CMEM_WB |
#define CMEM_IOCCACHEINV CMEM_IOCCACHE | CMEM_INV |
#define CMEM_IOCALLOCCACHED CMEM_IOCALLOC | CMEM_CACHED |
#define CMEM_IOCALLOCHEAPCACHED CMEM_IOCALLOCHEAP | CMEM_CACHED |
#define CMEM_IOCFREEHEAP CMEM_IOCFREE | CMEM_HEAP |
#define CMEM_IOCFREEPHYS CMEM_IOCFREE | CMEM_PHYS |
#define CMEM_IOCFREEHEAPPHYS CMEM_IOCFREE | CMEM_HEAP | CMEM_PHYS |
#define CMEM_IOCCMDMASK 0x000000ff |
typedef struct CMEM_AllocParams CMEM_AllocParams |
Parameters for CMEM_alloc(), CMEM_alloc2(), CMEM_allocPool(), CMEM_allocPool2(), CMEM_free().
typedef struct CMEM_BlockAttrs CMEM_BlockAttrs |
int CMEM_init | ( | void | ) |
Initialize the CMEM module. Must be called before other API calls.
int CMEM_getPool | ( | size_t | size | ) |
Find the pool that best fits a given buffer size and has a buffer available.
size | The buffer size for which a pool is needed. |
int CMEM_getPool2 | ( | int | blockid, |
size_t | size | ||
) |
Find the pool in memory block blockid that best fits a given buffer size and has a buffer available.
blockid | Block number |
size | The buffer size for which a pool is needed. |
void* CMEM_allocPool | ( | int | poolid, |
CMEM_AllocParams * | params | ||
) |
Allocate memory from a specified pool.
poolid | The pool from which to allocate memory. |
params | Allocation parameters. |
params->type
is ignored - a pool will always be used. params->alignment
is unused, since pool buffers are already aligned to specific boundaries.void* CMEM_allocPool2 | ( | int | blockid, |
int | poolid, | ||
CMEM_AllocParams * | params | ||
) |
Allocate memory from a specified pool in a specified memory block.
blockid | The memory block from which to allocate. |
poolid | The pool from which to allocate memory. |
params | Allocation parameters. |
params->type
is ignored - a pool will always be used. params->alignment
is unused, since pool buffers are already aligned to specific boundaries.void* CMEM_alloc | ( | size_t | size, |
CMEM_AllocParams * | params | ||
) |
Allocate memory of a specified size.
size | The size of the buffer to allocate. |
params | Allocation parameters. |
void* CMEM_alloc2 | ( | int | blockid, |
size_t | size, | ||
CMEM_AllocParams * | params | ||
) |
Allocate memory of a specified size from a specified memory block.
blockid | The memory block from which to allocate. |
size | The size of the buffer to allocate. |
params | Allocation parameters. |
off_t CMEM_allocPoolPhys | ( | int | poolid, |
CMEM_AllocParams * | params | ||
) |
Allocate unmapped memory from a specified pool.
poolid | The pool from which to allocate memory. |
params | Allocation parameters. |
params->type
is ignored - a pool will always be used. params->alignment
is unused, since pool buffers are already aligned to specific boundaries.off_t CMEM_allocPoolPhys2 | ( | int | blockid, |
int | poolid, | ||
CMEM_AllocParams * | params | ||
) |
Allocate unmapped memory from a specified pool in a specified memory block.
blockid | The memory block from which to allocate. |
poolid | The pool from which to allocate memory. |
params | Allocation parameters. |
params->type
is ignored - a pool will always be used. params->alignment
is unused, since pool buffers are already aligned to specific boundaries.off_t CMEM_allocPhys | ( | size_t | size, |
CMEM_AllocParams * | params | ||
) |
Allocate unmapped memory of a specified size.
size | The size of the buffer to allocate. |
params | Allocation parameters. |
off_t CMEM_allocPhys2 | ( | int | blockid, |
size_t | size, | ||
CMEM_AllocParams * | params | ||
) |
Allocate unmapped memory of a specified size from a specified memory block.
blockid | The memory block from which to allocate. |
size | The size of the buffer to allocate. |
params | Allocation parameters. |
void* CMEM_registerAlloc | ( | off_t | physp | ) |
Register shared usage of an already-allocated buffer.
physp | Physical address of the already-allocated buffer. |
int CMEM_free | ( | void * | ptr, |
CMEM_AllocParams * | params | ||
) |
Free a buffer previously allocated with CMEM_alloc()/CMEM_allocPool().
ptr | The pointer to the buffer. |
params | Allocation parameters. |
int CMEM_freePhys | ( | off_t | physp, |
CMEM_AllocParams * | params | ||
) |
Free an unmapped buffer previously allocated with CMEM_allocPhys()/CMEM_allocPoolPhys().
physp | The physical address of the buffer. |
params | Allocation parameters. |
int CMEM_unregister | ( | void * | ptr, |
CMEM_AllocParams * | params | ||
) |
Unregister use of a buffer previously registered with CMEM_registerAlloc().
ptr | The pointer to the buffer. |
params | Allocation parameters. |
off_t CMEM_getPhys | ( | void * | ptr | ) |
Get the physical address of a contiguous buffer.
ptr | The pointer to the buffer. |
int CMEM_cacheWb | ( | void * | ptr, |
size_t | size | ||
) |
Do a cache writeback of the block pointed to by ptr/
size
.
ptr | Pointer to block to writeback |
size | Size in bytes of block to writeback. |
void* CMEM_map | ( | off_t | physp, |
size_t | size | ||
) |
Map allocated memory.
physp | Physical address of the already-allocated buffer. |
size | Size in bytes of block to map. |
int CMEM_unmap | ( | void * | userp, |
size_t | size | ||
) |
Unmap allocated memory.
userp | User virtual address of the mapped buffer. |
size | Size in bytes of block to unmap. |
int CMEM_cacheInv | ( | void * | ptr, |
size_t | size | ||
) |
Do a cache invalidate of the block pointed to by ptr/
size
.
ptr | Pointer to block to invalidate |
size | Size in bytes of block to invalidate |
int CMEM_cacheWbInv | ( | void * | ptr, |
size_t | size | ||
) |
Do a cache writeback/invalidate of the block pointed to by ptr/
size
.
ptr | Pointer to block to writeback/invalidate |
size | Size in bytes of block to writeback/invalidate |
int CMEM_getVersion | ( | void | ) |
Retrieve version from CMEM driver.
int CMEM_getBlock | ( | off_t * | pphys_base, |
size_t * | psize | ||
) |
Retrieve memory block bounds from CMEM driver.
pphys_base | Pointer to storage for base physical address of CMEM's memory block |
psize | Pointer to storage for size of CMEM's memory block |
int CMEM_getBlockAttrs | ( | int | blockid, |
CMEM_BlockAttrs * | pattrs | ||
) |
Retrieve extended memory block attributes from CMEM driver.
blockid | Block number |
pattrs | Pointer to CMEM_BlockAttrs struct |
int CMEM_getNumBlocks | ( | int * | pnblocks | ) |
Retrieve number of blocks configured into CMEM driver.
pnblocks | Pointer to storage for holding number of blocks |
int CMEM_exit | ( | void | ) |
Finalize the CMEM module.
CMEM_AllocParams CMEM_DEFAULTPARAMS |