version 1.1, 2007/11/19 15:54:33 |
version 1.2, 2007/11/20 12:57:37 |
|
|
*/ |
*/ |
struct taskheader { |
struct taskheader { |
const char *th_name; /* task name */ |
const char *th_name; /* task name */ |
void (*th_enter)(void *arg); /* entry point */ |
uint8_t th_priority; /* priority, bigger the value = higher priority */ |
uint8_t ta_priority; /* priority, less value = higher priority */ |
void (*th_enter)(void); /* entry point */ |
}; |
}; |
|
|
/* |
/* |
|
|
uint8_t ta_state; /* task state (running, blocked, etc.) */ |
uint8_t ta_state; /* task state (running, blocked, etc.) */ |
uint32_t ta_timeo; /* timeout (in HZ) if task is blocked */ |
uint32_t ta_timeo; /* timeout (in HZ) if task is blocked */ |
uint32_t *ta_stackptr; /* task stack addr (used to switch-back to that task) */ |
uint32_t *ta_stackptr; /* task stack addr (used to switch-back to that task) */ |
|
|
|
struct task *ta_nextp; |
}; |
}; |
|
|
/* |
/* |
|
|
#define TASK_READY 0x01 /* ready for schedule */ |
#define TASK_READY 0x01 /* ready for schedule */ |
#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); |
|
|
|
|
#endif /* not _SYS_KERN_SCHED_H */ |
#endif /* not _SYS_KERN_SCHED_H */ |