C言語で0から作るOSを開発について説明していきます。このシリーズではカーネルで使用するカーネルライブラリーについての説明です。
今回はカーネルで使用する連結リストについてです。カーネルが持つ情報をリストで連結することで情報を手軽に管理できるようになります。
【注意】本書はLinuxのlist_headについて説明しているに過ぎませんので注意してください。
【注意】本書は『0から作るOS開発』のVol.ナンバリングのタイトルではありません。Vol.ナンバリング以外のタイトルはカーネル編以降どのタイミングでも導入することができます。
[目次]
本書について
リスト
リストのこれまでのこと
リストの種類
単方向連結リスト
双方向連結リスト
複数連結リスト
循環リスト
ランダムアクセスリスト
ダミーノード
リストの操作
リストの初期化
リストの挿入
リストの削除
リストをどこで使うか?
簡単なリストの実装
リストデータ構造の抽象化
抽象リストの概要
リストの実装
リストの定義
構造体アドレスの取得(conainer_of)を実装
LISTで連結されている構造体のアドレスを取得する
リスト操作の実装
リストの初期化
リストの挿入
リストの削除
リストの置換
リストの移動
リストのテスト関数
リストの回転
リストの分割
リストの挿入
リストの結合
リストの繰り返し処理
リストの繰り返し処理(正順)
リストの繰り返し処理(逆順)
安全なリストの繰り返し処理(正順)
安全なリストの繰り返し処理(逆順)
リストで連結された構造体の繰り返し処理(正順)
リストで連結された構造体の繰り返し処理(逆順)
リスト途中からの繰り返し処理(正順)
リスト途中からの繰り返し処理(逆順)
現在のポイントからの繰り返し処理(正順)
安全なリストで連結された構造体の繰り返し処理(正順)
安全なリストで連結された構造体の繰り返し処理(逆順)
安全なリスト途中からの繰り返し処理(正順)
安全な現在のポイントからの繰り返し処理(正順)
ループ状態の保存
This site is safe
You are at a security, SSL-enabled, site. All our eBooks sources are constantly verified.