驅動中的鍊錶

2021-10-03 06:33:30 字數 884 閱讀 7329

今天被鍊錶掀翻一地,原來許多我以為的,都不是我以為的。最近在提交**中煎熬,也可以說難忘吧!不過,其實還是學到了許多東西,在這還是感謝我的老大吧!

鍊錶有很多種不同的型別:單向鍊錶,雙向鍊錶以及迴圈鍊錶

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...