分类: LINUX
2009-04-09 09:14:32
相关数据结构:
struct hlist_head {
};
struct hlist_node {
};
对于list_head,研究内核的想必都非常的熟悉。我们就不多说了。
而对于hlist,其初衷是因为在hash table中使用有两个指针的list_head过于浪费。
hlist_head中只包含一个first的指针,这点是和list_head最大的区别,空间也就是在这里节省出来的。
内核为hlist提供了一系列辅助的宏和函数,详见include/linux/list.h
下面,我们以图表的方式描述hlist_add_head()函数所实现的功能:
首先,我们通过宏INIT_HLIST_HEAD来初始化一个hlist_head: