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

概要

  • linux2.6/lib/radix-tree.cにて定義
  • 引数で渡されたradixツリーのインデックスを用いてradixツリーからルックアップしたエントリ数だけ見つける
    • ルックアップしたエントリの合計を返す

引数

  • root--radixツリーのルート
  • results--ルックアップした(見つけた)エントリを格納する
  • first_index--ルックアップを開始するradixツリーのインデックス
  • max_items--ルックアップするエントリ数(このエントリ数になったら検索を止める)

実装

/**

*	radix_tree_gang_lookup - perform multiple lookup on a radix tree
*	@root:		radix tree root
*	@results:	where the results of the lookup are placed
*	@first_index:	start the lookup from this key
*	@max_items:	place up to this many items at *results
*
*	Performs an index-ascending scan of the tree for present items.  Places
*	them at *@results and returns the number of items which were placed at
*	*@results.
*
*	The implementation is naive.
*/

unsigned int radix_tree_gang_lookup(struct radix_tree_root *root, void **results,

			unsigned long first_index, unsigned int max_items)

{

	const unsigned long max_index = radix_tree_maxindex(root->height);
	unsigned long cur_index = first_index;
	unsigned int ret = 0;
	while (ret < max_items) {
		unsigned int nr_found;
		unsigned long next_index;	/* Index of next search */
		if (cur_index > max_index)
			break;
		nr_found = __lookup(root, results + ret, cur_index,
					max_items - ret, &next_index);
		ret += nr_found;
		if (next_index == 0)
			break;
		cur_index = next_index;
	}
	return ret;

}

EXPORT_SYMBOL(radix_tree_gang_lookup);

呼出元


履歴

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

コメント



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