![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
内核-宏部分
千-山
这个作者很懒,什么都没留下…
展开
-
fastcall 和 asmlinkage
linux操作系统支持多种CPU架构,比如x86、ppc和arm等,参数传递的方式是不一样的。ARM对函数调用过程中的传参定义了一套规则,即 ATPCS,规则中明确指出ARM中R0-R4都是作为通用寄存器使用,超过4个参数的在局部栈中保存,在函数调用时处理器从R0-R4中获取参数,在函数返回时再 将需要返回的参数一次存到R0-R4中,也就是说可以将函数参数直接存放在寄存器中,而x86体系结果是原创 2015-04-23 15:57:59 · 480 阅读 · 0 评论 -
内核3.0.x之函数宏定义
这段时间又碰到系统调用这个家伙,结果在我当前用的3.0.x内核里全变样了。为了将这个问题弄明白,还得自己动手才行,这里非常感谢CSDN的"海风林影"兄弟提供的博文和相关参考文献,还是那句话“成果和荣耀归于前辈”。很多人也都发现,在2.6.28及其之后的内核源码里,系统调用的写法发生了比较大的变化,出现了大量宏定义的代码。在源代码里,以前的诸如open()系统调用的sys_open()函数,转载 2015-04-22 17:16:52 · 570 阅读 · 0 评论