mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-12-12 14:45:09 -05:00
Refined task control block predicate TCB_p such that it can be used to justify memset-ing the stack.
This commit is contained in:
parent
80134a65ed
commit
1042ea8cf8
3 changed files with 15 additions and 7 deletions
2
tasks.c
2
tasks.c
|
|
@ -1361,7 +1361,7 @@ static void prvYieldForTask( TCB_t * pxTCB,
|
|||
pxNewTCB->pxStack = pxStack;
|
||||
//@ close xLIST_ITEM(&pxNewTCB->xStateListItem, _, _, _, _);
|
||||
//@ close xLIST_ITEM(&pxNewTCB->xEventListItem, _, _, _, _);
|
||||
//@ close TCB_p(pxNewTCB);
|
||||
//@ close TCB_p(pxNewTCB, ((size_t) usStackDepth) * sizeof(StackType_t));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -81,7 +81,7 @@ predicate xLIST_ITEM(
|
|||
/*@
|
||||
// This predicate represents the memory corresponding to an
|
||||
// instance of type `TCB_t` aka `tskTaskControlBlock`.
|
||||
predicate TCB_p(TCB_t * tcb) =
|
||||
predicate TCB_p(TCB_t * tcb, int stackSize) =
|
||||
malloc_block_tskTaskControlBlock(tcb) &*&
|
||||
tcb->pxTopOfStack |-> _ &*&
|
||||
|
||||
|
|
@ -91,7 +91,11 @@ predicate TCB_p(TCB_t * tcb) =
|
|||
struct_xLIST_ITEM_padding(&tcb->xEventListItem) &*&
|
||||
|
||||
tcb->uxPriority |-> _ &*&
|
||||
tcb->pxStack |-> _ &*&
|
||||
|
||||
tcb->pxStack |-> ?stackPtr &*&
|
||||
chars_((char*) stackPtr, stackSize, _) &*&
|
||||
malloc_block_chars((char*) stackPtr, stackSize) &*&
|
||||
|
||||
tcb->xTaskRunState |-> _ &*&
|
||||
tcb->xIsIdle |-> _ &*&
|
||||
|
||||
|
|
@ -10723,7 +10727,7 @@ static void prvYieldForTask( TCB_t * pxTCB,
|
|||
pxNewTCB->pxStack = pxStack;
|
||||
//@ close xLIST_ITEM(&pxNewTCB->xStateListItem, _, _, _, _);
|
||||
//@ close xLIST_ITEM(&pxNewTCB->xEventListItem, _, _, _, _);
|
||||
//@ close TCB_p(pxNewTCB);
|
||||
//@ close TCB_p(pxNewTCB, ((size_t) usStackDepth) * sizeof(StackType_t));
|
||||
}
|
||||
else
|
||||
{
|
||||
|
|
|
|||
|
|
@ -8,7 +8,7 @@
|
|||
/*@
|
||||
// This predicate represents the memory corresponding to an
|
||||
// instance of type `TCB_t` aka `tskTaskControlBlock`.
|
||||
predicate TCB_p(TCB_t * tcb) =
|
||||
predicate TCB_p(TCB_t * tcb, int stackSize) =
|
||||
malloc_block_tskTaskControlBlock(tcb) &*&
|
||||
tcb->pxTopOfStack |-> _ &*&
|
||||
|
||||
|
|
@ -18,7 +18,11 @@ predicate TCB_p(TCB_t * tcb) =
|
|||
struct_xLIST_ITEM_padding(&tcb->xEventListItem) &*&
|
||||
|
||||
tcb->uxPriority |-> _ &*&
|
||||
tcb->pxStack |-> _ &*&
|
||||
|
||||
tcb->pxStack |-> ?stackPtr &*&
|
||||
chars_((char*) stackPtr, stackSize, _) &*&
|
||||
malloc_block_chars((char*) stackPtr, stackSize) &*&
|
||||
|
||||
tcb->xTaskRunState |-> _ &*&
|
||||
tcb->xIsIdle |-> _ &*&
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue