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 (OSTCBCurOSTCBPrio ==ₑ OS_IDLE_PRIO){
                 EXIT_CRITICAL;ₛ
                 RETURN
               };ₛ
               IF ((OSTCBCurOSTCBStat ==ₑ OS_STAT_RDY) &&ₑ (OSTCBCurOSTCBDly ==ₑ 0)){
                 OSRdyTbl[OSTCBCurOSTCBY] =ₑ OSRdyTbl[OSTCBCurOSTCBY]&ₑ(OSTCBCurOSTCBBitX);ₛ
                 If (OSRdyTbl[OSTCBCurOSTCBY] ==ₑ 0)
                 {
                   OSRdyGrp =ₑ OSRdyGrp &ₑ (OSTCBCurOSTCBBitY)
                 };ₛ
                 OSTCBCurOSTCBDly =ₑ 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.