22 #include <linux/slab.h>
23 #include <linux/time.h>
24 #include <linux/string.h>
25 #include <linux/export.h>
29 #include <linux/utsname.h>
32 #if defined(CONFIG_SND_OSSEMUL) && defined(CONFIG_PROC_FS)
39 static char *snd_sndstat_strings[
SNDRV_CARDS][SNDRV_OSS_INFO_DEV_COUNT];
42 int snd_oss_info_register(
int dev,
int num,
char *
string)
46 if (
snd_BUG_ON(dev < 0 || dev >= SNDRV_OSS_INFO_DEV_COUNT))
52 if ((x = snd_sndstat_strings[num][dev]) !=
NULL) {
63 snd_sndstat_strings[num][
dev] =
x;
75 snd_iprintf(buf,
"\n%s:",
id);
78 str = snd_sndstat_strings[
idx][
dev];
81 snd_iprintf(buf,
"\n");
84 snd_iprintf(buf,
"%i: %s\n", idx, str);
89 snd_iprintf(buf,
" NOT ENABLED IN CONFIG\n");
96 snd_iprintf(buffer,
"Sound Driver:3.8.1a-980706 (ALSA emulation code)\n");
97 snd_iprintf(buffer,
"Kernel: %s %s %s %s %s\n",
98 init_utsname()->sysname,
99 init_utsname()->nodename,
103 snd_iprintf(buffer,
"Config options: 0\n");
104 snd_iprintf(buffer,
"\nInstalled drivers: \n");
105 snd_iprintf(buffer,
"Type 10: ALSA emulation\n");
106 snd_iprintf(buffer,
"\nCard config: \n");
107 snd_card_info_read_oss(buffer);
108 snd_sndstat_show_strings(buffer,
"Audio devices", SNDRV_OSS_INFO_DEV_AUDIO);
109 snd_sndstat_show_strings(buffer,
"Synth devices", SNDRV_OSS_INFO_DEV_SYNTH);
110 snd_sndstat_show_strings(buffer,
"Midi devices", SNDRV_OSS_INFO_DEV_MIDI);
111 snd_sndstat_show_strings(buffer,
"Timers", SNDRV_OSS_INFO_DEV_TIMERS);
112 snd_sndstat_show_strings(buffer,
"Mixers", SNDRV_OSS_INFO_DEV_MIXERS);
119 memset(snd_sndstat_strings, 0,
sizeof(snd_sndstat_strings));
121 entry->
c.
text.read = snd_sndstat_proc_read;
122 if (snd_info_register(entry) < 0) {
123 snd_info_free_entry(entry);
127 snd_sndstat_proc_entry =
entry;
133 snd_info_free_entry(snd_sndstat_proc_entry);
134 snd_sndstat_proc_entry =
NULL;