AM53C974.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:3k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

  1. /* AM53/79C974 (PCscsi) driver release 0.5
  2.  * The architecture and much of the code of this device
  3.  * driver was originally developed by Drew Eckhardt for
  4.  * the NCR5380. The following copyrights apply:
  5.  *  For the architecture and all parts similar to the NCR5380:
  6.  *    Copyright 1993, Drew Eckhardt
  7.  *      Visionary Computing 
  8.  *      (Unix and Linux consulting and custom programming)
  9.  *      drew@colorado.edu
  10.  *      +1 (303) 666-5836
  11.  *
  12.  *  The AM53C974_nobios_detect code was originally developed by
  13.  *   Robin Cutshaw (robin@xfree86.org) and is used here in a 
  14.  *   modified form.
  15.  *
  16.  *  For the other parts:
  17.  *    Copyright 1994, D. Frieauff
  18.  *    EMail: fri@rsx42sun0.dofn.de
  19.  *    Phone: x49-7545-8-2256 , x49-7541-42305
  20.  */
  21. /*
  22.  * $Log: AM53C974.h,v $
  23.  */
  24. #ifndef AM53C974_H
  25. #define AM53C974_H
  26. #include <scsi/scsicam.h>
  27. struct AM53C974_hostdata {
  28. volatile unsigned in_reset:1; /* flag, says bus reset pending */
  29. volatile unsigned aborted:1; /* flag, says aborted */
  30. volatile unsigned selecting:1; /* selection started, but not yet finished */
  31. volatile unsigned disconnecting: 1; /* disconnection started, but not yet finished */
  32. volatile unsigned dma_busy:1; /* dma busy when service request for info transfer received */
  33. volatile unsigned char msgout[10]; /* message to output in MSGOUT_PHASE */
  34. volatile unsigned char last_message[10]; /* last message OUT */
  35. volatile Scsi_Cmnd *issue_queue; /* waiting to be issued */
  36. volatile Scsi_Cmnd *disconnected_queue; /* waiting for reconnect */
  37. volatile Scsi_Cmnd *sel_cmd; /* command for selection */
  38. volatile Scsi_Cmnd *connected; /* currently connected command */
  39. volatile unsigned char busy[8]; /* index = target, bit = lun */
  40. unsigned char sync_per[8]; /* synchronous transfer period (in effect) */
  41. unsigned char sync_off[8]; /* synchronous offset (in effect) */
  42. unsigned char sync_neg[8]; /* sync. negotiation performed (in effect) */
  43. unsigned char sync_en[8]; /* sync. negotiation performed (in effect) */
  44. unsigned char max_rate[8]; /* max. transfer rate (setup) */
  45. unsigned char max_offset[8]; /* max. sync. offset (setup), only valid if corresponding sync_en is nonzero */
  46. };
  47. #define AM53C974 {   
  48.     proc_name:      "am53c974",               
  49.     name:           "AM53C974",           
  50.     detect:         AM53C974_pci_detect,   
  51.     release:        AM53C974_release,   
  52.     info:           AM53C974_info,        
  53.     command:        AM53C974_command,     
  54.     queuecommand:   AM53C974_queue_command,   
  55.     abort:          AM53C974_abort,       
  56.     reset:          AM53C974_reset,       
  57.     bios_param:     scsicam_bios_param,   
  58.     can_queue:      12,                    
  59.     this_id:        -1,                           
  60.     sg_tablesize:   SG_ALL,               
  61.     cmd_per_lun:    1,                    
  62.     use_clustering: DISABLE_CLUSTERING    
  63.     }
  64. static int AM53C974_pci_detect(Scsi_Host_Template * tpnt);
  65. static int AM53C974_release(struct Scsi_Host *shp);
  66. static const char *AM53C974_info(struct Scsi_Host *);
  67. static int AM53C974_command(Scsi_Cmnd * SCpnt);
  68. static int AM53C974_queue_command(Scsi_Cmnd * cmd, void (*done) (Scsi_Cmnd *));
  69. static int AM53C974_abort(Scsi_Cmnd * cmd);
  70. static int AM53C974_reset(Scsi_Cmnd * cmd, unsigned int);
  71. #endif /* AM53C974_H */