Sam之前看2.4 kernel时,常看到List.也仔细看了一下,但现在长期没有看kernel,没有写程序,已经忘记了很多。今天又看一看并记录下来。
Linux Kernel中,常常需要使用双向链表。在~/include/linux/list.h中,就定义了双向链表和常用的function.
链表头如下:
struct list_head {
struct list_head *next, *prev;
};
1.创建双向链表(doubly linked list):
INIT_LIST_HEAD(struct list_head *list)
代码如下:
static inline void INIT_LIST_HEAD(struct list_head *list)
{
list->next = list;
list->prev = list;
}
将List的头和尾都指向自身。
2. 添加内容到双向链表: