|
|
3.3 InquireSCSI LONG cdecl (*InquireSCSI) (WORD what,
tBusInfo *Info);
#define cInqFirst 0
#define cInqNext 1
typedef struct
{
tPrivate Private;
/* for the driver */
char BusName[20];
/* e.g. 'SCSI', 'ACSI', 'PAK-SCSI' */
UWORD BusNo;
/* Number with which the bus is to be addressed */
UWORD Features;
#define cArbit 0x01 /* Arbitration will take place on
* the bus */
#define cAllCmds 0x02 /* All SCSI-Cmds can be transmitted
*/
#define cTargCtrl 0x04 /* The target controls the procedure
* (so it should!) */
#define cTarget 0x08 /* One can install oneself as a
* target on this bus */
#define cCanDisconnect 0x10 /* Disconnect is possible */
#define cScatterGather 0x20 /* Scatter gather possible with
* virtual RAM */
/* Up to 16 features that the bus is capable of, e.g. Arbit,
* Full-SCSI (all SCSI-Cmds, in contrast to ACSI where the upper
* 3 bits of the first command are reserved for the target
* address, so only <$1F) Target or Initiator controlled
* Can service all addresses (say: ACSI-port in a TT!)
* A SCSI-handle is also a pointer to a copy of this information!
*/
ULONG MaxLen;
/* Maximum transfer length on this bus (in bytes)
* corresponds e.g. with ACSI to the size of the FRB
* minimum 64kB (one FRB-size)
*/
}tBusInfo;
Search for busses that are present. One calls, similar to Fsfirst/Fsnext, originally with InqFirst in what, then with InqNext repeatedly until a negative value is returned. The message order (first bus 0, then 1, then 2) is _not_ guaranteed - it may happen that bus 3, then bus 2. then 0, then 1 is returned. A maximum of 32 busses are possible. One obtains information about the bus in the Info structure. Returns: = 0 : OK < 0 : No further devices ATTENTION: Naturally one must always use the same record for Info, as the driver logs in this the devices that have already been reported. Task: Search configuration dialogues or self-generated configuration for busses that are present. The following bus-numbers are reserved for this: 0 (ACSI), 1 (standard SCSI: Falcon, TT, Medusa, MagicMac...) and 2 (IDE in Atari-compatibles). However, no assumptions may be made about the number of devices or the highest device-ID. The devices present must be interrogated with InquireBus. Example: see SRCHDRV.C |
|
|