Refined lock invariant to only give read permission to all tasks and write permission to locally scheduled task

This commit is contained in:
Tobias Reinhard 2022-12-03 08:58:19 -05:00
parent 1919f8142f
commit e4db1f8aba
3 changed files with 22 additions and 9 deletions

View file

@ -111,6 +111,10 @@ predicate prvSeg_TCB_p(TCB_t* tcb, uint32_t ulFreeBytesOnStack) =
predicate sharedSeg_TCB_p(TCB_t* tcb;) =
tcb->xTaskRunState |-> ?gTaskRunState;
// Auxiliary predicate to allow foreach-quantification about fraction
predicate readOnly_sharedSeg_TCB_p(TCB_t* tcb;) =
[1/2]sharedSeg_TCB_p(tcb);
predicate coreLocalSeg_TCB_p(TCB_t* tcb, UBaseType_t uxCriticalNesting) =
tcb->uxCriticalNesting |-> uxCriticalNesting;
@*/