FreeRTOS-Kernel/FreeRTOS/Test/CBMC/proofs/Queue/QueueTakeMutexRecursive
Dan Good b6624fa44d
Remove or rework assumptions in queue proofs (#603)
This commit is paired with another to queue.c in the kernel.  To
accomodate changes in newer versions of CBMC, the
--pointer-overflow-check is removed.
2021-06-04 15:42:14 -04:00
..
Makefile.json Remove or rework assumptions in queue proofs (#603) 2021-06-04 15:42:14 -04:00
QueueTakeMutexRecursive_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
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

Assuming that the parameter is valid mutex data structure and reasonable bounded, this harness proves the memory safety of QueueTakeMutexRecursive. Task pool and concurrency functions are abstracted away and replaced with required stubs to drive coverage.

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:

  • pvTaskIncrementMutexHeldCount
  • vPortEnterCritical
  • vPortExitCritical
  • vPortGenerateSimulatedInterrupt
  • vTaskMissedYield
  • vTaskPlaceOnEventList
  • vTaskPriorityDisinheritAfterTimeout
  • vTaskSuspendAll
  • xTaskGetCurrentTaskHandle
  • xTaskPriorityDisinherit
  • xTaskPriorityInherit
  • xTaskRemoveFromEventList
  • xTaskResumeAll