全部博文(396)
发布时间:2016-09-23 11:47:44
asmlinkage/FASTCALL()/fastcall这三个宏指定了函数参数的传递方式。asmlinkage修饰的函数,其参数通过堆栈传递。FASTCALL()/fastcall,此二者实际上是一样的作用。在Intel i386架构中,它们所修饰的函数,其前三个参数分别通过通用寄存器EAX,ECX和EDX来传递。它们定义于include/asm-i386/linkage.h:#define asmlink.........【阅读全文】
发布时间:2016-09-23 10:23:46
最近研究进程间通信,遇到了idr相关的函数,为了扫清障碍,先研究了linux的idr机制。 所谓IDR,其实就是和身份证的含义差不多,我们知道,每个人有一个身份证,身份证只是 一串数字,从数字,我们就能知道这个人的信息。同样道理,idr的要完成的任务是给要管理的对象分配一个.........【阅读全文】
发布时间:2016-09-22 21:57:31
linux clk时钟源管理驱动代码1. 硬件资源越来越庞大和复杂,内核的另一个挑战就是要便捷的管理这些资源。同时,面对如此之多的平台不同的CPU,管理机制需要统一适用,这就需要对资源的管理抽象到更加通用的层次。CPU中各个模块都需要时钟clock,内核需要一种机制能通用.........【阅读全文】
发布时间:2016-09-21 12:00:21
One of the best (but little known) features of GNU C is the __attribute__ mechanism, which allows a developer to attachcharacteristics to function declarations to allow thecompiler to perform more error checking. It was designed in a way tobe compatible with non-GNU implementations, and we've b.........【阅读全文】
发布时间:2016-09-20 22:06:01
I2C驱动源码主要在linux内核/drivers/i2c下。其中主要涉及到的结构有:------i2c适配器------struct i2c_adapter { struct module *owner; //所属模块 unsigned int id; //algorithm的类型,定义于i2c-id.h,以I2C_ALGO_开始  .........【阅读全文】