#include <linux/kernel.h>
#include <linux/module.h>
#include <sound/initval.h>
#include <linux/usb/composite.h>
#include <linux/usb/gadget.h>
#include "u_midi.h"
MODULE_AUTHOR(…) …;
MODULE_DESCRIPTION(…) …;
MODULE_LICENSE(…) …;
static const char longname[] = …;
USB_GADGET_COMPOSITE_OPTIONS(…);
static int index = …;
module_param(index, int, S_IRUGO);
MODULE_PARM_DESC(…) …;
static char *id = …;
module_param(id, charp, S_IRUGO);
MODULE_PARM_DESC(…) …;
static unsigned int buflen = …;
module_param(buflen, uint, S_IRUGO);
MODULE_PARM_DESC(…) …;
static unsigned int qlen = …;
module_param(qlen, uint, S_IRUGO);
MODULE_PARM_DESC(…) …;
static unsigned int in_ports = …;
module_param(in_ports, uint, S_IRUGO);
MODULE_PARM_DESC(…) …;
static unsigned int out_ports = …;
module_param(out_ports, uint, S_IRUGO);
MODULE_PARM_DESC(…) …;
#define DRIVER_VENDOR_NUM …
#define DRIVER_PRODUCT_NUM …
#define STRING_DESCRIPTION_IDX …
static struct usb_device_descriptor device_desc = …;
static struct usb_string strings_dev[] = …;
static struct usb_gadget_strings stringtab_dev = …;
static struct usb_gadget_strings *dev_strings[] = …;
static struct usb_function_instance *fi_midi;
static struct usb_function *f_midi;
static int midi_unbind(struct usb_composite_dev *dev)
{ … }
static struct usb_configuration midi_config = …;
static int midi_bind_config(struct usb_configuration *c)
{ … }
static int midi_bind(struct usb_composite_dev *cdev)
{ … }
static struct usb_composite_driver midi_driver = …;
module_usb_composite_driver(…);