mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-12-08 20:55:14 -05:00
* Update History.txt and README.md for December release (#744) * Update History.txt and README.md for release * Bump mbedtls submodule to v2.28.0 (#745) * Patch project files for mbedtls (#751) * Apply group 1 patches * Apply patches for group 2 * Update project files for mbedTLS new version Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com> * Fix warnings in projects Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com> * Fix warnings in HTTP_S3_Download demo Signed-off-by: Gaurav Aggarwal <aggarg@amazon.com> Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com> * Update changelog and history for corePKCS11 update (#752) * Update submodule pointer and manifest.yml for corePKCS11 (#754) * Update readme and history.txt to show that Sigv4 is a newly added library (#756) * Revert update to v143 of VS toolset (#757) * [AUTO][RELEASE]: Bump file header version to "202112.00" * Update file headers to satisfy core checks Co-authored-by: Muneeb Ahmed <54290492+muneebahmed10@users.noreply.github.com> Co-authored-by: Gaurav Aggarwal <aggarg@amazon.com> Co-authored-by: johnrhen <johnrhen@users.noreply.github.com> |
||
|---|---|---|
| .. | ||
| create.c | ||
| prvCopyDataFromQueue.c | ||
| prvCopyDataToQueue.c | ||
| prvIsQueueEmpty.c | ||
| prvIsQueueFull.c | ||
| prvLockQueue.c | ||
| prvUnlockQueue.c | ||
| README.md | ||
| uxQueueMessagesWaiting.c | ||
| uxQueueSpacesAvailable.c | ||
| vQueueDelete.c | ||
| xQueueGenericSend.c | ||
| xQueueGenericSendFromISR.c | ||
| xQueueIsQueueEmptyFromISR.c | ||
| xQueueIsQueueFullFromISR.c | ||
| xQueuePeek.c | ||
| xQueuePeekFromISR.c | ||
| xQueueReceive.c | ||
| xQueueReceiveFromISR.c | ||
FreeRTOS queue proofs
In the queue predicates and proofs we use the following variable names.
Storage: The concrete queue storage ofN*Mbytes. Thebufferpredicate, defined ininclude/proof/queue.hallows us to treat the storage as a listcontentsofNitems, each of which isMbytes.N: queue length (i.e., the maximum number of items the queue can store)M: size in bytes of each elementW: logical index of the write pointer, necessarily between0..(N-1)such that the write pointerpcWriteTo == Storage + W * M.R: logical index of the read pointer, necessarily between0..(N-1)such that the read pointerpcReadFrom == Storage + R * M.K: number of items currently in the queue corresponding touxMessagesWaiting
The queue predicate, defined in include/proof/queue.h, relates the concrete
queue storage to an abstract list abs of K items. More precisely, the key
queue invariant is:
abs == take(K, rotate_left((R+1)%N, contents)) &*&
W == (R + 1 + K) % N
where (R+1)%N is the front of the queue, W is the back of the queue,
rotate_left allows for the wraparound of queue storage, and take gives the
first K elements.