この記事はLinux Advent Calendar 2014 1日目の記事です。 switch_toはプロセス切り替え時の処理ですね。ここを読んでみます。基本的にはアセンブラで__switch_toがcの関数となってます。 まずはプロトタイプから。引数は3個でprev,、next、 lastの3個。型はすべてstruct task_structです。prevは切り替え前のプロセスで現在実行中のプロセス、nextは次に動かすプロセスです。lastは__switch_to()の戻り値が入ります。 103 /* Save restore flags to clear handle leaking NT */ 104 #define switch_to(prev, next, last) \ SAVE_CONTEXTは予想通りマクロです。 105 asm volatile(SAVE_CONTEX