まずは双方向リストについて解説する。 Linuxkernel内部ではlist_headというデータ構造が用意されており、これが様々な場面で使用される。 このデータ構造はnextとprevの二つのメンバを持ち、データ構造に前後の概念を導入したいときに使用される。 双方向リスト list_headの定義 list_headは以下のように定義されている。 struct list_head { struct list_head *next, *prev; }; list_headの作成 list_headの作成にはLIST_HEADマクロを使用する。 #define LIST_HEAD_INIT(na…