task_struct 構造体
ひらをヤりかけたんですが、ここを掘削しようと思ってた事を思いだしました。
grep してみた
個別に見てみる
構造体の定義はスルーでまず kernel/sched.c から。
struct task_struct *current = &(init_task.task), *last_task_used_math = NULL; struct task_struct * task[NR_TASKS] = {&(init_task.task), };
ええと、init_task あたりが以下。
union task_union { struct task_struct task; char stack[PAGE_SIZE]; }; static union task_union init_task = {INIT_TASK,};
ええと、INIT_TASK は include/linux/sched.h で定義されてるな。引用は略。
kernel/hd.c で定義される wait_for_request が以下。
static struct task_struct * wait_for_request=NULL;
fs/buffer.c の buffer_wait な定義が以下。
static struct task_struct * buffer_wait = NULL;
これ、private 扱いだな。内部的には sleep_on と wake_up に渡す用途な模様。これっておそらく kernel/hd.c で定義されている wait_for_request も同様ではないかな。
ちゃんと定義もさらわないと駄目だとは思うんですが、今日は限界。