Linux カーネルのロックレス リストを理解しようとしています。これは llist.h で定義されています。リストを定義するために、なぜ 2 つの構造体があるのですか。
struct llist_head {
struct llist_node *first;
};
struct llist_node {
struct llist_node *next;
};
次のノードへのポインターを持つ構造体を 1 つだけ持たないのはなぜですか? これは、カーネルでの二重リンク リストの実装に似ています。