linux/drivers/usb/image/microtek.h
<<
>>
Prefs
   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
  12typedef void (*mts_scsi_cmnd_callback)(struct scsi_cmnd *);
  13
  14
  15struct 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
  30struct 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
  56