*参照元 [#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]