container_of分析

内核源码中存在这么一个宏container_of
用于从一个结构体的成员指针获取结构体的指针。
如:

1
2
3
4
struct my{
	int a;
	int b;
};

在此如果知道成员b的指针可用container_of函数来获取包含b的my结构体的指针。
在此列中使用如以知b的指针pb:

1
2
struct my *getmy;
getmy = container_of(pb,struct my,b);

这样就获取到了my的指针。
这个宏的工作原理比较简单,下面简单介绍下其工作原理和实际代码。
[阅读全文] »

LDD读书笔记第一章-设备驱动程序简介

第一章介绍性的东西。

没有什么知识点。

上传ldd3(linux device drivers 3)的全部配套源码

Linux Device Drivers, Third Edition Source Code