asmlinkage

asmlinkage作用就是告诉编译器,函数参数不是用用寄存器来传递,而是用堆栈来传递的

采用asmlinkage,原因是因为用户态寄存器在系统调用进入内核态时,会把用户态的寄存器全部压栈,通过合理的构造。正好满足用户态通过寄存器传递参数,内核态通过栈取参数的标准要求。这是很巧妙的安排!其实还可以发现,内核只有在系统调用时才用asmlinkage,其它函数都没有。这是有意而为之的。

posted @ 2018-04-23 11:23  feifeizhuzhu  阅读(254)  评论(0编辑  收藏  举报