|
|
EDA365欢迎您登录!
您需要 登录 才可以下载或查看,没有帐号?注册
x
内核链表list.h文件剖析
$ `( v1 M- I5 k$ J% e
( q6 Y, ?, }( A* ]0 s1 M一、内核链表的结构【双向循环链表】
5 s" j# w4 ~: P u p9 o0 {& @7 \/ {4 Q6 P' c& v
( I7 E3 v8 f$ d, g7 b/ k; W! F 内核链表的好主要体现为两点,1是可扩展性,2是封装。可以将内核链表复用到用户态编程中,以后在用户态下编程就不需要写一些关于链表的代码了,直接将内核中list.h中的代码拷贝过来用。
8 t& d q- E. E9 ^% ^$ |. ~
* i% F w6 ?% F0 g! q% G0 u; w$ T' T! X
- struct list_head
- {
- struct list_head *next, *prev;
- }; // 包含了两个指向list_head结构体的指针next,prev[后驱和前驱]0 L" x( ]8 ?0 }, ]% c0 D9 f
+ X4 F' }& r8 C- Q6 e* g
- N+ d- x7 f+ Y0 A( R" k( P
% w6 v$ ^- o7 [& @. t9 @# {
, ~; m' M' f2 p- p3 t1 c/ ^二、内核链表常用接口
8 r D$ N8 `, Y/ l3 v
9 U$ ]$ K9 A& x5 @$ V! T1 X5 t- F' z. z. k3 i# S' V, _
1、INIT_LIST_HEAD:创建链表
! V, Q. |" x( [, p$ T. B5 \ D9 u& T/ f+ ]& A+ ]
4 v# A8 ^' e0 ]( d J; l
$ U1 }1 k( k5 p( J$ z# }
$ }) Z# ]7 X$ g7 h8 R" Q% L
6 q" D# r- B' a% @% P0 m2 {$ R) z. W5 _
N" X `( U0 ]! P
^+ S9 ~" j; N1 {) i
7 ?' q1 q2 ~( l K) I5 R& l |
|