linux/drivers/usb/gadget/legacy/tcm_usb_gadget.c

// SPDX-License-Identifier: GPL-2.0
/* Target based USB-Gadget
 *
 * UAS protocol handling, target callbacks, configfs handling,
 * BBB (USB Mass Storage Class Bulk-Only (BBB) and Transport protocol handling.
 *
 * Author: Sebastian Andrzej Siewior <bigeasy at linutronix dot de>
 */
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/types.h>
#include <linux/string.h>
#include <linux/configfs.h>
#include <linux/ctype.h>
#include <linux/usb/ch9.h>
#include <linux/usb/composite.h>
#include <linux/usb/gadget.h>
#include <linux/usb/storage.h>
#include <scsi/scsi_tcq.h>
#include <target/target_core_base.h>
#include <target/target_core_fabric.h>
#include <linux/unaligned.h>

#include "u_tcm.h"

USB_GADGET_COMPOSITE_OPTIONS();

#define UAS_VENDOR_ID
#define UAS_PRODUCT_ID

static struct usb_device_descriptor usbg_device_desc =;

#define USB_G_STR_CONFIG

static struct usb_string	usbg_us_strings[] =;

static struct usb_gadget_strings usbg_stringtab =;

static struct usb_gadget_strings *usbg_strings[] =;

static struct usb_function_instance *fi_tcm;
static struct usb_function *f_tcm;

static int guas_unbind(struct usb_composite_dev *cdev)
{}

static int tcm_do_config(struct usb_configuration *c)
{}

static struct usb_configuration usbg_config_driver =;

static int usbg_attach(struct usb_function_instance *f);
static void usbg_detach(struct usb_function_instance *f);

static int usb_target_bind(struct usb_composite_dev *cdev)
{}

static struct usb_composite_driver usbg_driver =;

static int usbg_attach(struct usb_function_instance *f)
{}

static void usbg_detach(struct usb_function_instance *f)
{}

static int __init usb_target_gadget_init(void)
{}
module_init();

static void __exit usb_target_gadget_exit(void)
{}
module_exit(usb_target_gadget_exit);

MODULE_AUTHOR();
MODULE_DESCRIPTION();
MODULE_LICENSE();