|
|
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.