topのソースコードリーディング2

今日は,先日疑問だった関数を少し追ったのみ.

  • prochlp関数はprocsのヘルパー関数の更新を行う.
  • openprocはvim proc/readproc.cで宣言されており,

呼出間の一貫性を取るためのPROCTAB構造体を初期化する.
prcess情報を取得するための各メンバ関数を登録している.

  • PRCTAB構造体にはプロセステーブルの一貫性を保持するために必要な情報と機能が格納される.
  • readproc関数はopenproc関数で設定された基準に該当する次のプロセスを返す.

  基準はfinder関数として登録された関数として与えられる.
finder type1: listed_nextpid関数はPROCTAB構造体が保持しているpidリストから次のプロセスを取り出している.
finder type2: simple_nextpid関数は/proc/???を探している. 探すprocessはpにすでに指定されている.
         /proc/***を設定するプログラムの調査が必要.

                    • -

次に調べること,
va_start(ap, flags); argsリストの初期化
va_arg(ap, pid_t*)
va_end(ap); argsリストの消去
restrict const
kernel moduleの作成方法の復習,
kernel sourceのコンパイル,適用方法の確認.