patch-1.3.54 linux/drivers/scsi/BusLogic.h
Next file: linux/drivers/scsi/ChangeLog
Previous file: linux/drivers/scsi/BusLogic.c
Back to the patch index
Back to the overall index
- Lines: 192
- Date:
Mon Jan 1 09:26:10 1996
- Orig file:
v1.3.53/linux/drivers/scsi/BusLogic.h
- Orig date:
Fri Nov 17 08:42:26 1995
diff -u --recursive --new-file v1.3.53/linux/drivers/scsi/BusLogic.h linux/drivers/scsi/BusLogic.h
@@ -1,6 +1,6 @@
/*
- Linux Driver for BusLogic SCSI Host Adapters
+ Linux Driver for BusLogic MultiMaster SCSI Host Adapters
Copyright 1995 by Leonard N. Zubkoff <lnz@dandelion.com>
@@ -95,13 +95,11 @@
/*
Define the number of Incoming and Outgoing Mailboxes used by this driver.
- Since BusLogic Host Adapters have room to buffer 32 commands internally,
- there is significant virtue in setting BusLogic_MailboxCount to 32 or above.
The maximum possible value is 255, since the MailboxCount parameter to the
Initialize Extended Mailbox command is limited to a single byte.
*/
-#define BusLogic_MailboxCount 32
+#define BusLogic_MailboxCount 64
/*
@@ -124,11 +122,12 @@
/*
Define the default number of Concurrent Commands per Logical Unit to allow
- for Target Devices on non-ISA and ISA Host Adapters.
+ for Target Devices depending on whether or not ISA bounce buffers are
+ required.
*/
#define BusLogic_Concurrency 7
-#define BusLogic_Concurrency_ISA 1
+#define BusLogic_Concurrency_BB 1
/*
@@ -142,7 +141,14 @@
/*
- Define the possible Tracing Options.
+ Define the possible Local Options.
+*/
+
+#define BusLogic_InhibitTargetInquiry 1
+
+
+/*
+ Define the possible Global Options.
*/
#define BusLogic_TraceProbe 1
@@ -267,7 +273,7 @@
BusLogic_InitializeExtendedMailbox = 0x81, /* documented */
BusLogic_InquireFirmwareVersion3rdDigit = 0x84, /* undocumented */
BusLogic_InquireFirmwareVersionLetter = 0x85, /* undocumented */
- BusLogic_InquireBoardModelAndRevision = 0x8B, /* undocumented */
+ BusLogic_InquireBoardModelNumber = 0x8B, /* undocumented */
BusLogic_InquireSynchronousPeriod = 0x8C, /* undocumented */
BusLogic_InquireExtendedSetupInformation = 0x8D, /* documented */
BusLogic_EnableStrictRoundRobinMode = 0x8F, /* documented */
@@ -395,15 +401,10 @@
/*
- Define the Inquire Board Model and Revision reply structure.
+ Define the Inquire Board Model Number reply type.
*/
-typedef struct BusLogic_ModelAndRevision
-{
- unsigned char Model[5];
- unsigned char Revision;
-}
-BusLogic_ModelAndRevision_T;
+typedef unsigned char BusLogic_BoardModelNumber_T[5];
/*
@@ -427,7 +428,7 @@
unsigned char MailboxCount; /* Byte 4 */
void *BaseMailboxAddress __attribute__ ((packed)); /* Bytes 5-8 */
struct { unsigned char :6; /* Byte 9 */
- boolean LevelTriggeredInterrupts:1;
+ boolean LevelSensitiveInterrupts:1;
unsigned char :1; } Misc;
unsigned char FirmwareRevision[3]; /* Bytes 10-12 */
boolean HostWideSCSI:1; /* Byte 13 Bit 0 */
@@ -479,8 +480,8 @@
/*
Define the Requested Reply Length type used by the Inquire Setup Information,
- Inquire Board Model and Revision, Inquire Synchronous Period, and Inquire
- Extended Setup Information commands.
+ Inquire Board Model Number, Inquire Synchronous Period, and Inquire Extended
+ Setup Information commands.
*/
typedef unsigned char BusLogic_RequestedReplyLength_T;
@@ -676,7 +677,7 @@
BusLogic_HostAdapterStatus_T HostAdapterStatus:8; /* Byte 14 */
BusLogic_TargetDeviceStatus_T TargetDeviceStatus:8; /* Byte 15 */
unsigned char TargetID; /* Byte 16 */
- unsigned char LogicalUnit:5; /* Byte 17 Bits 0-2 */
+ unsigned char LogicalUnit:5; /* Byte 17 Bits 0-4 */
boolean TagEnable:1; /* Byte 17 Bit 5 */
BusLogic_QueueTag_T QueueTag:2; /* Byte 17 Bits 6-7 */
SCSI_CDB_T CDB; /* Bytes 18-29 */
@@ -691,7 +692,8 @@
SCSI_Command_T *Command;
enum { BusLogic_CCB_Free = 0,
BusLogic_CCB_Active = 1,
- BusLogic_CCB_Completed = 2 } Status;
+ BusLogic_CCB_Completed = 2,
+ BusLogic_CCB_Reset = 3 } Status;
BusLogic_CompletionCode_T MailboxCompletionCode;
unsigned int SerialNumber;
struct BusLogic_CCB *Next;
@@ -759,6 +761,7 @@
unsigned short IO_Address;
unsigned short Concurrency;
unsigned short BusSettleTime;
+ unsigned short LocalOptions;
unsigned short TaggedQueuingPermitted;
unsigned short TaggedQueuingPermittedMask;
unsigned char ErrorRecoveryOption[BusLogic_MaxTargetIDs];
@@ -774,10 +777,10 @@
{
SCSI_Host_T *SCSI_Host;
unsigned char HostNumber;
- unsigned char ModelName[6];
+ unsigned char ModelName[9];
unsigned char FirmwareVersion[6];
- unsigned char BoardName[15];
- unsigned char InterruptLabel[63];
+ unsigned char BoardName[18];
+ unsigned char InterruptLabel[62];
unsigned short IO_Address;
unsigned char IRQ_Channel;
unsigned char DMA_Channel;
@@ -788,10 +791,11 @@
boolean SynchronousInitiation:1;
boolean ParityChecking:1;
boolean ExtendedTranslation:1;
- boolean LevelTriggeredInterrupts:1;
+ boolean LevelSensitiveInterrupts:1;
boolean HostWideSCSI:1;
boolean HostDifferentialSCSI:1;
boolean HostAdapterResetPending:1;
+ boolean BounceBuffersRequired:1;
volatile boolean HostAdapterCommandCompleted:1;
unsigned short HostAdapterScatterGatherLimit;
unsigned short DriverScatterGatherLimit;
@@ -799,6 +803,7 @@
unsigned short MaxLogicalUnits;
unsigned short Concurrency;
unsigned short BusSettleTime;
+ unsigned short LocalOptions;
unsigned short DisconnectPermitted;
unsigned short TaggedQueuingPermitted;
unsigned long BIOS_Address;
@@ -813,6 +818,8 @@
unsigned char ErrorRecoveryOption[BusLogic_MaxTargetIDs];
unsigned char CommandSuccessfulFlag[BusLogic_MaxTargetIDs];
unsigned long ReadWriteOperationCount[BusLogic_MaxTargetIDs];
+ unsigned char QueuedOperationCount[BusLogic_MaxTargetIDs];
+ unsigned long LastSequencePoint[BusLogic_MaxTargetIDs];
BusLogic_OutgoingMailbox_T *FirstOutgoingMailbox;
BusLogic_OutgoingMailbox_T *LastOutgoingMailbox;
BusLogic_OutgoingMailbox_T *NextOutgoingMailbox;
@@ -943,14 +950,17 @@
/*
- BusLogic_Delay waits for Seconds to elapse. It must be called with
- interrupts enabled so that jiffies is updated.
+ BusLogic_Delay waits for Seconds to elapse.
*/
static inline void BusLogic_Delay(int Seconds)
{
unsigned long TimeoutJiffies = jiffies + Seconds * HZ;
+ unsigned long ProcessorFlags;
+ save_flags(ProcessorFlags);
+ sti();
while (jiffies < TimeoutJiffies) ;
+ restore_flags(ProcessorFlags);
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov
with Sam's (original) version of this