root/drivers/usb/image/microtek.h

/* [<][>][^][v][top][bottom][index][help] */

INCLUDED FROM


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

/* [<][>][^][v][top][bottom][index][help] */