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

嵌入式Linux

开发平台:

Unix_Linux

  1. /* fastlane.h: Defines and structures for the Fastlane SCSI driver.
  2.  *
  3.  * Copyright (C) 1996 Jesper Skov (jskov@cygnus.co.uk)
  4.  */
  5. #include "NCR53C9x.h"
  6. #ifndef FASTLANE_H
  7. #define FASTLANE_H
  8. /* The controller registers can be found in the Z2 config area at these
  9.  * offsets:
  10.  */
  11. #define FASTLANE_ESP_ADDR 0x1000001
  12. #define FASTLANE_DMA_ADDR 0x1000041
  13. /* The Fastlane DMA interface */
  14. struct fastlane_dma_registers {
  15. volatile unsigned char cond_reg; /* DMA status  (ro) [0x0000] */
  16. #define ctrl_reg  cond_reg /* DMA control (wo) [0x0000] */
  17. unsigned char dmapad1[0x3f];
  18. volatile unsigned char clear_strobe;    /* DMA clear   (wo) [0x0040] */
  19. };
  20. /* DMA status bits */
  21. #define FASTLANE_DMA_MINT  0x80
  22. #define FASTLANE_DMA_IACT  0x40
  23. #define FASTLANE_DMA_CREQ  0x20
  24. /* DMA control bits */
  25. #define FASTLANE_DMA_FCODE 0xa0
  26. #define FASTLANE_DMA_MASK  0xf3
  27. #define FASTLANE_DMA_LED   0x10 /* HD led control 1 = on */
  28. #define FASTLANE_DMA_WRITE 0x08 /* 1 = write */
  29. #define FASTLANE_DMA_ENABLE 0x04 /* Enable DMA */
  30. #define FASTLANE_DMA_EDI   0x02 /* Enable DMA IRQ ? */
  31. #define FASTLANE_DMA_ESI   0x01 /* Enable SCSI IRQ */
  32. extern int fastlane_esp_detect(struct SHT *);
  33. extern int fastlane_esp_release(struct Scsi_Host *);
  34. extern const char *esp_info(struct Scsi_Host *);
  35. extern int esp_queue(Scsi_Cmnd *, void (*done)(Scsi_Cmnd *));
  36. extern int esp_command(Scsi_Cmnd *);
  37. extern int esp_abort(Scsi_Cmnd *);
  38. extern int esp_reset(Scsi_Cmnd *, unsigned int);
  39. extern int esp_proc_info(char *buffer, char **start, off_t offset, int length,
  40.  int hostno, int inout);
  41. #define SCSI_FASTLANE     { proc_name: "esp-fastlane", 
  42.     proc_info: esp_proc_info, 
  43.     name: "Fastlane SCSI", 
  44.     detect: fastlane_esp_detect, 
  45.     release: fastlane_esp_release, 
  46.     queuecommand: esp_queue, 
  47.     abort: esp_abort, 
  48.     reset: esp_reset, 
  49.     can_queue:          7, 
  50.     this_id: 7, 
  51.     sg_tablesize: SG_ALL, 
  52.     cmd_per_lun: 1, 
  53.     use_clustering: ENABLE_CLUSTERING }
  54. #endif /* FASTLANE_H */