diff --git a/drivers/storage/port/buslogic/BusLogic958.c b/drivers/storage/port/buslogic/BusLogic958.c index 76b6d8b024f..fc72c055ffa 100644 --- a/drivers/storage/port/buslogic/BusLogic958.c +++ b/drivers/storage/port/buslogic/BusLogic958.c @@ -80,7 +80,6 @@ v1.2.0.2 // Fix PR 40284 correctly, disable interrupts in the initialization ro #include "BusLogic958.h" ULONG -NTAPI DriverEntry(IN PVOID DriverObject, IN PVOID Argument2 ) @@ -97,7 +96,7 @@ DriverEntry(IN PVOID DriverObject, ULONG Status; ULONG i; ULONG HwContext; -// static int cardNo = 0; + static int cardNo = 0; UCHAR VendorId[4] = { '1', '0', '4', 'b' }; UCHAR DeviceId[4] = { '1', '0', '4', '0' }; @@ -169,7 +168,6 @@ DriverEntry(IN PVOID DriverObject, ULONG -NTAPI BT958HwFindAdapter(IN PVOID HwDeviceExtension, IN PVOID Context, IN PVOID BusInformation, @@ -204,10 +202,10 @@ BT958HwFindAdapter(IN PVOID HwDeviceExtension, { PHW_DEVICE_EXTENSION deviceExtension = HwDeviceExtension; BusLogic_HostAdapter_T *hcsp = &(deviceExtension->hcs); -// static UCHAR k = 0; + static UCHAR k = 0; PACCESS_RANGE accessRange; -// PCI_COMMON_CONFIG PCICommonConfig; - PUCHAR pciAddress; + PCI_COMMON_CONFIG PCICommonConfig; + PUCHAR pciAddress, portFound; char NumPort = 0; DebugPrint((TRACE,"\n BusLogic - Inside the Find Adapter Routine\n")); @@ -291,6 +289,8 @@ BT958HwFindAdapter(IN PVOID HwDeviceExtension, // Should we change this to double-word aligned to increase performance ConfigInfo->AlignmentMask = 0x0; + portFound = hcsp->IO_Address; + if (!Buslogic_InitBT958(deviceExtension,ConfigInfo)) // hardware specific initializations. Find what's for our card { ScsiPortLogError(deviceExtension, @@ -555,7 +555,8 @@ BusLogic_HardwareResetHostAdapter(BusLogic_HostAdapter_T *HostAdapter, if (StatusRegister.Bits.DataInRegisterReady) { - DebugPrint((ERROR, "HOST ADAPTER ERROR CODE = %d\n", BusLogic_ReadDataInRegister(HostAdapter))); + UCHAR ErrorCode = BusLogic_ReadDataInRegister(HostAdapter); + DebugPrint((ERROR, "HOST ADAPTER ERROR CODE = %d\n", ErrorCode)); } return FALSE; } @@ -855,7 +856,7 @@ BusLogic_ReadHostAdapterConfiguration(BusLogic_HostAdapter_T *HostAdapter) BusLogic_GeometryRegister_T GeometryRegister; BusLogic_RequestedReplyLength_T RequestedReplyLength; UCHAR *TargetPointer, Character; - ULONG /*TargetID,*/ i; + int TargetID, i; // Issue the Inquire Board ID command. @@ -969,7 +970,7 @@ BusLogic_ReadHostAdapterConfiguration(BusLogic_HostAdapter_T *HostAdapter) *TargetPointer = '\0'; // Issue the Inquire Firmware Version Letter command. - if (strcmp((char*)HostAdapter->FirmwareVersion, "3.3") >= 0) + if (strcmp(HostAdapter->FirmwareVersion, "3.3") >= 0) { if (BusLogic_Command(HostAdapter, BusLogic_InquireFirmwareVersionLetter, @@ -1131,7 +1132,7 @@ BusLogic_ReadHostAdapterConfiguration(BusLogic_HostAdapter_T *HostAdapter) HostAdapter->HostAdapterQueueDepth = 192; } - if (strcmp((char*)HostAdapter->FirmwareVersion, "3.31") >= 0) + if (strcmp(HostAdapter->FirmwareVersion, "3.31") >= 0) { HostAdapter->StrictRoundRobinModeSupport = TRUE; HostAdapter->MailboxCount = BusLogic_MaxMailboxes; @@ -1155,8 +1156,8 @@ BusLogic_ReadHostAdapterConfiguration(BusLogic_HostAdapter_T *HostAdapter) // // Initialize the Host Adapter Full Model Name from the Model Name. - strcpy((char*)HostAdapter->FullModelName, "BusLogic "); - strcat((char*)HostAdapter->FullModelName, (char*)HostAdapter->ModelName); + strcpy(HostAdapter->FullModelName, "BusLogic "); + strcat(HostAdapter->FullModelName, HostAdapter->ModelName); // Tagged Queuing is only allowed if Disconnect/Reconnect is permitted. // Therefore, mask the Tagged Queuing Permitted Default bits with the @@ -1327,7 +1328,7 @@ BusLogic_TargetDeviceInquiry(BusLogic_HostAdapter_T *HostAdapter) //_________________________________________________________________________ { BusLogic_InstalledDevices_T InstalledDevices; -// BusLogic_InstalledDevices8_T InstalledDevicesID0to7; + BusLogic_InstalledDevices8_T InstalledDevicesID0to7; BusLogic_SetupInformation_T SetupInformation; BusLogic_SynchronousPeriod_T SynchronousPeriod; BusLogic_RequestedReplyLength_T RequestedReplyLength; @@ -1346,7 +1347,7 @@ BusLogic_TargetDeviceInquiry(BusLogic_HostAdapter_T *HostAdapter) // Period commands will return valid data. The Inquire Target Devices command // is preferable to Inquire Installed Devices ID 0 to 7 since it only probes // Logical Unit 0 of each Target Device. - if (strcmp((char*)HostAdapter->FirmwareVersion, "4.25") >= 0) + if (strcmp(HostAdapter->FirmwareVersion, "4.25") >= 0) { if (BusLogic_Command(HostAdapter, BusLogic_InquireTargetDevices, @@ -1384,7 +1385,7 @@ BusLogic_TargetDeviceInquiry(BusLogic_HostAdapter_T *HostAdapter) ? SetupInformation.SynchronousValuesID0to7[TargetID].Offset : SetupInformation.SynchronousValuesID8to15[TargetID-8].Offset); } - if (strcmp((char*)HostAdapter->FirmwareVersion, "5.06L") >= 0) + if (strcmp(HostAdapter->FirmwareVersion, "5.06L") >= 0) { for (TargetID = 0; TargetID < HostAdapter->MaxTargetDevices; TargetID++) { @@ -1422,7 +1423,7 @@ BusLogic_TargetDeviceInquiry(BusLogic_HostAdapter_T *HostAdapter) return TRUE; }// end BusLogic_TargetDeviceInquiry -VOID BusLogic_InitializeCCB( PBuslogic_CCB_T CCB) +BusLogic_InitializeCCB( PBuslogic_CCB_T CCB) { CCB->Opcode = BusLogic_InitiatorCCB; CCB->DataDirection = 0; @@ -1454,7 +1455,6 @@ VOID BusLogic_InitializeCCB( PBuslogic_CCB_T CCB) } BOOLEAN -NTAPI BT958HwStartIO(IN PVOID HwDeviceExtension, IN PSCSI_REQUEST_BLOCK Srb ) @@ -1473,9 +1473,9 @@ BT958HwStartIO(IN PVOID HwDeviceExtension, //__________________________________________________________________________________ { PHW_DEVICE_EXTENSION deviceExtension = HwDeviceExtension; -// PNONCACHED_EXTENSION noncachedExtension = deviceExtension->NoncachedExtension; + PNONCACHED_EXTENSION noncachedExtension = deviceExtension->NoncachedExtension; BusLogic_HostAdapter_T *HostAdapter = &(deviceExtension->hcs); -// BusLogic_OutgoingMailbox_T mailboxOut; + BusLogic_OutgoingMailbox_T mailboxOut; PSCSI_REQUEST_BLOCK AbortSRB; PBuslogic_CCB_T ccb; @@ -1765,12 +1765,12 @@ BusLogic_QueueCommand(IN PVOID HwDeviceExtension , ULONG length; -// UCHAR *Cdb = Srb->Cdb; -// PCDB RealCdb ; + UCHAR *Cdb = Srb->Cdb; + PCDB RealCdb ; UCHAR CDB_Length = Srb->CdbLength; UCHAR TargetID = Srb->TargetId; UCHAR LogicalUnit = Srb->Lun; -// void *BufferPointer = Srb->DataBuffer; + void *BufferPointer = Srb->DataBuffer; int BufferLength = Srb->DataTransferLength; if (Srb->DataTransferLength > 0) @@ -1969,7 +1969,6 @@ BusLogic_QueueCommand(IN PVOID HwDeviceExtension , BOOLEAN -NTAPI BT958HwInterrupt(IN PVOID HwDeviceExtension) //_________________________________________________________________________ // Routine Description: @@ -1989,13 +1988,13 @@ BT958HwInterrupt(IN PVOID HwDeviceExtension) //_________________________________________________________________________ { PHW_DEVICE_EXTENSION deviceExtension = HwDeviceExtension; -// PNONCACHED_EXTENSION noncachedExtension = deviceExtension->NoncachedExtension; + PNONCACHED_EXTENSION noncachedExtension = deviceExtension->NoncachedExtension; BusLogic_HostAdapter_T *HostAdapter = &(deviceExtension->hcs); -// PBuslogic_CCB_T ccb; -// PSCSI_REQUEST_BLOCK srb; + PBuslogic_CCB_T ccb; + PSCSI_REQUEST_BLOCK srb; -// ULONG residualBytes; -// ULONG i; + ULONG residualBytes; + ULONG i; BusLogic_InterruptRegister_T InterruptRegister; @@ -2322,7 +2321,7 @@ BusLogic_ComputeResultCode(BusLogic_HostAdapter_T *HostAdapter, // This function returns the error code that should be returned to port driver //_________________________________________________________________________________________ { - UCHAR HostStatus = 0; + UCHAR HostStatus; // Namita 2Oct CDROM issue if (TargetDeviceStatus != BusLogic_OperationGood && (HostAdapterStatus == BusLogic_CommandCompletedNormally || @@ -2341,14 +2340,8 @@ BusLogic_ComputeResultCode(BusLogic_HostAdapter_T *HostAdapter, case BusLogic_DeviceBusy: { HostStatus = SRB_STATUS_BUSY; - break; - } - case BusLogic_OperationGood: - { - HostStatus = SRB_STATUS_SUCCESS; - break; } - } + } } else @@ -2444,7 +2437,6 @@ BusLogic_ComputeResultCode(BusLogic_HostAdapter_T *HostAdapter, BOOLEAN -NTAPI BT958HwResetBus(IN PVOID HwDeviceExtension, IN ULONG PathId) //_____________________________________________________________________________________ @@ -2461,8 +2453,8 @@ BT958HwResetBus(IN PVOID HwDeviceExtension, { PHW_DEVICE_EXTENSION deviceExtension = HwDeviceExtension; BusLogic_HostAdapter_T *HostAdapter = &(deviceExtension->hcs); -// BusLogic_CCB_T *CCB; -// int TargetID; + BusLogic_CCB_T *CCB; + int TargetID; BOOLEAN Result; BOOLEAN HardReset; @@ -2616,7 +2608,6 @@ Done: } BOOLEAN -NTAPI BT958HwInitialize(IN PVOID HwDeviceExtension) //_______________________________________________________________________________ // Routine Description: @@ -2647,7 +2638,6 @@ BT958HwInitialize(IN PVOID HwDeviceExtension) }// end BT958HwInitialize SCSI_ADAPTER_CONTROL_STATUS -NTAPI BT958HwAdapterControl(IN PVOID HwDeviceExtension, IN SCSI_ADAPTER_CONTROL_TYPE ControlType, IN PVOID Parameters) @@ -2673,20 +2663,20 @@ BT958HwAdapterControl(IN PVOID HwDeviceExtension, { PHW_DEVICE_EXTENSION deviceExtension = HwDeviceExtension; BusLogic_HostAdapter_T *HostAdapter = &(deviceExtension->hcs); -// UCHAR *ParameterPointer; -// BusLogic_StatusRegister_T StatusRegister; -// BusLogic_InterruptRegister_T InterruptRegister; -// int Result,ParameterLength; -// long TimeoutCounter; + UCHAR *ParameterPointer; + BusLogic_StatusRegister_T StatusRegister; + BusLogic_InterruptRegister_T InterruptRegister; + int Result,ParameterLength; + long TimeoutCounter; PSCSI_SUPPORTED_CONTROL_TYPE_LIST ControlTypeList; ULONG AdjustedMaxControlType; ULONG Index; -// UCHAR Retries; + UCHAR Retries; // Default Status -// SCSI_ADAPTER_CONTROL_STATUS Status = ScsiAdapterControlSuccess; + SCSI_ADAPTER_CONTROL_STATUS Status = ScsiAdapterControlSuccess; // // Structure defining which functions this miniport supports diff --git a/drivers/storage/port/buslogic/BusLogic958.h b/drivers/storage/port/buslogic/BusLogic958.h index 603f1943924..f4fce5ec152 100644 --- a/drivers/storage/port/buslogic/BusLogic958.h +++ b/drivers/storage/port/buslogic/BusLogic958.h @@ -34,19 +34,13 @@ // Prototype for functions -#pragma once +#ifndef _BT958_H_ +#define _BT958_H_ -#include -#include -#include -#include -#include -//#include +#include "miniport.h" +#include "scsi.h" +#include "scsiwmi.h" - -//#include "miniport.h" -//#include "scsi.h" -//#include "scsiwmi.h" //_________________________________________________________________________________________ // #defines //_________________________________________________________________________________________ @@ -652,9 +646,8 @@ typedef enum BusLogic_MCA_Bus = 5 }BusLogic_HostAdapterBusType_T; -#if 0 static char *BusLogic_HostAdapterBusNames[] = { "Unknown", "ISA", "EISA", "PCI", "VESA", "MCA" }; -#endif + static BusLogic_HostAdapterBusType_T BusLogic_HostAdapterBusTypes[] ={ BusLogic_VESA_Bus, /* BT-4xx */ BusLogic_ISA_Bus, /* BT-5xx */ @@ -815,13 +808,11 @@ typedef struct BusLogic_WmiExtendedSetupInformation // function declarations //_________________________________________________________________________________________ ULONG -NTAPI DriverEntry(IN PVOID DriverObject, IN PVOID Argument2 ); ULONG -NTAPI BT958HwFindAdapter(IN PVOID HwDeviceExtension, IN PVOID Context, IN PVOID BusInformation, @@ -831,36 +822,30 @@ BT958HwFindAdapter(IN PVOID HwDeviceExtension, ); BOOLEAN -NTAPI BT958HwInitialize(IN PVOID HwDeviceExtension); BOOLEAN -NTAPI BT958HwStartIO(IN PVOID HwDeviceExtension, IN PSCSI_REQUEST_BLOCK Srb ); BOOLEAN -NTAPI BT958HwInterrupt(IN PVOID HwDeviceExtension); BOOLEAN -NTAPI BT958HwResetBus(IN PVOID HwDeviceExtension, IN ULONG PathId ); SCSI_ADAPTER_CONTROL_STATUS -NTAPI BT958HwAdapterControl(IN PVOID HwDeviceExtension, IN SCSI_ADAPTER_CONTROL_TYPE ControlType, IN PVOID Parameters ); -#if 0 BOOLEAN BT958WmiSrb(IN PHW_DEVICE_EXTENSION HwDeviceExtension, IN OUT PSCSI_WMI_REQUEST_BLOCK Srb); -#endif + void BT958WmiInitialize( IN PHW_DEVICE_EXTENSION HwDeviceExtension); @@ -1181,3 +1166,5 @@ BusLogic_IncrementErrorCounter(unsigned short *ErrorCounter) if (*ErrorCounter < 65535) (*ErrorCounter)++; } //____________________________________________________________________________________________ + +#endif // _BT958_H_ diff --git a/drivers/storage/port/buslogic/BusLogic958.rc b/drivers/storage/port/buslogic/BusLogic958.rc index 777aace2945..a7bba774231 100644 --- a/drivers/storage/port/buslogic/BusLogic958.rc +++ b/drivers/storage/port/buslogic/BusLogic958.rc @@ -18,8 +18,7 @@ #if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) #ifdef _WIN32 LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -/* UTF-8 */ -#pragma code_page(65001) +#pragma code_page(1252) #endif //_WIN32 #define DRIVER_VERSION 1,2,0,4 @@ -53,7 +52,7 @@ BEGIN VALUE "FileDescription", DRIVER_NAME "\0" VALUE "FileVersion", DRIVER_VERSION_STRING "\0" VALUE "InternalName", "vmscsi.sys" "\0" - VALUE "LegalCopyright", "Copyright © 1998-2004 VMware, Inc." "\0" + VALUE "LegalCopyright", "Copyright © 1998-2004 VMware, Inc." "\0" VALUE "OriginalFilename", "vmscsi.sys" "\0" VALUE "ProductName", DRIVER_NAME "\0" VALUE "ProductVersion", DRIVER_VERSION_STRING "\0" @@ -73,7 +72,7 @@ END // MOFDATA // -MOFRESOURCE MOFDATA "BT958.bmf" +MOFRESOURCE MOFDATA MOVEABLE PURE "BT958.bmf" #ifdef APSTUDIO_INVOKED ///////////////////////////////////////////////////////////////////////////// @@ -81,18 +80,18 @@ MOFRESOURCE MOFDATA "BT958.bmf" // TEXTINCLUDE // -1 TEXTINCLUDE +1 TEXTINCLUDE DISCARDABLE BEGIN "resource.h\0" END -2 TEXTINCLUDE +2 TEXTINCLUDE DISCARDABLE BEGIN "#include ""afxres.h""\r\n" "\0" END -3 TEXTINCLUDE +3 TEXTINCLUDE DISCARDABLE BEGIN "\r\n" "\0" diff --git a/drivers/storage/port/buslogic/Log.c b/drivers/storage/port/buslogic/Log.c index 47f138f948c..93b98d9f443 100644 --- a/drivers/storage/port/buslogic/Log.c +++ b/drivers/storage/port/buslogic/Log.c @@ -21,11 +21,10 @@ BOOLEAN LogMessage(PCHAR szFormat, ...) va_end(va); //get a handle to the log file object - fileName.Buffer = NULL; fileName.Length = 0; fileName.MaximumLength = sizeof(DEFAULT_LOG_FILE_NAME) + sizeof(UNICODE_NULL); - fileName.Buffer = ExAllocatePool(PagedPool, - fileName.MaximumLength); + fileName.Buffer = ExAllocatePoolWithTag(PagedPool, + fileName.MaximumLength, 'BSLG'); if (!fileName.Buffer) { return FALSE; @@ -44,7 +43,7 @@ BOOLEAN LogMessage(PCHAR szFormat, ...) DbgPrint("\n BusLogic - Creating the file"); status = ZwCreateFile(&FileHandle, - FILE_APPEND_DATA | SYNCHRONIZE, + FILE_APPEND_DATA, &objectAttributes, &IoStatus, 0,