#include <linux/errno.h>
#include <linux/module.h>
#include <linux/slab.h>
#include <scsi/scsi.h>
#include <scsi/scsi_cmnd.h>
#include "usb.h"
#include "transport.h"
#include "protocol.h"
#include "debug.h"
#include "scsiglue.h"
#define DRV_NAME …
MODULE_DESCRIPTION(…) …;
MODULE_AUTHOR(…) …;
MODULE_LICENSE(…) …;
MODULE_IMPORT_NS(…);
#define UNUSUAL_DEV …
static struct usb_device_id jumpshot_usb_ids[] = …;
MODULE_DEVICE_TABLE(usb, jumpshot_usb_ids);
#undef UNUSUAL_DEV
#define UNUSUAL_DEV …
static struct us_unusual_dev jumpshot_unusual_dev_list[] = …;
#undef UNUSUAL_DEV
struct jumpshot_info { … };
static inline int jumpshot_bulk_read(struct us_data *us,
unsigned char *data,
unsigned int len)
{ … }
static inline int jumpshot_bulk_write(struct us_data *us,
unsigned char *data,
unsigned int len)
{ … }
static int jumpshot_get_status(struct us_data *us)
{ … }
static int jumpshot_read_data(struct us_data *us,
struct jumpshot_info *info,
u32 sector,
u32 sectors)
{ … }
static int jumpshot_write_data(struct us_data *us,
struct jumpshot_info *info,
u32 sector,
u32 sectors)
{ … }
static int jumpshot_id_device(struct us_data *us,
struct jumpshot_info *info)
{ … }
static int jumpshot_handle_mode_sense(struct us_data *us,
struct scsi_cmnd * srb,
int sense_6)
{ … }
static void jumpshot_info_destructor(void *extra)
{ … }
static int jumpshot_transport(struct scsi_cmnd *srb, struct us_data *us)
{ … }
static struct scsi_host_template jumpshot_host_template;
static int jumpshot_probe(struct usb_interface *intf,
const struct usb_device_id *id)
{ … }
static struct usb_driver jumpshot_driver = …;
module_usb_stor_driver(jumpshot_driver, jumpshot_host_template, DRV_NAME);