\r
ApplicationType GetApplicationID( void );\r
ISRType GetISRID( void );\r
+StatusType GetActiveApplicationMode( AppModeType* mode);\r
\r
typedef int8_t Os_IntCounterType;\r
\r
/** @req OS304 */\r
rv = E_OS_VALUE;\r
goto err;\r
- } else {\r
- if( Cycle == 0 ||\r
- (Cycle >= COUNTER_MIN_CYCLE(aPtr)) ||\r
- (Cycle <= COUNTER_MAX(aPtr)) ) {\r
- /* OK */\r
- } else {\r
- /** @req OS304 */\r
- rv = E_OS_VALUE;\r
- goto err;\r
- }\r
+ }\r
+\r
+ if( Cycle != 0 &&\r
+ ( (Cycle < COUNTER_MIN_CYCLE(aPtr)) ||\r
+ (Cycle > COUNTER_MAX(aPtr)) ) ) {\r
+ /** @req OS304 */\r
+ rv = E_OS_VALUE;\r
+ goto err;\r
}\r
\r
Irq_Save(flags);\r
if( !(curr_pcb->ev_set & Mask) ) {\r
\r
curr_pcb->ev_wait = Mask;\r
- Os_TaskMakeWaiting(curr_pcb);\r
\r
if ( Os_SchedulerResourceIsFree() ) {\r
+ POSTTASKHOOK();\r
+ Os_TaskMakeWaiting(curr_pcb);\r
Os_Dispatch(0);\r
+ } else {\r
+ Os_TaskMakeWaiting(curr_pcb);\r
}\r
}\r
\r
void Os_TaskStartExtended( void ) {\r
OsPcbType *pcb;\r
\r
- PRETASKHOOK();\r
-\r
pcb = Os_TaskGetCurrent();\r
Os_ResourceGetInternal();\r
Os_TaskMakeRunning(pcb);\r
\r
+ PRETASKHOOK();\r
+\r
Os_ArchFirstCall();\r
\r
/** @req OS239 */\r
void Os_TaskStartBasic( void ) {\r
OsPcbType *pcb;\r
\r
- PRETASKHOOK();\r
-\r
pcb = Os_TaskGetCurrent();\r
Os_ResourceGetInternal();\r
Os_TaskMakeRunning(pcb);\r
+\r
+ PRETASKHOOK();\r
+\r
Os_ArchFirstCall();\r
\r
\r
currPcbPtr = Os_TaskGetCurrent();\r
/* Swap if we found any process or are forced (multiple activations)*/\r
if( pcbPtr != currPcbPtr ) {\r
+\r
/* Add us to the ready list */\r
if( currPcbPtr->state & ST_RUNNING ) {\r
+ /** @req OS052 */\r
+ POSTTASKHOOK();\r
Os_TaskRunningToReady(currPcbPtr);\r
}\r
\r
/*\r
* Swap context\r
*/\r
- /** @req OS052 */\r
- POSTTASKHOOK();\r
assert(pcbPtr!=NULL);\r
\r
Os_ResourceReleaseInternal();\r
*/\r
if( curr_pcb->activations <= 0 ) {\r
curr_pcb->activations = 0;\r
+ POSTTASKHOOK();\r
Os_TaskMakeSuspended(curr_pcb);\r
} else {\r
/* We need to add ourselves to the ready list again,\r
--curr_pcb->activations;\r
if( curr_pcb->activations <= 0 ) {\r
curr_pcb->activations = 0;\r
+ POSTTASKHOOK();\r
Os_TaskMakeSuspended(curr_pcb);\r
}\r
\r