mirror of
https://github.com/reactos/reactos.git
synced 2024-09-29 14:09:10 +00:00
Added scsiport driver skeleton.
svn path=/trunk/; revision=2077
This commit is contained in:
parent
75d57b4fa1
commit
b8ec1f6a56
355
reactos/drivers/storage/include/srb.h
Normal file
355
reactos/drivers/storage/include/srb.h
Normal file
|
@ -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 */
|
39
reactos/drivers/storage/scsiport/makefile
Normal file
39
reactos/drivers/storage/scsiport/makefile
Normal file
|
@ -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
|
282
reactos/drivers/storage/scsiport/scsiport.c
Normal file
282
reactos/drivers/storage/scsiport/scsiport.c
Normal file
|
@ -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 */
|
51
reactos/drivers/storage/scsiport/scsiport.def
Normal file
51
reactos/drivers/storage/scsiport/scsiport.def
Normal file
|
@ -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
|
64
reactos/drivers/storage/scsiport/scsiport.edf
Normal file
64
reactos/drivers/storage/scsiport/scsiport.edf
Normal file
|
@ -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
|
38
reactos/drivers/storage/scsiport/scsiport.rc
Normal file
38
reactos/drivers/storage/scsiport/scsiport.rc
Normal file
|
@ -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
|
Loading…
Reference in a new issue