linux/drivers/usb/image/microtek.h
<<
>>
Prefs
   1 /*
   2 * Driver for Microtek Scanmaker X6 USB scanner and possibly others.
   3 * 
   4 * (C) Copyright 2000 John Fremlin <vii@penguinpowered.com>
   5 * (C) Copyright 2000 Oliver Neukum <Oliver.Neukum@lrz.uni-muenchen.de>
   6 *
   7 * See microtek.c for history
   8 *
   9 */
  10
  11typedef void (*mts_scsi_cmnd_callback)(struct scsi_cmnd *);
  12
  13
  14struct mts_transfer_context
  15{
  16        struct mts_desc* instance;
  17        mts_scsi_cmnd_callback final_callback;
  18        struct scsi_cmnd *srb;
  19        
  20        void* data;
  21        unsigned data_length;
  22        int data_pipe;
  23        int fragment;
  24
  25        u8 *scsi_status; /* status returned from ep_response after command completion */
  26};
  27
  28
  29struct mts_desc {
  30        struct mts_desc *next;
  31        struct mts_desc *prev;
  32
  33        struct usb_device *usb_dev;
  34        struct usb_interface *usb_intf;
  35
  36        /* Endpoint addresses */
  37        u8 ep_out;
  38        u8 ep_response;
  39        u8 ep_image;
  40
  41        struct Scsi_Host * host;
  42
  43        struct urb *urb;
  44        struct mts_transfer_context context;
  45};
  46
  47
  48#define MTS_EP_OUT      0x1
  49#define MTS_EP_RESPONSE 0x2
  50#define MTS_EP_IMAGE    0x3
  51#define MTS_EP_TOTAL    0x3
  52
  53#define MTS_SCSI_ERR_MASK ~0x3fu
  54
  55