*参照元 [#a49c044f] #backlinks *説明 [#ve567a4c] -パス: [[linux-2.6.33/sound/core/init.c]] -FIXME: これは何? --説明 **引数 [#k9951e6b] -struct snd_card *card -- --[[linux-2.6.33/snd_card]] **返り値 [#icfa6473] -int --成功ならば 0、失敗ならば 0 以外。 **参考 [#yc1fd927] *実装 [#s47ad4a6] /** * snd_card_free - frees given soundcard structure * @card: soundcard structure * * This function releases the soundcard structure and the all assigned * devices automatically. That is, you don't have to release the devices * by yourself. * * Returns zero. Frees all associated devices and frees the control * interface associated to given soundcard. */ static int snd_card_do_free(struct snd_card *card) { #if defined(CONFIG_SND_MIXER_OSS) || defined(CONFIG_SND_MIXER_OSS_MODULE) - --[[linux-2.6.33/CONFIG_SND_MIXER_OSS]] - --[[linux-2.6.33/CONFIG_SND_MIXER_OSS_MODULE]] if (snd_mixer_oss_notify_callback) snd_mixer_oss_notify_callback(card, SND_MIXER_OSS_NOTIFY_FREE); - --[[linux-2.6.33/snd_mixer_oss_notify_callback(global)]] - --[[linux-2.6.33/SND_MIXER_OSS_NOTIFY_FREE]] #endif if (snd_device_free_all(card, SNDRV_DEV_CMD_PRE) < 0) { snd_printk(KERN_ERR "unable to free all devices (pre)\n"); /* Fatal, but this situation should never occur */ } - --[[linux-2.6.33/snd_device_free_all()]] - --[[linux-2.6.33/SNDRV_DEV_CMD_PRE]] - --[[linux-2.6.33/snd_printk()]] if (snd_device_free_all(card, SNDRV_DEV_CMD_NORMAL) < 0) { snd_printk(KERN_ERR "unable to free all devices (normal)\n"); /* Fatal, but this situation should never occur */ } - --[[linux-2.6.33/SNDRV_DEV_CMD_NORMAL]] if (snd_device_free_all(card, SNDRV_DEV_CMD_POST) < 0) { snd_printk(KERN_ERR "unable to free all devices (post)\n"); /* Fatal, but this situation should never occur */ } - --[[linux-2.6.33/SNDRV_DEV_CMD_POST]] if (card->private_free) card->private_free(card); snd_info_free_entry(card->proc_id); if (snd_info_card_free(card) < 0) { snd_printk(KERN_WARNING "unable to free card info\n"); /* Not fatal error */ } kfree(card); - --[[linux-2.6.33/snd_info_free_entry()]] - --[[linux-2.6.33/snd_info_card_free()]] - --[[linux-2.6.33/kfree()]] return 0; } *コメント [#rd434b61]