#include <linux/init.h>
#include <linux/wait.h>
#include <linux/err.h>
#include <linux/platform_device.h>
#include <linux/module.h>
#include <sound/core.h>
#include <sound/seq_kernel.h>
#include <sound/seq_virmidi.h>
#include <sound/initval.h>
#undef midi_devs
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
#define MAX_MIDI_DEVICES …
static int index[SNDRV_CARDS] = …;
static char *id[SNDRV_CARDS] = …;
static bool enable[SNDRV_CARDS] = …;
static int midi_devs[SNDRV_CARDS] = …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
module_param_array(…);
MODULE_PARM_DESC(…) …;
struct snd_card_virmidi { … };
static struct platform_device *devices[SNDRV_CARDS];
static int snd_virmidi_probe(struct platform_device *devptr)
{ … }
#define SND_VIRMIDI_DRIVER …
static struct platform_driver snd_virmidi_driver = …;
static void snd_virmidi_unregister_all(void)
{ … }
static int __init alsa_card_virmidi_init(void)
{ … }
static void __exit alsa_card_virmidi_exit(void)
{ … }
module_init(…) …
module_exit(…)