@@ -59,6 +59,8 @@ task.h is included from an application file. */
5959// require "-Wl,--wrap=malloc -Wl,--wrap=free" linker option
6060extern void * __real_malloc (size_t size );
6161extern void __real_free (void * ptr );
62+ extern void * __real_realloc (void * ptr , size_t _size );
63+ extern void * __real_calloc (size_t nmemb , size_t _size );
6264
6365void * __wrap_malloc (size_t c )
6466{
@@ -70,6 +72,17 @@ void __wrap_free (void *ptr)
7072 return (xTaskGetSchedulerState () == taskSCHEDULER_RUNNING ) ? vPortFree (ptr ) : __real_free (ptr );
7173}
7274
75+ void * __wrap_realloc (void * ptr , size_t c )
76+ {
77+ return (xTaskGetSchedulerState () == taskSCHEDULER_RUNNING ) ? pvPortRealloc (ptr , c ) : __real_realloc (ptr , c );
78+ }
79+
80+ void * __wrap_calloc (size_t nmemb , size_t c )
81+ {
82+ return (xTaskGetSchedulerState () == taskSCHEDULER_RUNNING ) ? pvPortCalloc (nmemb , c ) : __real_calloc (nmemb , c );
83+ }
84+
85+
7386void * pvPortMalloc ( size_t xWantedSize )
7487{
7588void * pvReturn ;
@@ -107,3 +120,53 @@ void vPortFree( void *pv )
107120 ( void ) xTaskResumeAll ();
108121 }
109122}
123+ /*-----------------------------------------------------------*/
124+
125+ void * pvPortRealloc ( void * ptr , size_t xWantedSize )
126+ {
127+ void * pvReturn ;
128+
129+ vTaskSuspendAll ();
130+ {
131+ pvReturn = __real_realloc ( ptr , xWantedSize );
132+ traceMALLOC ( pvReturn , xWantedSize );
133+ }
134+ ( void ) xTaskResumeAll ();
135+
136+ #if ( configUSE_MALLOC_FAILED_HOOK == 1 )
137+ {
138+ if ( pvReturn == NULL )
139+ {
140+ extern void vApplicationMallocFailedHook ( void );
141+ vApplicationMallocFailedHook ();
142+ }
143+ }
144+ #endif
145+
146+ return pvReturn ;
147+ }
148+ /*-----------------------------------------------------------*/
149+
150+ void * pvPortCalloc ( size_t nmemb , size_t xWantedSize )
151+ {
152+ void * pvReturn ;
153+
154+ vTaskSuspendAll ();
155+ {
156+ pvReturn = __real_calloc ( nmemb , xWantedSize );
157+ traceMALLOC ( pvReturn , xWantedSize );
158+ }
159+ ( void ) xTaskResumeAll ();
160+
161+ #if ( configUSE_MALLOC_FAILED_HOOK == 1 )
162+ {
163+ if ( pvReturn == NULL )
164+ {
165+ extern void vApplicationMallocFailedHook ( void );
166+ vApplicationMallocFailedHook ();
167+ }
168+ }
169+ #endif
170+
171+ return pvReturn ;
172+ }
0 commit comments