このページを編集する際は、編集に関する方針に従ってください。

概要

  • linux2.6/mm/memory.cにて定義
  • 引数で渡された1つのページグローバルディレクトリを解放する

引数

  • tlb--TLBを管理する構造体
  • dir--ページグローバルディレクトリ

実装

static inline void free_one_pgd(struct mmu_gather *tlb, pgd_t * dir) {

	int j;
	pmd_t * pmd;
	if (pgd_none(*dir))
		return;
	if (unlikely(pgd_bad(*dir))) {
		pgd_ERROR(*dir);
  • ページグローバルディレクトリdirに関するエラーを出力する
		pgd_clear(dir);
		return;
	}
	pmd = pmd_offset(dir, 0);
  • ページミドルディレクトリの特定エントリのアドレスを返す
	pgd_clear(dir);
	for (j = 0; j < PTRS_PER_PMD ; j++)
		free_one_pmd(tlb, pmd+j);
  • 1つのページグローバルディレクトリに登録されている全てのページミドルディレクトリを解放する
	pmd_free_tlb(tlb, pmd);

}

呼出元


履歴

  • 作者:ひら
  • 日付:2005/11/17
  • 対象:2.6.10
    更新日更新者更新内容

コメント



トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2009-11-24 (火) 07:13:12 (2919d)