os_core/os_scheduler.c File Reference

Go to the source code of this file.

Functions

void OsSchedulerInit (void)
void OsSchedulerRunNext (void)
void OsSchedulerFindNextIsr (void)
INT8U OsSchedulerStartHigh (void)
void OsSchedulerPut (OS_TCB *pOsTcb)

Variables

OS_TCB * SchedulerListHead
OS_TCB * SchedulerListTail
OS_SCHEDULER_CONTROL OsSchedulerCtrl


Function Documentation

void OsSchedulerFindNextIsr ( void   ) 

Definition at line 63 of file os_scheduler.c.

00063                                  { // interrupt level scheduler
00064     OS_TCB *pOsTcb;    
00065     
00066     if((pOsTcb=OsTaskReadyTaskGet(0))==(OS_TCB *)0) return;
00067     OsSchedulerCtrl.TaskSwitchTimer=TASK_SWITCH_TIME;   
00068     OSPrioHighRdy=(INT32U)pOsTcb->Id;
00069     OSTCBHighRdy=(INT32U)pOsTcb;
00070     pOsTcb=(OS_TCB *)OSTCBCur;
00071     if(pOsTcb->Status==OS_TASK_READY){ 
00072         OsTaskReadyTaskPut(pOsTcb);    
00073     }  
00074     OSTaskSwitch=1;          
00075 }

void OsSchedulerInit ( void   ) 

Definition at line 27 of file os_scheduler.c.

00027                           {
00028     SchedulerListHead=(OS_TCB *)0;    
00029     SchedulerListTail=(OS_TCB *)0;  
00030     OsSchedulerCtrl.EntryNumber=0;   
00031     OsSchedulerCtrl.State=0; 
00032     OsSchedulerCtrl.TaskSwitchTimer=TASK_SWITCH_TIME;    
00033 }

void OsSchedulerPut ( OS_TCB *  pOsTcb  ) 

Definition at line 34 of file os_scheduler.c.

00034                                    {  
00035     
00036     OsTaskReadyTaskPut(pOsTcb);
00037 }

void OsSchedulerRunNext ( void   ) 

Definition at line 50 of file os_scheduler.c.

00050                              { // task level scheduler
00051     OS_TCB *pOsTcb;    
00052     
00053     if((pOsTcb=OsTaskReadyTaskGet(0))==(OS_TCB *)0) return;
00054     OsSchedulerCtrl.TaskSwitchTimer=TASK_SWITCH_TIME;   
00055     OSPrioHighRdy=(INT32U)pOsTcb->Id;
00056     OSTCBHighRdy=(INT32U)pOsTcb;
00057     pOsTcb=(OS_TCB *)OSTCBCur;
00058     if(pOsTcb->Status==OS_TASK_READY){ 
00059         OsTaskReadyTaskPut(pOsTcb);    
00060     }         
00061     OS_TASK_SW(); 
00062 }

INT8U OsSchedulerStartHigh ( void   ) 

Definition at line 42 of file os_scheduler.c.

00042                                 {
00043      OS_TCB *pOsTcb;    
00044     
00045     if((pOsTcb=OsTaskReadyTaskGet(0))==(OS_TCB *)0) return FALSE;
00046     OSPrioCur=(INT32U)pOsTcb->Id;
00047     OSTCBCur=(INT32U)pOsTcb;
00048     return TRUE;
00049 }


Variable Documentation

OS_SCHEDULER_CONTROL OsSchedulerCtrl

Definition at line 19 of file os_scheduler.c.

Definition at line 17 of file os_scheduler.c.

Definition at line 18 of file os_scheduler.c.


Generated on Tue Sep 2 08:45:42 2008 for A Simple operation System using S3C2410 by  doxygen 1.5.6