Author: fireball Date: Tue Mar 27 15:07:12 2007 New Revision: 26187
URL: http://svn.reactos.org/svn/reactos?rev=26187&view=rev Log: Change code, fix warnings, so it finally builds.
Modified: trunk/reactos/drivers/storage/scsiport-new/scsiport.c trunk/reactos/drivers/storage/scsiport-new/scsiport_int.h
Modified: trunk/reactos/drivers/storage/scsiport-new/scsiport.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/scsiport-ne... ============================================================================== --- trunk/reactos/drivers/storage/scsiport-new/scsiport.c (original) +++ trunk/reactos/drivers/storage/scsiport-new/scsiport.c Tue Mar 27 15:07:12 2007 @@ -16,7 +16,7 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */ -/* $Id: scsiport.c,v 1.52 2004/04/02 15:43:01 hbirr Exp $ +/* $Id$ * * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS kernel @@ -27,19 +27,20 @@
/* INCLUDES *****************************************************************/
-#include <ddk/ntddk.h> -#include <ddk/srb.h> -#include <ddk/scsi.h> -#include <ddk/ntddscsi.h> -#include <rosrtl/string.h> - -#define NDEBUG +#include <ntddk.h> +#include <srb.h> +#include <scsi.h> +#include <ntddscsi.h> +#include <ntddstor.h> +#include <ntdddisk.h> +#include <stdio.h> +#include <stdarg.h> + +//#define NDEBUG #include <debug.h>
- -#define VERSION "0.0.1" - #include "scsiport_int.h" +
/* #define USE_DEVICE_QUEUES */
@@ -222,18 +223,6 @@ DPRINT("ScsiPortCompleteRequest()\n"); UNIMPLEMENTED; } - - -/* - * @implemented - */ -ULONG STDCALL -ScsiPortConvertPhysicalAddressToUlong(IN SCSI_PHYSICAL_ADDRESS Address) -{ - DPRINT("ScsiPortConvertPhysicalAddressToUlong()\n"); - return(Address.u.LowPart); -} -
/* * @unimplemented @@ -448,7 +437,7 @@ } else { - EndAddress = Srb->DataBuffer + Srb->DataTransferLength; + EndAddress = (PVOID)((ULONG_PTR)Srb->DataBuffer + Srb->DataTransferLength); if (VirtualAddress == NULL) { VirtualAddress = Srb->DataBuffer; @@ -475,18 +464,18 @@ PhysicalAddress.u.LowPart = (PhysicalAddress.u.LowPart & ~(PAGE_SIZE - 1)) + Offset; #endif BufferLength += PAGE_SIZE - Offset; - while (VirtualAddress + BufferLength < EndAddress) - { - NextPhysicalAddress = MmGetPhysicalAddress(VirtualAddress + BufferLength); + while ((ULONG_PTR)VirtualAddress + BufferLength < (ULONG_PTR)EndAddress) + { + NextPhysicalAddress = MmGetPhysicalAddress((PVOID)((ULONG_PTR)VirtualAddress + BufferLength)); if (PhysicalAddress.QuadPart + (ULONGLONG)BufferLength != NextPhysicalAddress.QuadPart) { break; } BufferLength += PAGE_SIZE; } - if (VirtualAddress + BufferLength >= EndAddress) - { - BufferLength = EndAddress - VirtualAddress; + if ((ULONG_PTR)VirtualAddress + BufferLength >= (ULONG_PTR)EndAddress) + { + BufferLength = (ULONG_PTR)EndAddress - (ULONG_PTR)VirtualAddress; } }
@@ -817,7 +806,7 @@ // PortConfig->DemandMode = PortConfig->MapBuffers = HwInitializationData->MapBuffers; PortConfig->NeedPhysicalAddresses = HwInitializationData->NeedPhysicalAddresses; - PortConfig->TaggedQueuing = HwInitializationData->TaggedQueueing; + PortConfig->TaggedQueuing = HwInitializationData->TaggedQueuing; PortConfig->AutoRequestSense = HwInitializationData->AutoRequestSense; PortConfig->MultipleRequestPerLu = HwInitializationData->MultipleRequestPerLu; PortConfig->ReceiveEvent = HwInitializationData->ReceiveEvent; @@ -828,7 +817,7 @@
PortConfig->SlotNumber = SlotNumber.u.AsULONG;
- PortConfig->AccessRanges = (PACCESS_RANGE)(PortConfig + 1); + PortConfig->AccessRanges = (ACCESS_RANGE(*)[])(PortConfig + 1);
/* Search for matching PCI device */ if ((HwInitializationData->AdapterInterfaceType == PCIBus) && @@ -1011,7 +1000,7 @@ VOID STDCALL ScsiPortIoMapTransfer(IN PVOID HwDeviceExtension, IN PSCSI_REQUEST_BLOCK Srb, - IN ULONG LogicalAddress, + IN PVOID LogicalAddress, IN ULONG Length) { DPRINT1("ScsiPortIoMapTransfer()\n"); @@ -1254,9 +1243,9 @@
for (i = 0; i < PortConfig->NumberOfAccessRanges; i++) { - PortConfig->AccessRanges[i].RangeStart.QuadPart = + (*PortConfig->AccessRanges)[i].RangeStart.QuadPart = PciConfig.u.type0.BaseAddresses[i] & PCI_ADDRESS_IO_ADDRESS_MASK; - if (PortConfig->AccessRanges[i].RangeStart.QuadPart != 0) + if ((*PortConfig->AccessRanges)[i].RangeStart.QuadPart != 0) { RangeLength = (ULONG)-1; HalSetBusDataByOffset (PCIConfiguration, @@ -1281,9 +1270,9 @@ sizeof(ULONG)); if (RangeLength != 0) { - PortConfig->AccessRanges[i].RangeLength = + (*PortConfig->AccessRanges)[i].RangeLength = -(RangeLength & PCI_ADDRESS_IO_ADDRESS_MASK); - PortConfig->AccessRanges[i].RangeInMemory = + (*PortConfig->AccessRanges)[i].RangeInMemory = !(PciConfig.u.type0.BaseAddresses[i] & PCI_ADDRESS_IO_SPACE);
DPRINT("RangeStart 0x%lX RangeLength 0x%lX RangeInMemory %s\n", @@ -2300,8 +2289,8 @@ }
/* Open or create the 'Scsi' subkey */ - RtlRosInitUnicodeStringFromLiteral(&KeyName, - L"\Registry\Machine\Hardware\DeviceMap\Scsi"); + RtlInitUnicodeString(&KeyName, + L"\Registry\Machine\Hardware\DeviceMap\Scsi"); InitializeObjectAttributes(&ObjectAttributes, &KeyName, OBJ_CASE_INSENSITIVE | OBJ_OPENIF, @@ -2406,7 +2395,7 @@ }
/* Set 'IOAddress' (REG_DWORD) value (NT4 only) */ - UlongData = ScsiPortConvertPhysicalAddressToUlong(DeviceExtension->PortConfig->AccessRanges[0].RangeStart); + UlongData = ScsiPortConvertPhysicalAddressToUlong((*DeviceExtension->PortConfig->AccessRanges)[0].RangeStart); DPRINT(" IOAddress = %lx\n", UlongData); RtlInitUnicodeString(&ValueName, L"IOAddress"); @@ -2666,4 +2655,17 @@ return Status; }
+ +#undef ScsiPortConvertPhysicalAddressToUlong +/* + * @implemented + */ +ULONG STDCALL +ScsiPortConvertPhysicalAddressToUlong(IN SCSI_PHYSICAL_ADDRESS Address) +{ + DPRINT("ScsiPortConvertPhysicalAddressToUlong()\n"); + return(Address.u.LowPart); +} + + /* EOF */
Modified: trunk/reactos/drivers/storage/scsiport-new/scsiport_int.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/drivers/storage/scsiport-ne... ============================================================================== --- trunk/reactos/drivers/storage/scsiport-new/scsiport_int.h (original) +++ trunk/reactos/drivers/storage/scsiport-new/scsiport_int.h Tue Mar 27 15:07:12 2007 @@ -4,6 +4,18 @@ * DESCRIPTION * An enumeration containing the states in the timer DFA */ + +#define VERSION "0.0.3" + +#ifndef PAGE_ROUND_UP +#define PAGE_ROUND_UP(x) ( (((ULONG_PTR)x)%PAGE_SIZE) ? ((((ULONG_PTR)x)&(~(PAGE_SIZE-1)))+PAGE_SIZE) : ((ULONG_PTR)x) ) +#endif +#ifndef ROUND_UP +#define ROUND_UP(N, S) ((((N) + (S) - 1) / (S)) * (S)) +#endif + +#define TAG(A, B, C, D) (ULONG)(((A)<<0) + ((B)<<8) + ((C)<<16) + ((D)<<24)) + typedef enum _SCSI_PORT_TIMER_STATES { IDETimerIdle,