FreeRTOS-Kernel/FreeRTOS/Test/CBMC/proofs/Task/TaskDelete
Yuhui Zheng 8156f64d1c Copying CBMC proofs from aws/amazon-freertos repo ./tools/cbmc to this repo ./FreeRTOS/Test/CBMC as is.
The commit ID in aws/amazon-freertos is 0c8e0217f2a43bdeb364b58ae01c6c259e03ef1b.
2020-03-31 14:21:53 -07:00
..
Makefile.json Copying CBMC proofs from aws/amazon-freertos repo ./tools/cbmc to this repo ./FreeRTOS/Test/CBMC as is. 2020-03-31 14:21:53 -07:00
README.md Copying CBMC proofs from aws/amazon-freertos repo ./tools/cbmc to this repo ./FreeRTOS/Test/CBMC as is. 2020-03-31 14:21:53 -07:00
TaskDelete_harness.c Copying CBMC proofs from aws/amazon-freertos repo ./tools/cbmc to this repo ./FreeRTOS/Test/CBMC as is. 2020-03-31 14:21:53 -07:00
tasks_test_access_functions.h Copying CBMC proofs from aws/amazon-freertos repo ./tools/cbmc to this repo ./FreeRTOS/Test/CBMC as is. 2020-03-31 14:21:53 -07:00

This proof demonstrates the memory safety of the TaskDelete function. The initialization for the task to be delete and pxCurrentTCB is quite similar (since the task handle may be NULL, and in that case pxCurrentTCB is used). The task to be deleted requires the stack in the task control block to be allocated, and the flag for static allocation to be properly set (i.e., valid values as defined by the macros) Task lists are initialized with these tasks and nondet. filled with a few more items. We assume a nondet. value for xSchedulerRunning.

This proof is a work-in-progress. Proof assumptions are described in the harness. The proof also assumes the following functions are memory safe and have no side effects relevant to the memory safety of this function:

  • vPortCloseRunningThread
  • vPortDeleteThread
  • vPortEnterCritical
  • vPortExitCritical
  • vPortGenerateSimulatedInterrupt