microtek.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
源码类别:

嵌入式Linux

开发平台:

Unix_Linux

  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. typedef void (*mts_scsi_cmnd_callback)(Scsi_Cmnd *);
  11. typedef void (*mts_usb_urb_callback) (struct urb *);
  12. struct mts_transfer_context
  13. {
  14. struct mts_desc* instance;
  15. mts_scsi_cmnd_callback final_callback;
  16. Scsi_Cmnd *srb;
  17. void* data;
  18. unsigned data_length;
  19. int data_pipe;
  20. int fragment;
  21. u8 status; /* status returned from ep_response after command completion */
  22. };
  23. struct mts_desc {
  24. struct mts_desc *next;
  25. struct mts_desc *prev;
  26. struct usb_device *usb_dev;
  27. int interface;
  28. /* Endpoint addresses */
  29. u8 ep_out;
  30. u8 ep_response;
  31. u8 ep_image;
  32. struct Scsi_Host * host;
  33. Scsi_Host_Template ctempl;
  34. int host_number;
  35. struct semaphore lock;
  36. struct urb urb;
  37. struct mts_transfer_context context;
  38. };
  39. #define MTS_EP_OUT 0x1
  40. #define MTS_EP_RESPONSE 0x2
  41. #define MTS_EP_IMAGE 0x3
  42. #define MTS_EP_TOTAL 0x3
  43. #define MTS_SCSI_ERR_MASK ~0x3fu