mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-12-14 07:35:11 -05:00
Refactored lock predicates to improve readability.
This commit is contained in:
parent
b310efa029
commit
014acb9a00
6 changed files with 56 additions and 68 deletions
|
|
@ -96,22 +96,22 @@
|
|||
#define taskCHECK_FOR_STACK_OVERFLOW() VF__taskCHECK_FOR_STACK_OVERFLOW()
|
||||
|
||||
void VF__taskCHECK_FOR_STACK_OVERFLOW()
|
||||
/*@ requires prvTCB_p(?gCurrentTCB, ?ulFreeBytesOnStack) &*&
|
||||
pubTCB_p(gCurrentTCB, ?uxCriticalNesting) &*&
|
||||
/*@ requires prvSeg_TCB_p(?gCurrentTCB, ?ulFreeBytesOnStack) &*&
|
||||
coreLocalSeg_TCB_p(gCurrentTCB, ?uxCriticalNesting) &*&
|
||||
// chunks required by `pxCurrentTCB` aka `xTaskGetCurrentTaskHandle()`
|
||||
interruptState_p(coreID_f(), ?state) &*&
|
||||
interruptsDisabled_f(state) == true &*&
|
||||
pointer(&pxCurrentTCBs[coreID_f], gCurrentTCB);
|
||||
@*/
|
||||
/*@ ensures prvTCB_p(gCurrentTCB, ulFreeBytesOnStack) &*&
|
||||
pubTCB_p(gCurrentTCB, uxCriticalNesting) &*&
|
||||
/*@ ensures prvSeg_TCB_p(gCurrentTCB, ulFreeBytesOnStack) &*&
|
||||
coreLocalSeg_TCB_p(gCurrentTCB, uxCriticalNesting) &*&
|
||||
// chunks required by `pxCurrentTCB` aka `xTaskGetCurrentTaskHandle()`
|
||||
interruptState_p(coreID_f(), state) &*&
|
||||
interruptsDisabled_f(state) == true &*&
|
||||
pointer(&pxCurrentTCBs[coreID_f], gCurrentTCB); \
|
||||
@*/ \
|
||||
{ \
|
||||
/*@ open prvTCB_p(gCurrentTCB, ulFreeBytesOnStack); @*/ \
|
||||
/*@ open prvSeg_TCB_p(gCurrentTCB, ulFreeBytesOnStack); @*/ \
|
||||
/*@ assert( stack_p_2(?pxStack, ?ulStackDepth, ?pxTopOfStack, \
|
||||
?ulFreeBytes, ?ulUsedCells, ?ulUnalignedBytes) ); \
|
||||
@*/ \
|
||||
|
|
@ -139,7 +139,7 @@
|
|||
/*@ close stack_p_2(pxStack, ulStackDepth, pxTopOfStack, \
|
||||
ulFreeBytes, ulUsedCells, ulUnalignedBytes); \
|
||||
@*/ \
|
||||
/*@ close prvTCB_p(gCurrentTCB, ulFreeBytesOnStack); @*/ \
|
||||
/*@ close prvSeg_TCB_p(gCurrentTCB, ulFreeBytesOnStack); @*/ \
|
||||
TCB_t* tcb1 = pxCurrentTCB; \
|
||||
TCB_t* tcb2 = pxCurrentTCB; \
|
||||
vApplicationStackOverflowHook( ( TaskHandle_t ) tcb1, tcb2->pcTaskName ); \
|
||||
|
|
@ -151,7 +151,7 @@
|
|||
chars_split((char*) pxStack, ulFreeBytesOnStack); \
|
||||
close stack_p_2(pxStack, ulStackDepth, pxTopOfStack, \
|
||||
ulFreeBytes, ulUsedCells, ulUnalignedBytes); \
|
||||
close prvTCB_p(gCurrentTCB, ulFreeBytesOnStack); \
|
||||
close prvSeg_TCB_p(gCurrentTCB, ulFreeBytesOnStack); \
|
||||
} \
|
||||
@*/ \
|
||||
}
|
||||
|
|
|
|||
|
|
@ -1863,11 +1863,11 @@ configSTACK_DEPTH_TYPE uxTaskGetStackHighWaterMark2( TaskHandle_t xTask ) PRIVIL
|
|||
*/
|
||||
void vApplicationStackOverflowHook( TaskHandle_t xTask,
|
||||
char * pcTaskName );
|
||||
/*@ requires prvTCB_p(xTask, ?ulFreeBytesOnStack) &*&
|
||||
pubTCB_p(xTask, ?uxCriticalNesting);
|
||||
/*@ requires prvSeg_TCB_p(xTask, ?ulFreeBytesOnStack) &*&
|
||||
coreLocalSeg_TCB_p(xTask, ?uxCriticalNesting);
|
||||
@*/
|
||||
/*@ ensures prvTCB_p(xTask, ulFreeBytesOnStack) &*&
|
||||
pubTCB_p(xTask, uxCriticalNesting);
|
||||
/*@ ensures prvSeg_TCB_p(xTask, ulFreeBytesOnStack) &*&
|
||||
coreLocalSeg_TCB_p(xTask, uxCriticalNesting);
|
||||
@*/
|
||||
|
||||
#endif
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue