all
This commit is contained in:
102
RTOS_Labs_common/heap.c
Normal file
102
RTOS_Labs_common/heap.c
Normal file
@@ -0,0 +1,102 @@
|
||||
// filename *************************heap.c ************************
|
||||
// starter
|
||||
|
||||
#include <stdint.h>
|
||||
#include "../RTOS_Labs_common/heap.h"
|
||||
|
||||
long StartCritical(void);
|
||||
void EndCritical(long);
|
||||
#define OSCRITICAL_ENTER() { sr = StartCritical(); }
|
||||
#define OSCRITICAL_EXIT() { EndCritical(sr); }
|
||||
|
||||
|
||||
//******** Heap_Init ***************
|
||||
// Initialize the Heap
|
||||
// input: none
|
||||
// output: always HEAP_OK
|
||||
// notes: Initializes/resets the heap to a clean state where no memory
|
||||
// is allocated.
|
||||
int32_t Heap_Init(void){
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//******** Heap_Malloc ***************
|
||||
// Allocate memory, data not initialized
|
||||
// input:
|
||||
// desiredBytes: desired number of bytes to allocate
|
||||
// output: void* pointing to the allocated memory or will return NULL
|
||||
// if there isn't sufficient space to satisfy allocation request
|
||||
void* Heap_Malloc(int32_t desiredBytes){ int sr;
|
||||
|
||||
return 0; //NULL
|
||||
}
|
||||
|
||||
|
||||
//******** Heap_Calloc ***************
|
||||
// Allocate memory, data are initialized to 0
|
||||
// input:
|
||||
// desiredBytes: desired number of bytes to allocate
|
||||
// output: void* pointing to the allocated memory block or will return NULL
|
||||
// if there isn't sufficient space to satisfy allocation request
|
||||
//notes: the allocated memory block will be zeroed out
|
||||
void* Heap_Calloc(int32_t desiredBytes){
|
||||
|
||||
return 0; //NULL
|
||||
|
||||
}
|
||||
|
||||
|
||||
//******** Heap_Realloc ***************
|
||||
// Reallocate buffer to a new size
|
||||
//input:
|
||||
// oldBlock: pointer to a block
|
||||
// desiredBytes: a desired number of bytes for a new block
|
||||
// where the contents of the old block will be copied to
|
||||
// output: void* pointing to the new block or will return NULL
|
||||
// if there is any reason the reallocation can't be completed
|
||||
// notes: the given block will be unallocated after its contents
|
||||
// are copied to the new block
|
||||
void* Heap_Realloc(void* oldBlock, int32_t desiredBytes){
|
||||
|
||||
return 0; // NULL
|
||||
|
||||
}
|
||||
|
||||
|
||||
//******** Heap_Free ***************
|
||||
// return a block to the heap
|
||||
// input: pointer to memory to unallocate
|
||||
// output: HEAP_OK if everything is ok;
|
||||
// HEAP_ERROR_POINTER_OUT_OF_RANGE if pointer points outside the heap;
|
||||
// HEAP_ERROR_CORRUPTED_HEAP if heap has been corrupted or trying to
|
||||
// unallocate memory that has already been unallocated;
|
||||
int32_t Heap_Free(void* pointer){ int sr;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//******** Heap_Test ***************
|
||||
// Test the heap
|
||||
// input: none
|
||||
// output: validity of the heap - either HEAP_OK or HEAP_ERROR_HEAP_CORRUPTED
|
||||
int32_t Heap_Test(void){
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
//******** Heap_Stats ***************
|
||||
// return the current status of the heap
|
||||
// input: none
|
||||
// output: a heap_stats_t that describes the current usage of the heap
|
||||
int32_t Heap_Stats(heap_stats_t *stats){
|
||||
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user