Added scsiport driver skeleton.
authorEric Kohl <eric.kohl@reactos.org>
Sat, 21 Jul 2001 07:30:26 +0000 (07:30 +0000)
committerEric Kohl <eric.kohl@reactos.org>
Sat, 21 Jul 2001 07:30:26 +0000 (07:30 +0000)
svn path=/trunk/; revision=2077

reactos/drivers/storage/include/srb.h [new file with mode: 0644]
reactos/drivers/storage/scsiport/makefile [new file with mode: 0644]
reactos/drivers/storage/scsiport/scsiport.c [new file with mode: 0644]
reactos/drivers/storage/scsiport/scsiport.def [new file with mode: 0644]
reactos/drivers/storage/scsiport/scsiport.edf [new file with mode: 0644]
reactos/drivers/storage/scsiport/scsiport.rc [new file with mode: 0644]

diff --git a/reactos/drivers/storage/include/srb.h b/reactos/drivers/storage/include/srb.h
new file mode 100644 (file)
index 0000000..c28db43
--- /dev/null
@@ -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 (file)
index 0000000..533c1cb
--- /dev/null
@@ -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 (file)
index 0000000..c5f711d
--- /dev/null
@@ -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 <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 */
diff --git a/reactos/drivers/storage/scsiport/scsiport.def b/reactos/drivers/storage/scsiport/scsiport.def
new file mode 100644 (file)
index 0000000..2ba7fa1
--- /dev/null
@@ -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 (file)
index 0000000..ac3b47f
--- /dev/null
@@ -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 (file)
index 0000000..8450f6f
--- /dev/null
@@ -0,0 +1,38 @@
+
+#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