[BACK]Return to kern_sched.h CVS log [TXT][DIR] Up to [local] / funnyos / sys

Diff for /funnyos/sys/kern_sched.h between version 1.1 and 1.4

version 1.1, 2007/11/19 15:54:33 version 1.4, 2007/11/23 13:37:43
Line 4 
Line 4 
 #ifndef _SYS_KERN_SCHED_H  #ifndef _SYS_KERN_SCHED_H
 #define _SYS_KERN_SCHED_H  #define _SYS_KERN_SCHED_H
 #include <sys/types.h>  #include <sys/types.h>
   #include <sys/pcb.h>
   
 /*  /*
  * Task header is used by user to describe task in config.c   * u_task is used by user to describe task in config.c.
    * "user task".
  */   */
 struct taskheader {  struct u_task {
         const char *th_name;                            /* task name */          const char *ut_name;                    /* task name */
         void            (*th_enter)(void *arg); /* entry point */          uint8_t         ut_priority;            /* priority, bigger the value = higher priority */
         uint8_t         ta_priority;                    /* priority, less value = higher priority */          void            (*ut_enter)(void);      /* entry point */
 };  };
   
   
 /*  /*
  * Kernel sees each system task as struct task;   * Kernel sees each system task as struct k_task;
  * it is used for scheduling and context switches.   * it is used for scheduling and context switches.
    * "kernel task".
  */   */
 struct task {  struct k_task {
         struct taskheader       *ta_theader;    /* points to user-described data */          struct u_task   *kt_utask;      /* points to user-described data */
         uint8_t                         ta_taskid;              /* task id (TID) */          uint8_t                 kt_tid;         /* task id (TID) */
   
         uint8_t                         ta_state;               /* task state (running, blocked, etc.) */          uint8_t                 kt_state;       /* task state (running, blocked, etc.) */
         uint32_t                        ta_timeo;               /* timeout (in HZ) if task is blocked */  //      uint32_t                kt_timeo;       /* timeout (in HZ) if task is blocked */
         uint32_t                        *ta_stackptr;   /* task stack addr (used to switch-back to that task) */          struct pcb              kt_pcb;         /* hardware context (15 ARM registers) */
   
   
           struct k_task   *kt_next;
 };  };
   
 /*  /*
Line 35 
Line 42 
 #define TASK_RUNNING    0x02    /* running now */  #define TASK_RUNNING    0x02    /* running now */
 #define TASK_SLEEPING   0x04    /* task waits for (planned) timeout */  #define TASK_SLEEPING   0x04    /* task waits for (planned) timeout */
   
   
   /*
    * Functions.
    */
   void    sched_init(void);
   void    sched_tick(void);
   
 #endif /* not _SYS_KERN_SCHED_H */  #endif /* not _SYS_KERN_SCHED_H */
   

Legend:
Removed from v.1.1  
changed lines
  Added in v.1.4

CVSweb