#author("2025-10-24T16:47:09+09:00","default:guest","guest")
#author("2025-10-24T16:47:57+09:00","default:guest","guest")
*参照元 [#ebbc4c79]
#backlinks

*説明 [#n3fc781a]
-パス: [[linux-5.15/include/linux/list.h]]

-prevとnextの間にあるリストの要素を全て削除する。


**引数 [#z883620c]
-struct list_head * prev
--削除する区間の前の要素
--削除する区間の前の要素。
--[[linux-5.15/list_head]]
-struct list_head * next
--削除する区間の後の要素
--削除する区間の後の要素。


**返り値 [#l65114f5]
-なし


**参考 [#geacb45b]


*実装 [#n6ed3856]

 /*
  * Delete a list entry by making the prev/next entries
  * point to each other.
  *
  * This is only for internal list manipulation where we know
  * the prev/next entries already!
  */
 static inline void __list_del(struct list_head * prev, struct list_head * next)
 {
 	next->prev = prev;
 	WRITE_ONCE(prev->next, next);
 }

-削除前
--prev -(next)-> a -(next)-> b -(next)-> c -(next)-> next
--prev <-(prev)- a <-(prev)- b <-(prev)- c <-(prev)- next
-削除後
--prev -(next)-> next
--prev <-(prev)- next
--[[linux-5.15/WRITE_ONCE()]]


*コメント [#w039c883]

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS