31 void sleepqueue_add(
struct st_tcb *tcb,
unsigned int sleep_time,
32 unsigned int now_time)
34 tcb->
wup_time = now_time + sleep_time;
36 DKFPRINTF(0x01,
"Sleep PID=%d \"%s\" %ld\n", tcb->
id, tcb->
name, sleep_time);
37 DKPRINTF(0x01,
" now = %ld, wup = %ld\n", now_time, tcb->
wup_time);
45 DKPRINTF(0x02,
"TQ 0 top\n");
53 ((
struct tcb_queue *)tmp)->tcb->wup_time) {
55 DKPRINTF(0x02,
"TQ add\n");
60 if(tmp == tmp->next) {
61 SYSERR_PRINT(
"timeout_wait_queue broken? (%p)\n", tmp);
62 disp_regs(run_task->
sp);
75 DKPRINTF(0x02,
"TQ ? add\n");
79 DKPRINTF(0x02,
"TQ tail\n");
94 struct st_tcb *sleepqueue_schedule(
unsigned long long now_time)
96 struct st_tcb *wup_tcb = 0;
98 DKFPRINTF(0x01,
"now_time = %ld\n", now_time);
101 return (
struct st_tcb *)0;
106 return (
struct st_tcb *)0;
112 DKPRINTF(0x01,
"Sleep Timeout wakeup PID=%d \"%s\"\n", wup_tcb->
id,
114 DKPRINTF(0x02,
" now = %ld, wup = %ld\n", now_time, wup_tcb->
wup_time);
struct tcb_queue timer_list
タイムアウト待ちキュー
char name[TASK_NAME_LEN+1]
タスク名
unsigned int wup_time
スリープタイムアウト時間
struct tcb_queue timeout_wait_queue_head
タイムアウト待ちタスクキュー