*参照元 [#s470e2fd]
#backlinks

*説明 [#wa548cda]
-パス: [[linux-2.6.33/sound/core/sound.c]]

-FIXME: これは何?
--マイナーデバイスの一覧を表示するための、
proc エントリ /proc/asound/devices を作成する。


**引数 [#z30ae554]
-なし


**返り値 [#z722e01a]
-int
--
--成功したら 0、失敗したら 0 以外(たぶん)。
--現状の実装では返り値は常に 0 のようだ。


**参考 [#wf4904d9]


*実装 [#z9eaf6c9]
 int __init snd_minor_info_init(void)
 {
 	struct snd_info_entry *entry;
 
-
--[[linux-2.6.33/snd_info_entry]]

 	entry = snd_info_create_module_entry(THIS_MODULE, "devices", NULL);
-devices という名前のエントリを作成する。
-親エントリは NULL を指定、つまり ALSA のルートエントリ(/proc/asound)に置く、
という意味。
--ちなみに作成時点では親エントリは NULL のままである。
後で登録するとき(snd_info_register() 呼び出し時)に、
ALSA のルートエントリに書き換えられる。
--[[linux-2.6.33/snd_info_create_module_entry()]]
--[[linux-2.6.33/THIS_MODULE]]

 	if (entry) {
 		entry->c.text.read = snd_minor_info_read;
 		if (snd_info_register(entry) < 0) {
 			snd_info_free_entry(entry);
 			entry = NULL;
 		}
 	}
-entry->c は union 型。entry->c.text は struct snd_info_entry_text 型。
--[[linux-2.6.33/snd_info_entry_text]]
-devices エントリが読み出されたら、snd_minor_info_read() が呼ばれるようにする。
--[[linux-2.6.33/snd_minor_info_read()]]
-devices エントリを追加する。
親エントリは NULL が指定されているため、
ALSA の proc ルート(/proc/asound)に書き換えられる。
したがってパス名は /proc/asound/devices となる。
--[[linux-2.6.33/snd_info_register()]]
-追加に失敗したら devices エントリを削除する。
--[[linux-2.6.33/snd_info_free_entry()]]

 	snd_minor_info_entry = entry;
 	return 0;
-他の関数からも使うので、グローバル変数に突っ込んでおく。
--[[linux-2.6.33/snd_minor_info_entry(global)]]

 }

*コメント [#je2a2717]

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