home *** CD-ROM | disk | FTP | other *** search
/ NeXTSTEP 3.3 (Developer) / NeXT_Developer-3.3.iso / NextDeveloper / Examples / DriverKit / AMDPCSCSIDriver / AMDPCSCSIDriver_reloc.tproj / AMD_Chip.h next >
Encoding:
C/C++ Source or Header  |  1995-02-10  |  1.8 KB  |  78 lines

  1. /*     Copyright (c) 1994 NeXT Computer, Inc.  All rights reserved. 
  2.  *
  3.  * AMD_Chip.h - chip (53C974/79C974) specific methods for AMD SCSI driver
  4.  *
  5.  * HISTORY
  6.  * 21 Oct 94    Doug Mitchell at NeXT
  7.  *      Created. 
  8.  */
  9.  
  10. #import "AMD_SCSI.h"
  11. #import "AMD_Types.h"
  12.  
  13. @interface AMD_SCSI(Chip)
  14.  
  15. /*
  16.  * Public methods called by other categories of AMD_SCSI.
  17.  */
  18.  
  19. /*
  20.  * One-time-only init and probe. Returns YES if a functioning chip is 
  21.  * found, else returns NO. -hwReset must be called subsequent to this 
  22.  * to enable operation of the chip.
  23.  */ 
  24. - (BOOL)probeChip;
  25.  
  26. /*
  27.  * Reusable 53C974 init function. This includes a SCSI reset.
  28.  * Handling of ioComplete of active and disconnected commands must be done
  29.  * elsewhere. Returns non-zero on error. 
  30.  */
  31. - (int)hwReset : (const char *)reason;
  32.  
  33. /*
  34.  * reset SCSI bus.
  35.  */
  36. - (void)scsiReset;
  37.  
  38. /*
  39.  * Return values from -hwStart.
  40.  */
  41. typedef enum {
  42.     HWS_OK,            // command started successfully
  43.     HWS_REJECT,        // command rejected, try another
  44.     HWS_BUSY,        // hardware not ready for command
  45. } hwStartReturn;
  46.  
  47. /*
  48.  * Start a SCSI transaction for the command in activeCmd. ActiveCmd must be 
  49.  * NULL. A return of HWS_REJECT indicates that caller may try again
  50.  * with another command; HWS_BUSY indicates a condition other than
  51.  * (activeCmd != NULL) which prevents the processing of the command. The
  52.  * command will have been enqueued on pendingQ in the latter case. The
  53.  * command will have been ioComplete'd in the HWS_REJECT case.
  54.  */
  55. - (hwStartReturn)hwStart : (commandBuf *)cmdBuf;
  56.  
  57. /*
  58.  * SCSI device interrupt handler.
  59.  */
  60. - (void)hwInterrupt;
  61.  
  62. - (void)logRegs;
  63.  
  64. @end
  65.  
  66. /* end of AMD_Chip.h */
  67.  
  68. extern IONamedValue scsiMsgValues[];
  69.  
  70. #ifdef    DDM_DEBUG
  71. extern IONamedValue scsiPhaseValues[];
  72. #endif    DDM_DEBUG
  73.  
  74. #ifdef    DEBUG
  75. extern IONamedValue scStateValues[];
  76. #endif    DEBUG
  77.  
  78.