--- /dev/null
+/* $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
--- /dev/null
+# $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
--- /dev/null
+/* $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 <ddk/ntddk.h>
+#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 */
--- /dev/null
+; $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
--- /dev/null
+; $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
--- /dev/null
+
+#include <defines.h>
+#include <reactos/resource.h>
+
+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