*参照元 [#g64cc041]
#backlinks

*説明 [#xbb798d1]
-パス: [[linux-2.6.33/drivers/base/platform.c]]

-複数のデバイスを一度に登録する。
--1つでも登録に失敗した場合、
それまでに登録に成功したデバイスも含め全て登録解除する。


**引数 [#p16081d5]
-struct platform_device **devs
--登録するデバイス構造体へのポインタの配列。
-int num
--登録するデバイス数。


**返り値 [#bbbe1786]
-int
--成功時は 0、失敗時はエラーコードが返る。


**参考 [#c38abbbd]


*実装 [#qde12d5a]
 /**
  * platform_add_devices - add a numbers of platform devices
  * @devs: array of platform devices to add
  * @num: number of platform devices in array
  */
 int platform_add_devices(struct platform_device **devs, int num)
 {
 	int i, ret = 0;
 
 	for (i = 0; i < num; i++) {
 		ret = platform_device_register(devs[i]);
-先頭から順に登録する。
--[[linux-2.6.33/platform_device_register()]]

 		if (ret) {
 			while (--i >= 0)
 				platform_device_unregister(devs[i]);
-失敗したら逆順に登録解除する。返り値は捨てる。
--[[linux-2.6.33/platform_device_unregister()]]

 			break;
 		}
 	}
 
 	return ret;
-結果を返す。
--ret には登録が全て成功していれば 0、
失敗していればエラーコードが入っている。

 }
 EXPORT_SYMBOL_GPL(platform_add_devices);
-GPL のモジュールにのみシンボルを公開する。
--[[linux-2.6.33/EXPORT_SYMBOL_GPL()]]


*コメント [#n99241cf]


トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS