共 8 篇文章 |
|
Device Enumeration作为一个规则,平台(一般来说是板级)启动代码会注册所有的Platform device:int platform_device_register(struct platform_device *pdev);int platform_add_devices(struct platform_device **pdevs, int ndev);一般来说只会注册那些实际存在的设备,不过也存在特殊的情况,比如kernel可能需要与一个不在板子上的外部网络适... 阅47 转0 评0 公众公开 15-03-13 16:14 |
现在到了 kernel_init 函数中的 smp_init(); 了。其他的各个区段的定义方法分别是:core_initcall(fn) --->.initcall1.initpostcore_initcall(fn) --->.initcall2.initarch_initcall(fn) --->.initcall3.initsubsys_initcall(fn) --->.initcall4.initfs_initcall(fn) --->.initcall5.initdevice_initcall(fn) --->.initcall6... 阅1922 转6 评0 公众公开 13-06-05 11:19 |
GCC特性之__init修饰解析 做底层驱动的人都知道,在driver文件中会经常看见“__init“修饰的代码,那么__init标记有什么意义? 下面我们就来看看。又带来了一个新的宏__define_initcall,定义方式如下: #define __define_initcall(level,fn,id) \ static initcall_t __initcall_##fn##id __used \ ... 阅1432 转5 评0 公众公开 13-05-23 17:13 |
#define _IOC_TYPESHIFT (_IOC_NRSHIFT+_IOC_NRBITS) _IOC_NRSHIFT 的定义:_IOR() , _IOW(), IORW() 的定义 :#define _IOR(type,nr,size) _IOC(_IOC_READ,(type),(nr),(_IOC_TYPECHECK(size))) #define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size))) #define _IOWR(type,nr,size) _IOC(_IOC_READ|_I... 阅61 转0 评0 公众公开 13-05-10 10:43 |
该函数与rcu_read_lock配对使用,用以标记读者退出读端临界区。void fastcall call_rcu(struct rcu_head *head, void (*func)(struct rcu_head *rcu))struct rcu_head { struct rcu_head *next;void fastcall call_rcu_bh(struct rcu_head *head, void (*func)(struct rcu_head *rcu))该宏用于遍历由RCU保护的哈希链表head,只要在读端临界区使... 阅5 转自天蝎泪 公众公开 11-05-09 12:46 |