asmlinkageについて
パッケージスケジューラの実装である
kernel/sched.hにおいて
2941 /* 2942 * schedule() is the main scheduler function. 2943 */ 2944 asmlinkage void __sched schedule(void) 2945 { 2946 long *switch_count;
先頭についているasmlinkageって何なの?って気になった。
以下のところに書いてあった。
http://search.luky.org/fol.1998/msg08529.html
http://d.hatena.ne.jp/hyoshiok/20060320#p1
"asmlinkage" という単語そのものには
実行コードに影響を与えるような意味は無いと思われます。ただ、どうも見ているとアセンブラコードからリンクされている (または
呼び出されている) 関数にこの単語がつけられている例が多いようなので
開発者 (あるいは保守担当者) がコードを読む際に、
「この関数はアセンブラコードからリンクされている」ということが
すぐにわかるようにする、という意味でつけられているのではないかと
思います。
http://www.nk.rim.or.jp/~jun/lxasm/asm04.html
この辺をちゃんと読めば、理解が深まりそう。マジでもう眠い。。