linux/drivers/usb/storage/jumpshot.c

// SPDX-License-Identifier: GPL-2.0+
/*
 * Driver for Lexar "Jumpshot" Compact Flash reader
 *
 * jumpshot driver v0.1:
 *
 * First release
 *
 * Current development and maintenance by:
 *   (c) 2000 Jimmie Mayfield ([email protected])
 *
 *   Many thanks to Robert Baruch for the SanDisk SmartMedia reader driver
 *   which I used as a template for this driver.
 *
 *   Some bugfixes and scatter-gather code by Gregory P. Smith 
 *   ([email protected])
 *
 *   Fix for media change by Joerg Schneider ([email protected])
 *
 * Developed with the assistance of:
 *
 *   (C) 2002 Alan Stern <[email protected]>
 */
 
 /*
  * This driver attempts to support the Lexar Jumpshot USB CompactFlash 
  * reader.  Like many other USB CompactFlash readers, the Jumpshot contains
  * a USB-to-ATA chip. 
  *
  * This driver supports reading and writing.  If you're truly paranoid,
  * however, you can force the driver into a write-protected state by setting
  * the WP enable bits in jumpshot_handle_mode_sense.  See the comments
  * in that routine.
  */

#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();

/*
 * The table of devices
 */
#define UNUSUAL_DEV

static struct usb_device_id jumpshot_usb_ids[] =;
MODULE_DEVICE_TABLE(usb, jumpshot_usb_ids);

#undef UNUSUAL_DEV

/*
 * The flags table
 */
#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)
{}



// Transport for the Lexar 'Jumpshot'
//
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);