参照元†
- FIXME: これは何?
- マイナーデバイスの一覧を表示するための、
proc エントリ /proc/asound/devices を作成する。
返り値†
- int
- 成功したら 0、失敗したら 0 以外(たぶん)。
- 現状の実装では返り値は常に 0 のようだ。
int __init snd_minor_info_init(void)
{
struct snd_info_entry *entry;
entry = snd_info_create_module_entry(THIS_MODULE, "devices", NULL);
- devices という名前のエントリを作成する。
- 親エントリは NULL を指定、つまり ALSA のルートエントリ(/proc/asound)に置く、
という意味。
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 型。
- devices エントリが読み出されたら、snd_minor_info_read() が呼ばれるようにする。
- devices エントリを追加する。
親エントリは NULL が指定されているため、
ALSA の proc ルート(/proc/asound)に書き換えられる。
したがってパス名は /proc/asound/devices となる。
- 追加に失敗したら devices エントリを削除する。
snd_minor_info_entry = entry;
return 0;
- 他の関数からも使うので、グローバル変数に突っ込んでおく。
}
コメント†