FreeRTOS-Kernel/FreeRTOS/Test/CBMC/proofs/utility/memory_assignments.c
alfred gedeon ae92d8c6ee
Add uncrustify github workflow (#659)
* Add uncrustify github workflow

* Fix exclusion pattern

* fix find expression

* exclude uncrustify files

* Uncrustify common demo and test files

* exlude white space checking files

* Fix EOL whitespace checker

* Remove whitespaces from EOL

* Fix space at EOL

* Fix find spaces at EOL

Co-authored-by: Archit Aggarwal <architag@amazon.com>
2021-07-22 14:23:48 -07:00

30 lines
1.1 KiB
C

#define ensure_memory_is_valid( px, length ) ( px != NULL ) && __CPROVER_w_ok( ( px ), length )
/* Implementation of safe malloc which returns NULL if the requested size is 0.
* Warning: The behavior of malloc(0) is platform dependent.
* It is possible for malloc(0) to return an address without allocating memory.*/
void * safeMalloc( size_t xWantedSize )
{
return nondet_bool() ? malloc( xWantedSize ) : NULL;
}
/* Memory assignment for FreeRTOS_Socket_t */
FreeRTOS_Socket_t * ensure_FreeRTOS_Socket_t_is_allocated()
{
FreeRTOS_Socket_t * pxSocket = safeMalloc( sizeof( FreeRTOS_Socket_t ) );
if( ensure_memory_is_valid( pxSocket, sizeof( FreeRTOS_Socket_t ) ) )
{
pxSocket->u.xTCP.rxStream = safeMalloc( sizeof( StreamBuffer_t ) );
pxSocket->u.xTCP.txStream = safeMalloc( sizeof( StreamBuffer_t ) );
pxSocket->u.xTCP.pxPeerSocket = safeMalloc( sizeof( FreeRTOS_Socket_t ) );
}
return pxSocket;
}
/* Memory assignment for FreeRTOS_Network_Buffer */
NetworkBufferDescriptor_t * ensure_FreeRTOS_NetworkBuffer_is_allocated()
{
return safeMalloc( sizeof( NetworkBufferDescriptor_t ) );
}