| /* Copyright (c) 2010 James Grenning and Contributed to Unity Project | |
| * ========================================== | |
| * Unity Project - A Test Framework for C | |
| * Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams | |
| * [Released under MIT License. Please refer to license.txt for details] | |
| * ========================================== */ | |
| #ifndef UNITY_FIXTURE_MALLOC_OVERRIDES_H_ | |
| #define UNITY_FIXTURE_MALLOC_OVERRIDES_H_ | |
| #include <stddef.h> | |
| #ifdef UNITY_EXCLUDE_STDLIB_MALLOC | |
| /* Define this macro to remove the use of stdlib.h, malloc, and free. | |
| * Many embedded systems do not have a heap or malloc/free by default. | |
| * This internal unity_malloc() provides allocated memory deterministically from | |
| * the end of an array only, unity_free() only releases from end-of-array, | |
| * blocks are not coalesced, and memory not freed in LIFO order is stranded. */ | |
| #ifndef UNITY_INTERNAL_HEAP_SIZE_BYTES | |
| #define UNITY_INTERNAL_HEAP_SIZE_BYTES 256 | |
| #endif | |
| #endif | |
| /* These functions are used by the Unity Fixture to allocate and release memory | |
| * on the heap and can be overridden with platform-specific implementations. | |
| * For example, when using FreeRTOS UNITY_FIXTURE_MALLOC becomes pvPortMalloc() | |
| * and UNITY_FIXTURE_FREE becomes vPortFree(). */ | |
| #if !defined(UNITY_FIXTURE_MALLOC) || !defined(UNITY_FIXTURE_FREE) | |
| #include <stdlib.h> | |
| #define UNITY_FIXTURE_MALLOC(size) malloc(size) | |
| #define UNITY_FIXTURE_FREE(ptr) free(ptr) | |
| #else | |
| extern void* UNITY_FIXTURE_MALLOC(size_t size); | |
| extern void UNITY_FIXTURE_FREE(void* ptr); | |
| #endif | |
| #define malloc unity_malloc | |
| #define calloc unity_calloc | |
| #define realloc unity_realloc | |
| #define free unity_free | |
| void* unity_malloc(size_t size); | |
| void* unity_calloc(size_t num, size_t size); | |
| void* unity_realloc(void * oldMem, size_t size); | |
| void unity_free(void * mem); | |
| #endif /* UNITY_FIXTURE_MALLOC_OVERRIDES_H_ */ |