|
|
1.1 ! root 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:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.