mirror of
https://github.com/reactos/reactos.git
synced 2024-12-28 01:55:19 +00:00
Added scsi class driver skeleton.
svn path=/trunk/; revision=2087
This commit is contained in:
parent
9859f23c21
commit
3df0bbbfce
11 changed files with 639 additions and 3 deletions
265
reactos/drivers/storage/class2/class2.c
Normal file
265
reactos/drivers/storage/class2/class2.c
Normal file
|
@ -0,0 +1,265 @@
|
|||
/* $Id: class2.c,v 1.1 2001/07/23 06:12:07 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: services/storage/class2/class2.c
|
||||
* PURPOSE: SCSI class driver
|
||||
* PROGRAMMER: Eric Kohl (ekohl@rz-online.de)
|
||||
*/
|
||||
|
||||
#include <ddk/ntddk.h>
|
||||
#include "../include/scsi.h"
|
||||
#include "../include/class2.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
|
||||
ScsiClassDebugPrint(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);
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ScsiClassAsynchronousCompletion(PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp,
|
||||
PVOID Context)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
VOID STDCALL
|
||||
ScsiClassBuildRequest(PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ScsiClassClaimDevice(PDEVICE_OBJECT PortDeviceObject,
|
||||
PSCSI_INQUIRY_DATA LunInfo,
|
||||
BOOLEAN Release,
|
||||
PDEVICE_OBJECT *NewPortDeviceObject OPTIONAL)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ScsiClassCreateDeviceObject(IN PDRIVER_OBJECT DriverObject,
|
||||
IN PCCHAR ObjectNameBuffer,
|
||||
IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL,
|
||||
IN OUT PDEVICE_OBJECT *DeviceObject,
|
||||
IN PCLASS_INIT_DATA InitializationData)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ScsiClassDeviceControl(PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
PVOID STDCALL
|
||||
ScsiClassFindModePage(PCHAR ModeSenseBuffer,
|
||||
ULONG Length,
|
||||
UCHAR PageMode,
|
||||
BOOLEAN Use6Byte)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
ULONG STDCALL
|
||||
ScsiClassFindUnclaimedDevices(PCLASS_INIT_DATA InitializationData,
|
||||
PSCSI_ADAPTER_BUS_INFO AdapterInformation)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ScsiClassGetCapabilities(PDEVICE_OBJECT PortDeviceObject,
|
||||
PIO_SCSI_CAPABILITIES *PortCapabilities)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ScsiClassGetInquiryData(PDEVICE_OBJECT PortDeviceObject,
|
||||
PSCSI_ADAPTER_BUS_INFO *ConfigInfo)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
ULONG STDCALL
|
||||
ScsiClassInitialize(PVOID Argument1,
|
||||
PVOID Argument2,
|
||||
PCLASS_INIT_DATA InitializationData)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
VOID STDCALL
|
||||
ScsiClassInitializeSrbLookasideList(PDEVICE_EXTENSION DeviceExtension,
|
||||
ULONG NumberElements)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ScsiClassInternalIoControl(PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
BOOLEAN STDCALL
|
||||
ScsiClassInterpretSenseInfo(PDEVICE_OBJECT DeviceObject,
|
||||
PSCSI_REQUEST_BLOCK Srb,
|
||||
UCHAR MajorFunctionCode,
|
||||
ULONG IoDeviceCode,
|
||||
ULONG RetryCount,
|
||||
NTSTATUS *Status)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ScsiClassIoComplete(PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp,
|
||||
PVOID Context)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ScsiClassIoCompleteAssociated(PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp,
|
||||
PVOID Context)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
ULONG STDCALL
|
||||
ScsiClassModeSense(PDEVICE_OBJECT DeviceObject,
|
||||
CHAR ModeSenseBuffer,
|
||||
ULONG Length,
|
||||
UCHAR PageMode)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
ULONG STDCALL
|
||||
ScsiClassQueryTimeOutRegistryValue(PUNICODE_STRING RegistryPath)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ScsiClassReadDriveCapacity(PDEVICE_OBJECT DeviceObject)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
VOID STDCALL
|
||||
ScsiClassReleaseQueue(PDEVICE_OBJECT DeviceObject)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ScsiClassSendSrbAsynchronous(PDEVICE_OBJECT DeviceObject,
|
||||
PSCSI_REQUEST_BLOCK Srb,
|
||||
PIRP Irp,
|
||||
PVOID BufferAddress,
|
||||
ULONG BufferLength,
|
||||
BOOLEAN WriteToDevice)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS STDCALL
|
||||
ScsiClassSendSrbSynchronous(PDEVICE_OBJECT DeviceObject,
|
||||
PSCSI_REQUEST_BLOCK Srb,
|
||||
PVOID BufferAddress,
|
||||
ULONG BufferLength,
|
||||
BOOLEAN WriteToDevice)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
VOID STDCALL
|
||||
ScsiClassSplitRequest(PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp,
|
||||
ULONG MaximumBytes)
|
||||
{
|
||||
UNIMPLEMENTED;
|
||||
}
|
||||
|
||||
/* EOF */
|
29
reactos/drivers/storage/class2/class2.def
Normal file
29
reactos/drivers/storage/class2/class2.def
Normal file
|
@ -0,0 +1,29 @@
|
|||
; $Id: class2.def,v 1.1 2001/07/23 06:12:07 ekohl Exp $
|
||||
;
|
||||
; class2.def - export definition file for scsi class driver
|
||||
;
|
||||
LIBRARY CLASS2.SYS
|
||||
EXPORTS
|
||||
ScsiClassAsynchronousCompletion@12
|
||||
ScsiClassBuildRequest@8
|
||||
ScsiClassClaimDevice@16
|
||||
ScsiClassCreateDeviceObject@20
|
||||
ScsiClassDeviceControl@8
|
||||
ScsiClassFindModePage@16
|
||||
ScsiClassFindUnclaimedDevices@8
|
||||
ScsiClassGetCapabilities@8
|
||||
ScsiClassGetInquiryData@8
|
||||
ScsiClassInitialize@12
|
||||
ScsiClassInitializeSrbLookasideList@8
|
||||
ScsiClassInternalIoControl@8
|
||||
ScsiClassInterpretSenseInfo@24
|
||||
ScsiClassIoComplete@12
|
||||
ScsiClassIoCompleteAssociated@12
|
||||
ScsiClassModeSense@16
|
||||
ScsiClassQueryTimeOutRegistryValue@4
|
||||
ScsiClassReadDriveCapacity@4
|
||||
ScsiClassReleaseQueue@4
|
||||
ScsiClassSendSrbAsynchronous@24
|
||||
ScsiClassSendSrbSynchronous@20
|
||||
ScsiClassSplitRequest@12
|
||||
;EOF
|
29
reactos/drivers/storage/class2/class2.edf
Normal file
29
reactos/drivers/storage/class2/class2.edf
Normal file
|
@ -0,0 +1,29 @@
|
|||
; $Id: class2.edf,v 1.1 2001/07/23 06:12:07 ekohl Exp $
|
||||
;
|
||||
; class2.edf - export definition file for scsi class driver
|
||||
;
|
||||
LIBRARY CLASS2.SYS
|
||||
EXPORTS
|
||||
ScsiClassAsynchronousCompletion=ScsiClassAsynchronousCompletion@12
|
||||
ScsiClassBuildRequest=ScsiClassBuildRequest@8
|
||||
ScsiClassClaimDevice=ScsiClassClaimDevice@16
|
||||
ScsiClassCreateDeviceObject=ScsiClassCreateDeviceObject@20
|
||||
ScsiClassDeviceControl=ScsiClassDeviceControl@8
|
||||
ScsiClassFindModePage=ScsiClassFindModePage@16
|
||||
ScsiClassFindUnclaimedDevices=ScsiClassFindUnclaimedDevices@8
|
||||
ScsiClassGetCapabilities=ScsiClassGetCapabilities@8
|
||||
ScsiClassGetInquiryData=ScsiClassGetInquiryData@8
|
||||
ScsiClassInitialize=ScsiClassInitialize@12
|
||||
ScsiClassInitializeSrbLookasideList=ScsiClassInitializeSrbLookasideList@8
|
||||
ScsiClassInternalIoControl=ScsiClassInternalIoControl@8
|
||||
ScsiClassInterpretSenseInfo=ScsiClassInterpretSenseInfo@24
|
||||
ScsiClassIoComplete=ScsiClassIoComplete@12
|
||||
ScsiClassIoCompleteAssociated=ScsiClassIoCompleteAssociated@12
|
||||
ScsiClassModeSense=ScsiClassModeSense@16
|
||||
ScsiClassQueryTimeOutRegistryValue=ScsiClassQueryTimeOutRegistryValue@4
|
||||
ScsiClassReadDriveCapacity=ScsiClassReadDriveCapacity@4
|
||||
ScsiClassReleaseQueue=ScsiClassReleaseQueue@4
|
||||
ScsiClassSendSrbAsynchronous=ScsiClassSendSrbAsynchronous@24
|
||||
ScsiClassSendSrbSynchronous=ScsiClassSendSrbSynchronous@20
|
||||
ScsiClassSplitRequest=ScsiClassSplitRequest@12
|
||||
;EOF
|
38
reactos/drivers/storage/class2/class2.rc
Normal file
38
reactos/drivers/storage/class2/class2.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
|
46
reactos/drivers/storage/class2/makefile
Normal file
46
reactos/drivers/storage/class2/makefile
Normal file
|
@ -0,0 +1,46 @@
|
|||
# $Id: makefile,v 1.1 2001/07/23 06:12:07 ekohl Exp $
|
||||
#
|
||||
#
|
||||
PATH_TO_TOP = ../../..
|
||||
|
||||
TARGET=class2
|
||||
|
||||
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)
|
||||
|
||||
$(TARGET).a: $(TARGET).def
|
||||
$(DLLTOOL) \
|
||||
--dllname $(TARGET).sys \
|
||||
--def $(TARGET).def \
|
||||
--kill-at \
|
||||
--output-lib $(TARGET).a
|
||||
|
||||
|
||||
WARNINGS_ARE_ERRORS = yes
|
||||
include $(PATH_TO_TOP)/rules.mak
|
122
reactos/drivers/storage/include/class2.h
Normal file
122
reactos/drivers/storage/include/class2.h
Normal file
|
@ -0,0 +1,122 @@
|
|||
/* $Id: class2.h,v 1.1 2001/07/23 06:12:34 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: services/storage/include/class2.h
|
||||
* PURPOSE: SCSI class driver definitions
|
||||
* PROGRAMMER: Eric Kohl (ekohl@rz-online.de)
|
||||
*/
|
||||
|
||||
#ifndef __STORAGE_INCLUDE_CLASS2_H
|
||||
#define __STORAGE_INCLUDE_CLASS2_H
|
||||
|
||||
#include "ntddscsi.h"
|
||||
#include "srb.h"
|
||||
|
||||
struct _CLASS_INIT_DATA;
|
||||
|
||||
typedef VOID STDCALL
|
||||
(*PCLASS_ERROR)(IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PSCSI_REQUEST_BLOCK Srb,
|
||||
IN OUT NTSTATUS *Status,
|
||||
IN OUT BOOLEAN *Retry);
|
||||
|
||||
typedef BOOLEAN STDCALL
|
||||
(*PCLASS_DEVICE_CALLBACK)(IN PINQUIRYDATA);
|
||||
|
||||
typedef NTSTATUS STDCALL
|
||||
(*PCLASS_READ_WRITE)(IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp);
|
||||
|
||||
typedef BOOLEAN STDCALL
|
||||
(*PCLASS_FIND_DEVICES)(IN PDRIVER_OBJECT DriverObject,
|
||||
IN PUNICODE_STRING RegistryPath,
|
||||
IN struct _CLASS_INIT_DATA *InitializationData,
|
||||
IN PDEVICE_OBJECT PortDeviceObject,
|
||||
IN ULONG PortNumber);
|
||||
|
||||
typedef NTSTATUS STDCALL
|
||||
(*PCLASS_DEVICE_CONTROL)(IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp);
|
||||
|
||||
typedef NTSTATUS STDCALL
|
||||
(*PCLASS_SHUTDOWN_FLUSH)(IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp);
|
||||
|
||||
typedef NTSTATUS STDCALL
|
||||
(*PCLASS_CREATE_CLOSE)(IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp);
|
||||
|
||||
|
||||
typedef struct _CLASS_INIT_DATA
|
||||
{
|
||||
ULONG InitializationDataSize;
|
||||
ULONG DeviceExtensionSize;
|
||||
DEVICE_TYPE DeviceType;
|
||||
ULONG DeviceCharacteristics;
|
||||
PCLASS_ERROR ClassError;
|
||||
PCLASS_READ_WRITE ClassReadWriteVerification;
|
||||
PCLASS_DEVICE_CALLBACK ClassFindDeviceCallBack;
|
||||
PCLASS_FIND_DEVICES ClassFindDevices;
|
||||
PCLASS_DEVICE_CONTROL ClassDeviceControl;
|
||||
PCLASS_SHUTDOWN_FLUSH ClassShutdownFlush;
|
||||
PCLASS_CREATE_CLOSE ClassCreateClose;
|
||||
PDRIVER_STARTIO ClassStartIo;
|
||||
} CLASS_INIT_DATA, *PCLASS_INIT_DATA;
|
||||
|
||||
|
||||
typedef struct _DEVICE_EXTENSION
|
||||
{
|
||||
ULONG Dummy;
|
||||
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;
|
||||
|
||||
|
||||
/* FUNCTIONS ****************************************************************/
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
ScsiClassAsynchronousCompletion (
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp,
|
||||
PVOID Context
|
||||
);
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
ScsiClassBuildRequest (
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
ScsiClassClaimDevice (
|
||||
IN PDEVICE_OBJECT PortDeviceObject,
|
||||
IN PSCSI_INQUIRY_DATA LunInfo,
|
||||
IN BOOLEAN Release,
|
||||
OUT PDEVICE_OBJECT *NewPortDeviceObject OPTIONAL
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
ScsiClassCreateDeviceObject (
|
||||
IN PDRIVER_OBJECT DriverObject,
|
||||
IN PCCHAR ObjectNameBuffer,
|
||||
IN PDEVICE_OBJECT PhysicalDeviceObject OPTIONAL,
|
||||
IN OUT PDEVICE_OBJECT *DeviceObject,
|
||||
IN PCLASS_INIT_DATA InitializationData
|
||||
);
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
ScsiClassDeviceControl (
|
||||
PDEVICE_OBJECT DeviceObject,
|
||||
PIRP Irp
|
||||
);
|
||||
|
||||
|
||||
|
||||
|
||||
#endif /* __STORAGE_INCLUDE_CLASS2_H */
|
||||
|
||||
/* EOF */
|
56
reactos/drivers/storage/include/ntddscsi.h
Normal file
56
reactos/drivers/storage/include/ntddscsi.h
Normal file
|
@ -0,0 +1,56 @@
|
|||
/* $Id: ntddscsi.h,v 1.1 2001/07/23 06:12:34 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: services/storage/include/ntddscsi.h
|
||||
* PURPOSE: Basic SCSI definitions
|
||||
* PROGRAMMER: Eric Kohl (ekohl@rz-online.de)
|
||||
*/
|
||||
|
||||
#ifndef __STORAGE_INCLUDE_NTDDSCSI_H
|
||||
#define __STORAGE_INCLUDE_NTDDSCSI_H
|
||||
|
||||
|
||||
typedef struct _SCSI_BUS_DATA
|
||||
{
|
||||
UCHAR NumberOfLogicalUnits;
|
||||
UCHAR InitiatorBusId;
|
||||
ULONG InquiryDataOffset;
|
||||
}SCSI_BUS_DATA, *PSCSI_BUS_DATA;
|
||||
|
||||
|
||||
typedef struct _SCSI_ADAPTER_BUS_INFO
|
||||
{
|
||||
UCHAR NumberOfBuses;
|
||||
SCSI_BUS_DATA BusData[1];
|
||||
} SCSI_ADAPTER_BUS_INFO, *PSCSI_ADAPTER_BUS_INFO;
|
||||
|
||||
|
||||
typedef struct _IO_SCSI_CAPABILITIES
|
||||
{
|
||||
ULONG Length;
|
||||
ULONG MaximumTransferLength;
|
||||
ULONG MaximumPhysicalPages;
|
||||
ULONG SupportedAsynchronousEvents;
|
||||
ULONG AlignmentMask;
|
||||
BOOLEAN TaggedQueuing;
|
||||
BOOLEAN AdapterScansDown;
|
||||
BOOLEAN AdapterUsesPio;
|
||||
} IO_SCSI_CAPABILITIES, *PIO_SCSI_CAPABILITIES;
|
||||
|
||||
|
||||
typedef struct _SCSI_INQUIRY_DATA
|
||||
{
|
||||
UCHAR PathId;
|
||||
UCHAR TargetId;
|
||||
UCHAR Lun;
|
||||
BOOLEAN DeviceClaimed;
|
||||
ULONG InquiryDataLength;
|
||||
ULONG NextInquiryDataOffset;
|
||||
UCHAR InquiryData[1];
|
||||
}SCSI_INQUIRY_DATA, *PSCSI_INQUIRY_DATA;
|
||||
|
||||
|
||||
#endif /* __STORAGE_INCLUDE_NTDDSCSI_H */
|
||||
|
||||
/* EOF */
|
42
reactos/drivers/storage/include/scsi.h
Normal file
42
reactos/drivers/storage/include/scsi.h
Normal file
|
@ -0,0 +1,42 @@
|
|||
/* $Id: scsi.h,v 1.1 2001/07/23 06:12:34 ekohl Exp $
|
||||
*
|
||||
* COPYRIGHT: See COPYING in the top level directory
|
||||
* PROJECT: ReactOS kernel
|
||||
* FILE: services/storage/include/scsi.h
|
||||
* PURPOSE: SCSI class driver definitions
|
||||
* PROGRAMMER: Eric Kohl (ekohl@rz-online.de)
|
||||
*/
|
||||
|
||||
#ifndef __STORAGE_INCLUDE_SCSI_H
|
||||
#define __STORAGE_INCLUDE_SCSI_H
|
||||
|
||||
|
||||
typedef struct _INQUIRYDATA
|
||||
{
|
||||
UCHAR DeviceType:5;
|
||||
UCHAR DeviceTypeQualifier:3;
|
||||
UCHAR DeviceTypeModifier:7;
|
||||
UCHAR RemovableMedia:1;
|
||||
UCHAR Versions;
|
||||
UCHAR ResponseDataFormat;
|
||||
UCHAR AdditionalLength;
|
||||
UCHAR Reserved[2];
|
||||
UCHAR SoftReset:1;
|
||||
UCHAR CommandQueue:1;
|
||||
UCHAR Reserved2:1;
|
||||
UCHAR LinkedCommands:1;
|
||||
UCHAR Synchronous:1;
|
||||
UCHAR Wide16Bit:1;
|
||||
UCHAR Wide32Bit:1;
|
||||
UCHAR RelativeAddressing:1;
|
||||
UCHAR VendorId[8];
|
||||
UCHAR ProductId[16];
|
||||
UCHAR ProductRevisionLevel[4];
|
||||
UCHAR VendorSpecific[20];
|
||||
UCHAR Reserved3[40];
|
||||
} INQUIRYDATA, *PINQUIRYDATA;
|
||||
|
||||
|
||||
#endif /* __STORAGE_INCLUDE_SCSI_H */
|
||||
|
||||
/* EOF */
|
|
@ -1,4 +1,4 @@
|
|||
# $Id: makefile,v 1.1 2001/07/21 07:30:26 ekohl Exp $
|
||||
# $Id: makefile,v 1.2 2001/07/23 06:13:48 ekohl Exp $
|
||||
#
|
||||
#
|
||||
PATH_TO_TOP = ../../..
|
||||
|
@ -34,6 +34,13 @@ $(PATH_TO_TOP)/$(DIST_DIR)/drivers/$(TARGET).sys: $(TARGET).sys
|
|||
|
||||
$(TARGET).sys $(TARGET).sys.unstripped: $(OBJECTS) $(LIBS)
|
||||
|
||||
$(TARGET).a: $(TARGET).def
|
||||
$(DLLTOOL) \
|
||||
--dllname $(TARGET).sys \
|
||||
--def $(TARGET).def \
|
||||
--kill-at \
|
||||
--output-lib $(TARGET).a
|
||||
|
||||
|
||||
WARNINGS_ARE_ERRORS = yes
|
||||
include $(PATH_TO_TOP)/rules.mak
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
; $Id: scsiport.def,v 1.1 2001/07/21 07:30:26 ekohl Exp $
|
||||
; $Id: scsiport.def,v 1.2 2001/07/23 06:13:48 ekohl Exp $
|
||||
;
|
||||
; scsiport.def - export definition file for scsiport driver
|
||||
;
|
||||
LIBRARY SCSIPORT.SYS
|
||||
EXPORTS
|
||||
ScsiDebugPrint
|
||||
ScsiPortCompleteRequest@20
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
; $Id: scsiport.edf,v 1.1 2001/07/21 07:30:26 ekohl Exp $
|
||||
; $Id: scsiport.edf,v 1.2 2001/07/23 06:13:48 ekohl Exp $
|
||||
;
|
||||
; scsiport.def - export definition file for scsiport driver
|
||||
;
|
||||
LIBRARY SCSIPORT.SYS
|
||||
EXPORTS
|
||||
ScsiDebugPrint
|
||||
ScsiPortCompleteRequest=ScsiPortCompleteRequest@20
|
||||
|
|
Loading…
Reference in a new issue