今天被鍊錶掀翻一地,原來許多我以為的,都不是我以為的。最近在提交**中煎熬,也可以說難忘吧!不過,其實還是學到了許多東西,在這還是感謝我的老大吧!
鍊錶有很多種不同的型別:單向鍊錶,雙向鍊錶以及迴圈鍊錶
spi中建立匯流排鍊錶、裝置鍊錶
/*初始化匯流排鍊錶*/
static
list_head
(spi_bus_list)
;// 初始化實現方式
#define list_head(name) struct list_head name = list_head_init(name)
static
inline
void
init_list_head
(struct list_head *list)
// 註冊匯流排時將匯流排加入鍊錶
list_add_tail
(&spi_bus->link,
&spi_bus_list)
;static
inline
void
__list_add
(struct list_head *new,
struct list_head *prev,
struct list_head *next)
/*尋找匯流排列表*/
static
struct spi_bus *
find_spi_bus
(int id)
return
null;}
// 待續。。。。。。
驅動中煉表的使用
ddk中定義了list entry雙向鍊錶結構,這樣把資料和鍊錶分開的定義方法,降低了耦合度。typedef struct list entry mydatastruct,pmydatastruct 鍊錶的初始化 initializelisthead plist entry plisthead 引數...
驅動中雙向鍊錶
ddk中標準雙向鍊錶形成乙個環結構,結構體定義 doubly linked list structure.can be used as either a list head,or as link words.typedef struct list entry list entry,plist ent...
在驅動中使用鍊錶
原始出處 在驅動程式的開發中經常需要用到鍊錶,常見的鍊錶有單向鍊錶和雙向鍊錶,我們只介紹雙向鍊錶的使用方法,ddk為我們提供了標準的雙向鍊錶 list entry,但這個鍊錶裡面沒有資料,不能直接使用,我們需要自己定義乙個結構體型別,然後將list entry作為結構體的乙個子域,如下 所示 typ...