mirror of
https://github.com/FreeRTOS/FreeRTOS-Kernel.git
synced 2025-12-12 14:45:09 -05:00
45 lines
No EOL
1.2 KiB
C
45 lines
No EOL
1.2 KiB
C
#ifndef VERIFAST_LOCK_PREDICATES_H
|
|
#define VERIFAST_LOCK_PREDICATES_H
|
|
|
|
|
|
/*@
|
|
// We assume tha `configNUM_CORES` evaluates to 1.
|
|
// TODO: Parametrise in terms of `configNUM_CORES`.
|
|
// PROBLEM: Shouldn't `configNUM_CORES` be greater than 1?
|
|
predicate otherGlobalVars() =
|
|
integer_(&uxCurrentNumberOfTasks, sizeof(UBaseType_t), false, _)
|
|
&*&
|
|
integer_(&xTickCount, sizeof(TickType_t), false, _)
|
|
&*&
|
|
integer_(&uxTopReadyPriority, sizeof(UBaseType_t), false, _)
|
|
&*&
|
|
integer_(&xSchedulerRunning, sizeof(BaseType_t), true, _)
|
|
&*&
|
|
integer_(&xPendedTicks, sizeof(TickType_t), false, _)
|
|
&*&
|
|
integers_(&xYieldPendings, sizeof(BaseType_t), true, 1, _)
|
|
&*&
|
|
integer_(&uxTaskNumber, sizeof(UBaseType_t), false, _)
|
|
&*&
|
|
integer_(&xNextTaskUnblockTime, sizeof(TickType_t), false, _)
|
|
&*&
|
|
pointers(&xIdleTaskHandle, 1, _);
|
|
|
|
predicate unprotectedGlobalVars() =
|
|
[_] integer_(&xSchedulerRunning, sizeof(BaseType_t), true, _);
|
|
@*/
|
|
|
|
|
|
/*
|
|
void vf_validate_lock_predicate()
|
|
//@ requires module(tasks__pp, true);
|
|
//@ ensures true;
|
|
{
|
|
//@ open_module();
|
|
uxCurrentNumberOfTasks = 0;
|
|
|
|
//@ close tasks_global_vars();
|
|
}
|
|
*/
|
|
|
|
#endif /* VERIFAST_LOCK_PREDICATES_H */ |