乾草傢伙!list_entry返回值
我正在更改Rat Hat OS上的內核代碼,我想使用宏「list entry」。 我找不到任何地方什麼是失敗的返回值。
如果列表爲空,它會返回什麼?或在任何其他情況下...
謝謝! Ami
乾草傢伙!list_entry返回值
我正在更改Rat Hat OS上的內核代碼,我想使用宏「list entry」。 我找不到任何地方什麼是失敗的返回值。
如果列表爲空,它會返回什麼?或在任何其他情況下...
謝謝! Ami
我們可以從兩個方面
1)獨立的單全局變量使用此LIST_HEAD,來保存列表的頭都
我們不能使用LIST_ENTRY此變量事件雖然有列表成員 在裏面。因爲這不是任何結構的一部分。
2)我們可以使用list_head作爲您的結構的成員,只要添加到列表中,您將爲此成員提供指向列表HEAD的指針 。
我們將使用LIST_ENTRY該成員上獲得,即使你 列表成員不屬於任何名單的一部分,你的結構 你可以得到結構(這與下一= NULL和私法= NULL初始化)沒有失敗的方法。
list_entry是簡單的container_of()我們使用它來獲取使用成員指針的結構指針。
如果列表爲空,它應該是未定義的。 (你正試圖解引用一個不在列表的元素類型結構中的列表指針)
一般來說,如果你必須直接使用list_entry,你首先需要檢查list_empty。這將驗證你的列表頭沒有指向自己。
否則堅持總是使用list_for_each宏,它將生成for循環你的元素。