R_RTOS
0.1
DistributedRealTimeOperatingSystemfortheARMCortexMArchitecture
|
Go to the source code of this file.
Data Structures | |
struct | memMngrHead |
Contains the full information about the memory block. More... | |
struct | memBlckhead |
Contains the only the flag information about the memory block. More... | |
Macros | |
#define | malloc rMalloc |
Redefine malloc to rMalloc in order not to have to alter the already existing code. | |
#define | calloc rCalloc |
Redefine calloc to rCalloc in order not to have to alter the already existing code. | |
#define | realloc rRealloc |
Redefine realloc to rRealloc in order not to have to alter the already existing code. | |
#define | free rFree |
Redefine free to rFree in order not to have to alter the already existing code. | |
#define | BIGGEST_BLCK ((BlckSize)0x100u) |
Size of the biggest possible buddy. More... | |
#define | BIGGEST_BLCK_MSK ((BlckSize)(BIGGEST_BLCK - (BlckSize)1u)) |
Mask for blocks bigger than BIGGER_BLCK. More... | |
#define | SMALLEST_BLCK ((BlckSize)0x8u) |
Size of the smallest possible buddy. More... | |
#define | SMALLER_BLCK_MSK ((BlckSize)(SMALLEST_BLCK - (BlckSize)1u)) |
Mask for blocks smaller than SMALLEST_BLCK. More... | |
#define | SMALLER_BLCK_DIVISOR (MemIndex)(0x3u) |
Bit shifts needed for a division through SMALLEST_BLCK. More... | |
#define | CACHE_SIZE ((uint8_t)0x10u) |
Size of the object cache. More... | |
Typedefs | |
typedef uint16_t | BlckSize |
Size of a block of memory. | |
typedef uint8_t | MemPoolID |
8Bit ID value of a memory pool. | |
typedef uint16_t | MemFlags |
16Bit flag value. | |
typedef void * | stdPtr |
Simple void pointer. More... | |
typedef uint16_t | MemIndex |
Used for indexing memory blocks. | |
typedef struct memMngrHead | MemMngrHead |
memMngrHead | |
typedef struct memBlckhead | MemBlckHead |
memBlckhead | |
Functions | |
RetCode | initMEM (void) |
Initialize the memory manager. More... | |
void * | rMalloc (MemSize desiredSize) |
Allocate a block of memory satisfying the desiredSize property. More... | |
void * | rCalloc (const MemSize desiredSize) |
void * | rRealloc (void *ptrToExistingMem, MemSize desiredSize) |
Allocate a block of memory satisfying the desiredSize property. More... | |
void | rFree (void *pToBeFreed) |
The provided block of memory will be added to the memory block cache. More... | |
void | rFullyFree (MemMngrHead *blckToFullyFree) |
Free a block of memory previously allocated with either rMalloc, rCalloc or rRealloc. More... | |
RetCode | memMngr_CreateMemPool (const MemSize sizeOfElements, const uint8_t elements, MemPoolID *const memPoolID) |
Creates a memory pool with the given MemPoolID. More... | |
RetCode | memMngr_DeleteMemPool (const MemPoolID memPoolID) |
Delete a previously created memory pool linked to the provided MemPoolID. More... | |
RetCode | memMngr_MemPoolMalloc (void **ptrToMem, const MemPoolID memPoolID) |
Allocate an element from the memory pool specified by the provided MemPoolID. More... | |
RetCode | memMngr_MemPoolFree (void *ptrToMem, const MemPoolID memPoolID) |
Free a previously allocated block of memory from a memory pool and put it back into the memory pool. More... | |