mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-10-16 01:37:45 -04:00
* Add proof * Remove and Rename files * Modify the makefile * Update Makefile.json * Add _static to FreeRTOS_IP.c * Update prvProcessEthernetPacket_harness.c * Update the proof and add list to stubs * add assertions * Update the proof * cleanup * Update * Update after @yanjos-dev's comment * Remove unnecessary assumption
26 lines
1.1 KiB
C
26 lines
1.1 KiB
C
#include <stdlib.h>
|
|
|
|
#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));
|
|
}
|