• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /* Copyright (c) 2010 James Grenning and Contributed to Unity Project
2  * ==========================================
3  *  Unity Project - A Test Framework for C
4  *  Copyright (c) 2007 Mike Karlesky, Mark VanderVoord, Greg Williams
5  *  [Released under MIT License. Please refer to license.txt for details]
6  * ========================================== */
7 
8 #ifndef UNITY_FIXTURE_MALLOC_OVERRIDES_H_
9 #define UNITY_FIXTURE_MALLOC_OVERRIDES_H_
10 
11 #include <stddef.h>
12 
13 #ifdef UNITY_EXCLUDE_STDLIB_MALLOC
14 /* Define this macro to remove the use of stdlib.h, malloc, and free.
15  * Many embedded systems do not have a heap or malloc/free by default.
16  * This internal unity_malloc() provides allocated memory deterministically from
17  * the end of an array only, unity_free() only releases from end-of-array,
18  * blocks are not coalesced, and memory not freed in LIFO order is stranded. */
19     #ifndef UNITY_INTERNAL_HEAP_SIZE_BYTES
20     #define UNITY_INTERNAL_HEAP_SIZE_BYTES 256
21     #endif
22 #endif
23 
24 /* These functions are used by the Unity Fixture to allocate and release memory
25  * on the heap and can be overridden with platform-specific implementations.
26  * For example, when using FreeRTOS UNITY_FIXTURE_MALLOC becomes pvPortMalloc()
27  * and UNITY_FIXTURE_FREE becomes vPortFree(). */
28 #if !defined(UNITY_FIXTURE_MALLOC) || !defined(UNITY_FIXTURE_FREE)
29     #include <stdlib.h>
30     #define UNITY_FIXTURE_MALLOC(size) malloc(size)
31     #define UNITY_FIXTURE_FREE(ptr)    free(ptr)
32 #else
33     extern void* UNITY_FIXTURE_MALLOC(size_t size);
34     extern void UNITY_FIXTURE_FREE(void* ptr);
35 #endif
36 
37 #define malloc  unity_malloc
38 #define calloc  unity_calloc
39 #define realloc unity_realloc
40 #define free    unity_free
41 
42 void* unity_malloc(size_t size);
43 void* unity_calloc(size_t num, size_t size);
44 void* unity_realloc(void * oldMem, size_t size);
45 void unity_free(void * mem);
46 
47 #endif /* UNITY_FIXTURE_MALLOC_OVERRIDES_H_ */
48