参照元†
- 指定された要素に挟まれた要素全てを、リストから削除する。
- 指定された要素は残り、間にある要素が全て削除される。
元のリストが、
,-------------------------,
|-> a <-> b <-> c <-> d <-|
であれば、
__list_del(b, d) を実行後は、
,-------------------,
|-> a <-> b <-> d <-|
となる。
- リストの要素が 1つでも動作する。
- b を削除したければ、__list_del(a, a) で削除可能である。
a は b の prev であり、next でもあるから。
- 間に何も要素がなくても動作する。
空のリストに対しても動作する。
- struct list_head * prev
- struct list_head * next
返り値†
/*
* 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;
prev->next = next;
}
コメント†