Library os_time
Require Import os_code_defs.
Require Import os_code_notations.
Require Import os_ucos_h.
Open Scope code_scope.
Definition OSTimeDly_impl :=
Void ·OSTimeDly·(⌞ticks @ Int16u⌟)··{
⌞ ⌟;
If (ticks′ >ₑ ′0)
{
ENTER_CRITICAL;ₛ
If (OSTCBCur′→OSTCBPrio ==ₑ ′OS_IDLE_PRIO){
EXIT_CRITICAL;ₛ
RETURN
};ₛ
IF ((OSTCBCur′→OSTCBStat ==ₑ ′OS_STAT_RDY) &&ₑ (OSTCBCur′→OSTCBDly ==ₑ ′0)){
OSRdyTbl′[OSTCBCur′→OSTCBY] =ₑ OSRdyTbl′[OSTCBCur′→OSTCBY]&ₑ(∼OSTCBCur′→OSTCBBitX);ₛ
If (OSRdyTbl′[OSTCBCur′→OSTCBY] ==ₑ ′0)
{
OSRdyGrp′ =ₑ OSRdyGrp′ &ₑ (∼OSTCBCur′→OSTCBBitY)
};ₛ
OSTCBCur′→OSTCBDly =ₑ ticks′;ₛ
EXIT_CRITICAL;ₛ
OS_Sched()
}ELSE{
EXIT_CRITICAL
}
};ₛ
RETURN
}·.
Definition OSTimeGet_impl :=
Int32u ·OSTimeGet·(⌞⌟)··{
⌞
ticks @ Int32u
⌟;
ENTER_CRITICAL;ₛ
ticks′ =ₑ OSTime′;ₛ
EXIT_CRITICAL;ₛ
RETURN ticks′
}·.
Close Scope code_scope.