From b8ec1f6a566ebd3021e6fa50476180e127beded6 Mon Sep 17 00:00:00 2001 From: Eric Kohl Date: Sat, 21 Jul 2001 07:30:26 +0000 Subject: [PATCH] Added scsiport driver skeleton. svn path=/trunk/; revision=2077 --- reactos/drivers/storage/include/srb.h | 355 ++++++++++++++++++ reactos/drivers/storage/scsiport/makefile | 39 ++ reactos/drivers/storage/scsiport/scsiport.c | 282 ++++++++++++++ reactos/drivers/storage/scsiport/scsiport.def | 51 +++ reactos/drivers/storage/scsiport/scsiport.edf | 64 ++++ reactos/drivers/storage/scsiport/scsiport.rc | 38 ++ 6 files changed, 829 insertions(+) create mode 100644 reactos/drivers/storage/include/srb.h create mode 100644 reactos/drivers/storage/scsiport/makefile create mode 100644 reactos/drivers/storage/scsiport/scsiport.c create mode 100644 reactos/drivers/storage/scsiport/scsiport.def create mode 100644 reactos/drivers/storage/scsiport/scsiport.edf create mode 100644 reactos/drivers/storage/scsiport/scsiport.rc diff --git a/reactos/drivers/storage/include/srb.h b/reactos/drivers/storage/include/srb.h new file mode 100644 index 00000000000..c28db43f826 --- /dev/null +++ b/reactos/drivers/storage/include/srb.h @@ -0,0 +1,355 @@ +/* $Id: srb.h,v 1.1 2001/07/21 07:29:53 ekohl Exp $ + * + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: services/storage/include/srb.c + * PURPOSE: SCSI port driver definitions + * PROGRAMMER: Eric Kohl (ekohl@rz-online.de) + */ + +#ifndef __STORAGE_INCLUDE_SRB_H +#define __STORAGE_INCLUDE_SRB_H + +typedef PHYSICAL_ADDRESS SCSI_PHYSICAL_ADDRESS, *PSCSI_PHYSICAL_ADDRESS; + + +typedef struct _ACCESS_RANGE +{ + SCSI_PHYSICAL_ADDRESS RangeStart; + ULONG RangeLength; + BOOLEAN RangeInMemory; +}ACCESS_RANGE, *PACCESS_RANGE; + + +typedef struct _PORT_CONFIGURATION_INFORMATION +{ + ULONG Length; + ULONG SystemIoBusNumber; + INTERFACE_TYPE AdapterInterfaceType; + ULONG BusInterruptLevel; + ULONG BusInterruptVector; + KINTERRUPT_MODE InterruptMode; + ULONG MaximumTransferLength; + ULONG NumberOfPhysicalBreaks; + ULONG DmaChannel; + ULONG DmaPort; + DMA_WIDTH DmaWidth; + DMA_SPEED DmaSpeed; + ULONG AlignmentMask; + ULONG NumberOfAccessRanges; + ACCESS_RANGE (*AccessRanges)[]; + PVOID Reserved; + UCHAR NumberOfBuses; + CCHAR InitiatorBusId[8]; + BOOLEAN ScatterGather; + BOOLEAN Master; + BOOLEAN CachesData; + BOOLEAN AdapterScansDown; + BOOLEAN AtdiskPrimaryClaimed; + BOOLEAN AtdiskSecondaryClaimed; + BOOLEAN Dma32BitAddresses; + BOOLEAN DemandMode; + BOOLEAN MapBuffers; + BOOLEAN NeedPhysicalAddresses; + BOOLEAN TaggedQueuing; + BOOLEAN AutoRequestSense; + BOOLEAN MultipleRequestPerLu; + BOOLEAN ReceiveEvent; + BOOLEAN RealModeInitialized; + BOOLEAN BufferAccessScsiPortControlled; + UCHAR MaximumNumberOfTargets; + UCHAR ReservedUchars[2]; + ULONG SlotNumber; + ULONG BusInterruptLevel2; + ULONG BusInterruptVector2; + KINTERRUPT_MODE InterruptMode2; + ULONG DmaChannel2; + ULONG DmaPort2; + DMA_WIDTH DmaWidth2; + DMA_SPEED DmaSpeed2; + ULONG DeviceExtensionSize; + ULONG SpecificLuExtensionSize; + ULONG SrbExtensionSize; +} PORT_CONFIGURATION_INFORMATION, *PPORT_CONFIGURATION_INFORMATION; + +#define CONFIG_INFO_VERSION_2 sizeof(PORT_CONFIGURATION_INFORMATION) + + +typedef struct _SCSI_REQUEST_BLOCK +{ + USHORT Length; // 0x00 + UCHAR Function; // 0x02 + UCHAR SrbStatus; // 0x03 + UCHAR ScsiStatus; // 0x04 + UCHAR PathId; // 0x05 + UCHAR TargetId; // 0x06 + UCHAR Lun; // 0x07 + UCHAR QueueTag; // 0x08 + UCHAR QueueAction; // 0x09 + UCHAR CdbLength; // 0x0A + UCHAR SenseInfoBufferLength; // 0x0B + ULONG SrbFlags; // 0x0C + ULONG DataTransferLength; // 0x10 + ULONG TimeOutValue; // 0x14 + PVOID DataBuffer; // 0x18 + PVOID SenseInfoBuffer; // 0x1C + struct _SCSI_REQUEST_BLOCK *NextSrb; // 0x20 + PVOID OriginalRequest; // 0x24 + PVOID SrbExtension; // 0x28 + ULONG QueueSortKey; // 0x2C + UCHAR Cdb[16]; // 0x30 +} SCSI_REQUEST_BLOCK, *PSCSI_REQUEST_BLOCK; + +#define SCSI_REQUEST_BLOCK_SIZE sizeof(SCSI_REQUEST_BLOCK) + + +typedef enum _SCSI_NOTIFICATION_TYPE +{ + RequestComplete, + NextRequest, + NextLuRequest, + ResetDetected, + CallDisableInterrupts, + CallEnableInterrupts, + RequestTimerCall +} SCSI_NOTIFICATION_TYPE, *PSCSI_NOTIFICATION_TYPE; + + +typedef BOOLEAN STDCALL +(*PHW_INITIALIZE)(IN PVOID DeviceExtension); + +typedef BOOLEAN STDCALL +(*PHW_STARTIO)(IN PVOID DeviceExtension, + IN PSCSI_REQUEST_BLOCK Srb); + +typedef BOOLEAN STDCALL +(*PHW_INTERRUPT)(IN PVOID DeviceExtension); + +typedef VOID STDCALL +(*PHW_TIMER)(IN PVOID DeviceExtension); + +typedef VOID STDCALL +(*PHW_DMA_STARTED)(IN PVOID DeviceExtension); + +typedef ULONG STDCALL +(*PHW_FIND_ADAPTER)(IN PVOID DeviceExtension, + IN PVOID HwContext, + IN PVOID BusInformation, + IN PCHAR ArgumentString, + IN OUT PPORT_CONFIGURATION_INFORMATION ConfigInfo, + OUT PBOOLEAN Again); + +typedef BOOLEAN STDCALL +(*PHW_RESET_BUS)(IN PVOID DeviceExtension, + IN ULONG PathId); + +typedef BOOLEAN STDCALL +(*PHW_ADAPTER_STATE)(IN PVOID DeviceExtension, + IN PVOID Context, + IN BOOLEAN SaveState); + +typedef struct _HW_INITIALIZATION_DATA +{ + ULONG HwInitializationDataSize; + INTERFACE_TYPE AdapterInterfaceType; + PHW_INITIALIZE HwInitialize; + PHW_STARTIO HwStartIo; + PHW_INTERRUPT HwInterrupt; + PHW_FIND_ADAPTER HwFindAdapter; + PHW_RESET_BUS HwResetBus; + PHW_DMA_STARTED HwDmaStarted; + PHW_ADAPTER_STATE HwAdapterState; + ULONG DeviceExtensionSize; + ULONG SpecificLuExtensionSize; + ULONG SrbExtensionSize; + ULONG NumberOfAccessRanges; + PVOID Reserved; + BOOLEAN MapBuffers; + BOOLEAN NeedPhysicalAddresses; + BOOLEAN TaggedQueuing; + BOOLEAN AutoRequestSense; + BOOLEAN MultipleRequestPerLu; + BOOLEAN ReceiveEvent; + USHORT VendorIdLength; + PVOID VendorId; + USHORT ReservedUshort; + USHORT DeviceIdLength; + PVOID DeviceId; +} HW_INITIALIZATION_DATA, *PHW_INITIALIZATION_DATA; + + +/* FUNCTIONS ****************************************************************/ + +VOID +ScsiDebugPrint ( + IN ULONG DebugPrintLevel, + IN PCHAR DebugMessage, + ... + ); + +VOID +STDCALL +ScsiPortCompleteRequest ( + IN PVOID HwDeviceExtension, + IN UCHAR PathId, + IN UCHAR TargetId, + IN UCHAR Lun, + IN UCHAR SrbStatus + ); + +ULONG +STDCALL +ScsiPortConvertPhysicalAddressToUlong ( + IN SCSI_PHYSICAL_ADDRESS Address + ); + +SCSI_PHYSICAL_ADDRESS +STDCALL +ScsiPortConvertUlongToPhysicalAddress ( + IN ULONG UlongAddress + ); + +VOID +STDCALL +ScsiPortFlushDma ( + IN PVOID HwDeviceExtension + ); + +VOID +STDCALL +ScsiPortFreeDeviceBase ( + IN PVOID HwDeviceExtension, + IN PVOID MappedAddress + ); + +ULONG +STDCALL +ScsiPortGetBusData ( + IN PVOID DeviceExtension, + IN ULONG BusDataType, + IN ULONG SystemIoBusNumber, + IN ULONG SlotNumber, + IN PVOID Buffer, + IN ULONG Length + ); + +PVOID +STDCALL +ScsiPortGetDeviceBase ( + IN PVOID HwDeviceExtension, + IN INTERFACE_TYPE BusType, + IN ULONG SystemIoBusNumber, + IN SCSI_PHYSICAL_ADDRESS IoAddress, + IN ULONG NumberOfBytes, + IN BOOLEAN InIoSpace + ); + +PVOID +STDCALL +ScsiPortGetLogicalUnit ( + IN PVOID HwDeviceExtension, + IN UCHAR PathId, + IN UCHAR TargetId, + IN UCHAR Lun + ); + +SCSI_PHYSICAL_ADDRESS +STDCALL +ScsiPortGetPhysicalAddress ( + IN PVOID HwDeviceExtension, + IN PSCSI_REQUEST_BLOCK Srb OPTIONAL, + IN PVOID VirtualAddress, + OUT PULONG Length + ); + +PSCSI_REQUEST_BLOCK +STDCALL +ScsiPortGetSrb ( + IN PVOID DeviceExtension, + IN UCHAR PathId, + IN UCHAR TargetId, + IN UCHAR Lun, + IN LONG QueueTag + ); + +PVOID +STDCALL +ScsiPortGetUncachedExtension ( + IN PVOID HwDeviceExtension, + IN PPORT_CONFIGURATION_INFORMATION ConfigInfo, + IN ULONG NumberOfBytes + ); + +PVOID +STDCALL +ScsiPortGetVirtualAddress ( + IN PVOID HwDeviceExtension, + IN SCSI_PHYSICAL_ADDRESS PhysicalAddress + ); + +ULONG +STDCALL +ScsiPortInitialize ( + IN PVOID Argument1, + IN PVOID Argument2, + IN struct _HW_INITIALIZATION_DATA *HwInitializationData, + IN PVOID HwContext + ); + +VOID +STDCALL +ScsiPortIoMapTransfer ( + IN PVOID HwDeviceExtension, + IN PSCSI_REQUEST_BLOCK Srb, + IN ULONG LogicalAddress, + IN ULONG Length + ); + +VOID +STDCALL +ScsiPortLogError ( + IN PVOID HwDeviceExtension, + IN PSCSI_REQUEST_BLOCK Srb OPTIONAL, + IN UCHAR PathId, + IN UCHAR TargetId, + IN UCHAR Lun, + IN ULONG ErrorCode, + IN ULONG UniqueId + ); + +VOID +STDCALL +ScsiPortMoveMemory ( + OUT PVOID Destination, + IN PVOID Source, + IN ULONG Length + ); + +VOID +ScsiPortNotification ( + IN SCSI_NOTIFICATION_TYPE NotificationType, + IN PVOID HwDeviceExtension, + ... + ); + +UCHAR +STDCALL +ScsiPortReadPortUchar ( + IN PUCHAR Port + ); + +ULONG +STDCALL +ScsiPortReadPortUlong ( + IN PULONG Port + ); + +USHORT +STDCALL +ScsiPortReadPortUshort ( + IN PUSHORT Port + ); + +#endif /* __STORAGE_INCLUDE_SRB_H */ + +/* EOF */ \ No newline at end of file diff --git a/reactos/drivers/storage/scsiport/makefile b/reactos/drivers/storage/scsiport/makefile new file mode 100644 index 00000000000..533c1cba327 --- /dev/null +++ b/reactos/drivers/storage/scsiport/makefile @@ -0,0 +1,39 @@ +# $Id: makefile,v 1.1 2001/07/21 07:30:26 ekohl Exp $ +# +# +PATH_TO_TOP = ../../.. + +TARGET=scsiport + +OBJECTS = $(TARGET).o $(TARGET).coff + +LIBS = $(PATH_TO_TOP)/ntoskrnl/ntoskrnl.a + +CFLAGS = -D__NTDRIVER__ -I$(PATH_TO_TOP)/include + +all: $(TARGET).sys $(TARGET).sys.unstripped $(TARGET).a + +.phony: all + +clean: + - $(RM) *.o $(TARGET).a $(TARGET).coff junk.tmp base.tmp temp.exp $(TARGET).sys $(TARGET).sys.unstripped + +.phony: clean + +install: $(FLOPPY_DIR)/drivers/$(TARGET).sys + +$(FLOPPY_DIR)/drivers/$(TARGET).sys: $(TARGET).sys + $(CP) $(TARGET).sys $(FLOPPY_DIR)/drivers/$(TARGET).sys + + +dist: $(PATH_TO_TOP)/$(DIST_DIR)/drivers/$(TARGET).sys + +$(PATH_TO_TOP)/$(DIST_DIR)/drivers/$(TARGET).sys: $(TARGET).sys + $(CP) $(TARGET).sys $(PATH_TO_TOP)/$(DIST_DIR)/drivers/$(TARGET).sys + + +$(TARGET).sys $(TARGET).sys.unstripped: $(OBJECTS) $(LIBS) + + +WARNINGS_ARE_ERRORS = yes +include $(PATH_TO_TOP)/rules.mak diff --git a/reactos/drivers/storage/scsiport/scsiport.c b/reactos/drivers/storage/scsiport/scsiport.c new file mode 100644 index 00000000000..c5f711d8ab4 --- /dev/null +++ b/reactos/drivers/storage/scsiport/scsiport.c @@ -0,0 +1,282 @@ +/* $Id: scsiport.c,v 1.1 2001/07/21 07:30:26 ekohl Exp $ + * + * COPYRIGHT: See COPYING in the top level directory + * PROJECT: ReactOS kernel + * FILE: services/storage/scsiport/scsiport.c + * PURPOSE: SCSI port driver + * PROGRAMMER: Eric Kohl (ekohl@rz-online.de) + */ + +#include +#include "../include/srb.h" + + +#define UNIMPLEMENTED do {DbgPrint("%s:%d: Function not implemented", __FILE__, __LINE__); for(;;);} while (0) + +#define VERSION "0.0.1" + +// ------------------------------------------------------- Public Interface + +// DriverEntry +// +// DESCRIPTION: +// This function initializes the driver. +// +// RUN LEVEL: +// PASSIVE_LEVEL +// +// ARGUMENTS: +// IN PDRIVER_OBJECT DriverObject System allocated Driver Object +// for this driver +// IN PUNICODE_STRING RegistryPath Name of registry driver service +// key +// +// RETURNS: +// NTSTATUS + +NTSTATUS STDCALL +DriverEntry(IN PDRIVER_OBJECT DriverObject, + IN PUNICODE_STRING RegistryPath) +{ + DbgPrint("ScsiPort Driver %s\n", VERSION); + return(STATUS_SUCCESS); +} + + +VOID +ScsiDebugPrint(IN ULONG DebugPrintLevel, + IN PCHAR DebugMessage, + ...) +{ + char Buffer[256]; + va_list ap; + +#if 0 + if (DebugPrintLevel > InternalDebugLevel) + return; +#endif + + va_start(ap, DebugMessage); + vsprintf(Buffer, DebugMessage, ap); + va_end(ap); + + DbgPrint(Buffer); +} + + +VOID STDCALL +ScsiPortCompleteRequest(IN PVOID HwDeviceExtension, + IN UCHAR PathId, + IN UCHAR TargetId, + IN UCHAR Lun, + IN UCHAR SrbStatus) +{ + UNIMPLEMENTED; +} + + +ULONG STDCALL +ScsiPortConvertPhysicalAddressToUlong(IN SCSI_PHYSICAL_ADDRESS Address) +{ + return Address.u.LowPart; +} + + +VOID STDCALL +ScsiPortFlushDma(IN PVOID HwDeviceExtension) +{ + UNIMPLEMENTED; +} + + +VOID STDCALL +ScsiPortFreeDeviceBase(IN PVOID HwDeviceExtension, + IN PVOID MappedAddress) +{ + UNIMPLEMENTED; +} + + +ULONG STDCALL +ScsiPortGetBusData(IN PVOID DeviceExtension, + IN ULONG BusDataType, + IN ULONG SystemIoBusNumber, + IN ULONG SlotNumber, + IN PVOID Buffer, + IN ULONG Length) +{ + UNIMPLEMENTED; +} + + +PVOID STDCALL +ScsiPortGetDeviceBase(IN PVOID HwDeviceExtension, + IN INTERFACE_TYPE BusType, + IN ULONG SystemIoBusNumber, + IN SCSI_PHYSICAL_ADDRESS IoAddress, + IN ULONG NumberOfBytes, + IN BOOLEAN InIoSpace) +{ + ULONG AddressSpace; + PHYSICAL_ADDRESS TranslatedAddress; + PVOID VirtualAddress; + PVOID Buffer; + BOOLEAN rc; + + AddressSpace = (ULONG)InIoSpace; + + if (!HalTranslateBusAddress(BusType, + SystemIoBusNumber, + IoAddress, + &AddressSpace, + &TranslatedAddress)) + return NULL; + + /* i/o space */ + if (AddressSpace != 0) + return (PVOID)TranslatedAddress.u.LowPart; + + VirtualAddress = MmMapIoSpace(TranslatedAddress, + NumberOfBytes, + FALSE); + + Buffer = ExAllocatePool(NonPagedPool,0x20); + if (Buffer == NULL) + return VirtualAddress; + + return NULL; /* ?? */ +} + + +PVOID STDCALL +ScsiPortGetLogicalUnit(IN PVOID HwDeviceExtension, + IN UCHAR PathId, + IN UCHAR TargetId, + IN UCHAR Lun) +{ + UNIMPLEMENTED; +} + + +SCSI_PHYSICAL_ADDRESS STDCALL +ScsiPortGetPhysicalAddress(IN PVOID HwDeviceExtension, + IN PSCSI_REQUEST_BLOCK Srb OPTIONAL, + IN PVOID VirtualAddress, + OUT ULONG *Length) +{ + UNIMPLEMENTED; +} + + +PSCSI_REQUEST_BLOCK STDCALL +ScsiPortGetSrb(IN PVOID DeviceExtension, + IN UCHAR PathId, + IN UCHAR TargetId, + IN UCHAR Lun, + IN LONG QueueTag) +{ + UNIMPLEMENTED; +} + + +PVOID STDCALL +ScsiPortGetUncachedExtension(IN PVOID HwDeviceExtension, + IN PPORT_CONFIGURATION_INFORMATION ConfigInfo, + IN ULONG NumberOfBytes) +{ + UNIMPLEMENTED; +} + + +PVOID STDCALL +ScsiPortGetVirtualAddress(IN PVOID HwDeviceExtension, + IN SCSI_PHYSICAL_ADDRESS PhysicalAddress) +{ + UNIMPLEMENTED; +} + + +ULONG STDCALL +ScsiPortInitialize(IN PVOID Argument1, + IN PVOID Argument2, + IN struct _HW_INITIALIZATION_DATA *HwInitializationData, + IN PVOID HwContext) +{ + UNIMPLEMENTED; + return(STATUS_SUCCESS); +} + + +VOID STDCALL +ScsiPortIoMapTransfer(IN PVOID HwDeviceExtension, + IN PSCSI_REQUEST_BLOCK Srb, + IN ULONG LogicalAddress, + IN ULONG Length) +{ + UNIMPLEMENTED; +} + + +VOID STDCALL +ScsiPortLogError(IN PVOID HwDeviceExtension, + IN PSCSI_REQUEST_BLOCK Srb OPTIONAL, + IN UCHAR PathId, + IN UCHAR TargetId, + IN UCHAR Lun, + IN ULONG ErrorCode, + IN ULONG UniqueId) +{ + UNIMPLEMENTED; +} + + +VOID STDCALL +ScsiPortMoveMemory(OUT PVOID Destination, + IN PVOID Source, + IN ULONG Length) +{ + RtlMoveMemory(Destination, + Source, + Length); +} + + +VOID +ScsiPortNotification(IN SCSI_NOTIFICATION_TYPE NotificationType, + IN PVOID HwDeviceExtension, + ...) +{ + UNIMPLEMENTED; +} + + +ULONG STDCALL +ScsiPortSetBusDataByOffset(IN PVOID DeviceExtension, + IN ULONG BusDataType, + IN ULONG SystemIoBusNumber, + IN ULONG SlotNumber, + IN PVOID Buffer, + IN ULONG Offset, + IN ULONG Length) +{ + return(HalSetBusDataByOffset(BusDataType, + SystemIoBusNumber, + SlotNumber, + Buffer, + Offset, + Length)); +} + + +BOOLEAN STDCALL +ScsiPortValidateRange(IN PVOID HwDeviceExtension, + IN INTERFACE_TYPE BusType, + IN ULONG SystemIoBusNumber, + IN SCSI_PHYSICAL_ADDRESS IoAddress, + IN ULONG NumberOfBytes, + IN BOOLEAN InIoSpace) +{ + return(TRUE); +} + +/* EOF */ diff --git a/reactos/drivers/storage/scsiport/scsiport.def b/reactos/drivers/storage/scsiport/scsiport.def new file mode 100644 index 00000000000..2ba7fa10a53 --- /dev/null +++ b/reactos/drivers/storage/scsiport/scsiport.def @@ -0,0 +1,51 @@ +; $Id: scsiport.def,v 1.1 2001/07/21 07:30:26 ekohl Exp $ +; +; scsiport.def - export definition file for scsiport driver +; +EXPORTS +ScsiDebugPrint +ScsiPortCompleteRequest@20 +ScsiPortConvertPhysicalAddressToUlong@8 +ScsiPortConvertUlongToPhysicalAddress@4 +ScsiPortFlushDma@4 +ScsiPortFreeDeviceBase@8 +ScsiPortGetBusData@24 +ScsiPortGetDeviceBase@28 +ScsiPortGetLogicalUnit@16 +ScsiPortGetPhysicalAddress@16 +ScsiPortGetSrb@20 +ScsiPortGetUncachedExtension@12 +ScsiPortGetVirtualAddress@12 +ScsiPortInitialize@16 +ScsiPortIoMapTransfer@16 +ScsiPortLogError@28 +ScsiPortMoveMemory@12 +ScsiPortNotification +ScsiPortReadPortBufferUchar@12 +ScsiPortReadPortBufferUshort@12 +ScsiPortReadPortBufferUlong@12 +ScsiPortReadPortUchar@4 +ScsiPortReadPortUshort@4 +ScsiPortReadPortUlong@4 +ScsiPortReadRegisterBufferUchar@12 +ScsiPortReadRegisterBufferUshort@12 +ScsiPortReadRegisterBufferUlong@12 +ScsiPortReadRegisterUchar@4 +ScsiPortReadRegisterUshort@4 +ScsiPortReadRegisterUlong@4 +ScsiPortSetBusDataByOffset@28 +ScsiPortStallExecution@4 +ScsiPortValidateRange@28 +ScsiPortWritePortBufferUchar@12 +ScsiPortWritePortBufferUshort@12 +ScsiPortWritePortBufferUlong@12 +ScsiPortWritePortUchar@8 +ScsiPortWritePortUshort@8 +ScsiPortWritePortUlong@8 +ScsiPortWriteRegisterBufferUchar@12 +ScsiPortWriteRegisterBufferUshort@12 +ScsiPortWriteRegisterBufferUlong@12 +ScsiPortWriteRegisterUchar@8 +ScsiPortWriteRegisterUshort@8 +ScsiPortWriteRegisterUlong@8 +;EOF diff --git a/reactos/drivers/storage/scsiport/scsiport.edf b/reactos/drivers/storage/scsiport/scsiport.edf new file mode 100644 index 00000000000..ac3b47f97c7 --- /dev/null +++ b/reactos/drivers/storage/scsiport/scsiport.edf @@ -0,0 +1,64 @@ +; $Id: scsiport.edf,v 1.1 2001/07/21 07:30:26 ekohl Exp $ +; +; scsiport.def - export definition file for scsiport driver +; +EXPORTS +ScsiDebugPrint +ScsiPortCompleteRequest=ScsiPortCompleteRequest@20 +ScsiPortConvertPhysicalAddressToUlong=ScsiPortConvertPhysicalAddressToUlong@8 +ScsiPortConvertUlongToPhysicalAddress=NTOSKRNL.RtlConvertUlongToLargeInteger +ScsiPortFlushDma=ScsiPortFlushDma@4 +ScsiPortFreeDeviceBase=ScsiPortFreeDeviceBase@8 +ScsiPortGetBusData=ScsiPortGetBusData@24 +ScsiPortGetDeviceBase=ScsiPortGetDeviceBase@28 +ScsiPortGetLogicalUnit=ScsiPortGetLogicalUnit@16 +ScsiPortGetPhysicalAddress=ScsiPortGetPhysicalAddress@16 +ScsiPortGetSrb=ScsiPortGetSrb@20 +ScsiPortGetUncachedExtension=ScsiPortGetUncachedExtension@12 +ScsiPortGetVirtualAddress=ScsiPortGetVirtualAddress@12 +ScsiPortInitialize=ScsiPortInitialize@16 +ScsiPortIoMapTransfer=ScsiPortIoMapTransfer@16 +ScsiPortLogError=ScsiPortLogError@28 +ScsiPortMoveMemory=ScsiPortMoveMemory@12 +ScsiPortNotification +;ScsiPortReadPortBufferUchar=HAL.READ_PORT_BUFFER_UCHAR +ScsiPortReadPortBufferUchar=NTOSKRNL.READ_PORT_BUFFER_UCHAR +;ScsiPortReadPortBufferUshort=HAL.READ_PORT_BUFFER_USHORT +ScsiPortReadPortBufferUshort=NTOSKRNL.READ_PORT_BUFFER_USHORT +;ScsiPortReadPortBufferUlong=HAL.READ_PORT_BUFFER_ULONG +ScsiPortReadPortBufferUlong=NTOSKRNL.READ_PORT_BUFFER_ULONG +;ScsiPortReadPortUchar=NTOSKRNL.READ_PORT_UCHAR +ScsiPortReadPortUchar=NTOSKRNL.READ_PORT_UCHAR +;ScsiPortReadPortUshort=HAL.READ_PORT_USHORT +ScsiPortReadPortUshort=NTOSKRNL.READ_PORT_USHORT +;ScsiPortReadPortUlong=HAL.READ_PORT_ULONG +ScsiPortReadPortUlong=NTOSKRNL.READ_PORT_ULONG +ScsiPortReadRegisterBufferUchar=NTOSKRNL.READ_REGISTER_BUFFER_UCHAR +ScsiPortReadRegisterBufferUshort=NTOSKRNL.READ_REGISTER_BUFFER_USHORT +ScsiPortReadRegisterBufferUlong=NTOSKRNL.READ_REGISTER_BUFFER_ULONG +ScsiPortReadRegisterUchar=NTOSKRNL.READ_REGISTER_UCHAR +ScsiPortReadRegisterUshort=NTOSKRNL.READ_REGISTER_USHORT +ScsiPortReadRegisterUlong=NTOSKRNL.READ_REGISTER_ULONG +ScsiPortSetDataBusByOffset=ScsiPortSetBusDataByOffset@28 +;ScsiPortStallExecution=HAL.KeStallExecutionProcessor +ScsiPortStallExecution=NTOSKRNL.KeStallExecutionProcessor +ScsiPortValidateRange=ScsiPortValidateRange@28 +;ScsiPortWritePortUchar=HAL.WRITE_PORT_UCHAR +ScsiPortWritePortUchar=NTOSKRNL.WRITE_PORT_UCHAR +;ScsiPortWritePortUshort=HA.WRITE_PORT_USHORT +ScsiPortWritePortUshort=NTOSKRNL.WRITE_PORT_USHORT +;ScsiPortWritePortUlong=HAL.WRITE_PORT_ULONG +ScsiPortWritePortUlong=NTOSKRNL.WRITE_PORT_ULONG +;ScsiPortWritePortBufferUchar=HAL.WRITE_PORT_BUFFER_UCHAR +ScsiPortWritePortBufferUchar=NTOSKRNL.WRITE_PORT_BUFFER_UCHAR +;ScsiPortWritePortBufferUshort=HAL.WRITE_PORT_BUFFER_USHORT +ScsiPortWritePortBufferUshort=NTOSKRNL.WRITE_PORT_BUFFER_USHORT +;ScsiPortWritePortBufferUlong=HAL.WRITE_PORT_BUFFER_ULONG +ScsiPortWritePortBufferUlong=NTOSKRNL.WRITE_PORT_BUFFER_ULONG +ScsiPortWriteRegisterBufferUchar=NTOSKRNL.WRITE_REGISTER_BUFFER_UCHAR +ScsiPortWriteRegisterBufferUshort=NTOSKRNL.WRITE_REGISTER_BUFFER_USHORT +ScsiPortWriteRegisterBufferUlong=NTOSKRNL.WRITE_REGISTER_BUFFER_ULONG +ScsiPortWriteRegisterUchar=NTOSKRNL.WRITE_REGISTER_UCHAR +ScsiPortWriteRegisterUshort=NTOSKRNL.WRITE_REGISTER_USHORT +ScsiPortWriteRegisterUlong=NTOSKRNL.WRITE_REGISTER_ULONG +;EOF diff --git a/reactos/drivers/storage/scsiport/scsiport.rc b/reactos/drivers/storage/scsiport/scsiport.rc new file mode 100644 index 00000000000..8450f6f00b0 --- /dev/null +++ b/reactos/drivers/storage/scsiport/scsiport.rc @@ -0,0 +1,38 @@ + +#include +#include + +LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US + +VS_VERSION_INFO VERSIONINFO + FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD + PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD + FILEFLAGSMASK 0x3fL +#ifdef _DEBUG + FILEFLAGS 0x1L +#else + FILEFLAGS 0x0L +#endif + FILEOS 0x40004L + FILETYPE 0x2L + FILESUBTYPE 0x0L +BEGIN + BLOCK "StringFileInfo" + BEGIN + BLOCK "040904b0" + BEGIN + VALUE "CompanyName", RES_STR_COMPANY_NAME + VALUE "FileDescription", "SCSI Port Driver\0" + VALUE "FileVersion", "0.0.0\0" + VALUE "InternalName", "scsiport\0" + VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT + VALUE "OriginalFilename", "scsiport.sys\0" + VALUE "ProductName", RES_STR_PRODUCT_NAME + VALUE "ProductVersion", RES_STR_PRODUCT_VERSION + END + END + BLOCK "VarFileInfo" + BEGIN + VALUE "Translation", 0x409, 1200 + END +END