linux内核中的hlist_head、list_head、hlist_node结构体
在linux内核中经常会看到这几个结构体:
struct list_head;
struct hlist_head;
struct hlist_node;
在linux内核源代码中对这三个结构体的定义如下:
struct list_head
{
struct list_head *prev;
struct list_head *next;
}
struct hlist_node
{
struct hlist_node **prev;
struct hlist_node *next;
}
struct hlist_head
{
struct hlist_node *first;
}
这三个结构体在内核中的作用:
struct list_head 用于在内核中构建双链表。在进程的进程描述符struct task_struct 中就包含了这个结构体,用于将内核中的进程描述符组成进程链表来管理系统中的所用的进程。
struct hlist_head 和 struct hlist_node 用于构建内核中的散列表;有这两个这两个结构体的名字可以知道,struct hlist_head 是用于指向散列表的头部,而struct hlist_node是散列表数组中的元素,它的后面会挂在一个链表来来存放使用相同的hash index的进程描述符的。
本文出自 “阿辉仔” 博客,请务必保留此出处http://weiguozhihui.blog.51cto.com/3060615/1565069
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。