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

概要

  • kernel/resource.cにて定義
  • リソースを要求する
    • 対象のリソースが存在していなくて、新たに登録した場合は0を返す
    • 対象のリソースが存在している場合は-16を返す

引数

  • root--ルートのリソース
    • I/Oポートとメインメモリのアドレス空間を管理するための構造体
  • new--対象のリソース
    • I/Oポートとメインメモリのアドレス空間を管理するための構造体

実装

int request_resource(struct resource *root, struct resource *new) {

	struct resource *conflict;
  • I/Oポートとメインメモリのアドレス空間を管理するための構造体
	write_lock(&resource_lock);
	conflict = __request_resource(root, new);
  • リソースを要求する
    • 該当するリソースが存在しない場合には登録しnullを返す
    • 該当するリソースが存在する場合はそのリソースを返す
    • 詳細は__request_resource()/linux2.6を参照
	write_unlock(&resource_lock);
  • 書き込みロックを解放する
    • 詳細はwrite_unlock()/linux2.6?を参照
	return conflict ? -EBUSY : 0;
  • 対象のリソースが存在していなくて、新たに登録した場合は0を返す
  • 対象のリソースが存在している場合は-16を返す
    • EBUSYは16と定義されている

}

呼出元


履歴

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

コメント



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