diff options
| author | 2023-12-12 11:41:26 -0500 | |
|---|---|---|
| committer | 2023-12-12 11:41:26 -0500 | |
| commit | ff489bd82ff313bcfd7dc2ab585ed31cec909ebd (patch) | |
| tree | 300e031693a5ddb990a32068ab0596382349aeea /tcc/include/winapi/ddk/storport.h | |
| parent | init (diff) | |
fix software to compile properly on Windows XP x86
Diffstat (limited to '')
| -rw-r--r-- | tcc/include/winapi/ddk/storport.h | 422 |
1 files changed, 422 insertions, 0 deletions
diff --git a/tcc/include/winapi/ddk/storport.h b/tcc/include/winapi/ddk/storport.h new file mode 100644 index 0000000..a7df9a1 --- /dev/null +++ b/tcc/include/winapi/ddk/storport.h @@ -0,0 +1,422 @@ +/* + * storport.h + * + * StorPort interface + * + * This file is part of the w32api package. + * + * Contributors: + * Created by Casper S. Hornstrup <chorns@users.sourceforge.net> + * + * THIS SOFTWARE IS NOT COPYRIGHTED + * + * This source code is offered for use in the public domain. You may + * use, modify or distribute it freely. + * + * This code is distributed in the hope that it will be useful but + * WITHOUT ANY WARRANTY. ALL WARRANTIES, EXPRESS OR IMPLIED ARE HEREBY + * DISCLAIMED. This includes but is not limited to warranties of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. + * + */ + +#ifndef __STORPORT_H +#define __STORPORT_H + +#if __GNUC__ >=3 +#pragma GCC system_header +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +#include "ntddk.h" +#include "srb.h" + +#if defined(_STORPORT_) + #define STORPORTAPI DECLSPEC_EXPORT +#else + #define STORPORTAPI DECLSPEC_IMPORT +#endif + + +typedef PHYSICAL_ADDRESS STOR_PHYSICAL_ADDRESS; + +typedef struct _STOR_SCATTER_GATHER_ELEMENT { + STOR_PHYSICAL_ADDRESS PhysicalAddress; + ULONG Length; + ULONG_PTR Reserved; +} STOR_SCATTER_GATHER_ELEMENT, *PSTOR_SCATTER_GATHER_ELEMENT; + +typedef struct _STOR_SCATTER_GATHER_LIST { + ULONG NumberOfElements; + ULONG_PTR Reserved; + STOR_SCATTER_GATHER_ELEMENT List[0]; +} STOR_SCATTER_GATHER_LIST, *PSTOR_SCATTER_GATHER_LIST; + +typedef struct _SCSI_WMI_REQUEST_BLOCK { + USHORT Length; + UCHAR Function; + UCHAR SrbStatus; + UCHAR WMISubFunction; + UCHAR PathId; + UCHAR TargetId; + UCHAR Lun; + UCHAR Reserved1; + UCHAR WMIFlags; + UCHAR Reserved2[2]; + ULONG SrbFlags; + ULONG DataTransferLength; + ULONG TimeOutValue; + PVOID DataBuffer; + PVOID DataPath; + PVOID Reserved3; + PVOID OriginalRequest; + PVOID SrbExtension; + ULONG Reserved4; + UCHAR Reserved5[16]; +} SCSI_WMI_REQUEST_BLOCK, *PSCSI_WMI_REQUEST_BLOCK; + + +STORPORTAPI +ULONG +DDKAPI +StorPortInitialize( + /*IN*/ PVOID Argument1, + /*IN*/ PVOID Argument2, + /*IN*/ PHW_INITIALIZATION_DATA HwInitializationData, + /*IN*/ PVOID Unused); + +STORPORTAPI +VOID +DDKAPI +StorPortFreeDeviceBase( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ PVOID MappedAddress); + +STORPORTAPI +ULONG +DDKAPI +StorPortGetBusData( + /*IN*/ PVOID DeviceExtension, + /*IN*/ ULONG BusDataType, + /*IN*/ ULONG SystemIoBusNumber, + /*IN*/ ULONG SlotNumber, + /*IN*/ PVOID Buffer, + /*IN*/ ULONG Length); + +STORPORTAPI +ULONG +DDKAPI +StorPortSetBusDataByOffset( + /*IN*/ PVOID DeviceExtension, + /*IN*/ ULONG BusDataType, + /*IN*/ ULONG SystemIoBusNumber, + /*IN*/ ULONG SlotNumber, + /*IN*/ PVOID Buffer, + /*IN*/ ULONG Offset, + /*IN*/ ULONG Length); + +STORPORTAPI +PVOID +DDKAPI +StorPortGetDeviceBase( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ INTERFACE_TYPE BusType, + /*IN*/ ULONG SystemIoBusNumber, + /*IN*/ SCSI_PHYSICAL_ADDRESS IoAddress, + /*IN*/ ULONG NumberOfBytes, + /*IN*/ BOOLEAN InIoSpace); + +STORPORTAPI +PVOID +DDKAPI +StorPortGetLogicalUnit( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ UCHAR PathId, + /*IN*/ UCHAR TargetId, + /*IN*/ UCHAR Lun); + +STORPORTAPI +PSCSI_REQUEST_BLOCK +DDKAPI +StorPortGetSrb( + /*IN*/ PVOID DeviceExtension, + /*IN*/ UCHAR PathId, + /*IN*/ UCHAR TargetId, + /*IN*/ UCHAR Lun, + /*IN*/ LONG QueueTag); + +STORPORTAPI +STOR_PHYSICAL_ADDRESS +DDKAPI +StorPortGetPhysicalAddress( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ PSCSI_REQUEST_BLOCK Srb, + /*IN*/ PVOID VirtualAddress, + /*OUT*/ ULONG *Length); + +STORPORTAPI +PVOID +DDKAPI +StorPortGetVirtualAddress( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ STOR_PHYSICAL_ADDRESS PhysicalAddress); + +STORPORTAPI +PVOID +DDKAPI +StorPortGetUncachedExtension( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ PPORT_CONFIGURATION_INFORMATION ConfigInfo, + /*IN*/ ULONG NumberOfBytes); + +STORPORTAPI +VOID +DDKCDECLAPI +StorPortNotification( + /*IN*/ SCSI_NOTIFICATION_TYPE NotificationType, + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ ...); + +STORPORTAPI +VOID +DDKAPI +StorPortLogError( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ PSCSI_REQUEST_BLOCK Srb /*OPTIONAL*/, + /*IN*/ UCHAR PathId, + /*IN*/ UCHAR TargetId, + /*IN*/ UCHAR Lun, + /*IN*/ ULONG ErrorCode, + /*IN*/ ULONG UniqueId); + +STORPORTAPI +VOID +DDKAPI +StorPortCompleteRequest( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ UCHAR PathId, + /*IN*/ UCHAR TargetId, + /*IN*/ UCHAR Lun, + /*IN*/ UCHAR SrbStatus); + +STORPORTAPI +VOID +DDKAPI +StorPortMoveMemory( + /*IN*/ PVOID WriteBuffer, + /*IN*/ PVOID ReadBuffer, + /*IN*/ ULONG Length); + +STORPORTAPI +VOID +DDKAPI +StorPortStallExecution( + /*IN*/ ULONG Delay); + +STORPORTAPI +STOR_PHYSICAL_ADDRESS +DDKAPI +StorPortConvertUlong64ToPhysicalAddress( + /*IN*/ ULONG64 UlongAddress); + +STORPORTAPI +ULONG64 +DDKAPI +StorPortConvertPhysicalAddressToUlong64( + /*IN*/ STOR_PHYSICAL_ADDRESS Address); + +STORPORTAPI +BOOLEAN +DDKAPI +StorPortValidateRange( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ INTERFACE_TYPE BusType, + /*IN*/ ULONG SystemIoBusNumber, + /*IN*/ STOR_PHYSICAL_ADDRESS IoAddress, + /*IN*/ ULONG NumberOfBytes, + /*IN*/ BOOLEAN InIoSpace); + +STORPORTAPI +VOID +DDKCDECLAPI +StorPortDebugPrint( + /*IN*/ ULONG DebugPrintLevel, + /*IN*/ PCCHAR DebugMessage, + /*IN*/ ...); + +STORPORTAPI +UCHAR +DDKAPI +StorPortReadPortUchar( + /*IN*/ PUCHAR Port); + +STORPORTAPI +ULONG +DDKAPI +StorPortReadPortUlong( + /*IN*/ PULONG Port); + +STORPORTAPI +USHORT +DDKAPI +StorPortReadPortUshort( + /*IN*/ PUSHORT Port); + +STORPORTAPI +UCHAR +DDKAPI +StorPortReadRegisterUchar( + /*IN*/ PUCHAR Register); + +STORPORTAPI +ULONG +DDKAPI +StorPortReadRegisterUlong( + /*IN*/ PULONG Register); + +STORPORTAPI +USHORT +DDKAPI +StorPortReadRegisterUshort( + /*IN*/ PUSHORT Register); + +STORPORTAPI +VOID +DDKAPI +StorPortWritePortUchar( + /*IN*/ PUCHAR Port, + /*IN*/ UCHAR Value); + +STORPORTAPI +VOID +DDKAPI +StorPortWritePortUlong( + /*IN*/ PULONG Port, + /*IN*/ ULONG Value); + +STORPORTAPI +VOID +DDKAPI +StorPortWritePortUshort( + /*IN*/ PUSHORT Port, + /*IN*/ USHORT Value); + +STORPORTAPI +VOID +DDKAPI +StorPortWriteRegisterUchar( + /*IN*/ PUCHAR Port, + /*IN*/ UCHAR Value); + +STORPORTAPI +VOID +DDKAPI +StorPortWriteRegisterUlong( + /*IN*/ PULONG Port, + /*IN*/ ULONG Value); + +STORPORTAPI +VOID +DDKAPI +StorPortWriteRegisterUshort( + /*IN*/ PUSHORT Port, + /*IN*/ USHORT Value); + +STORPORTAPI +BOOLEAN +DDKAPI +StorPortPauseDevice( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ UCHAR PathId, + /*IN*/ UCHAR TargetId, + /*IN*/ UCHAR Lun, + /*IN*/ ULONG TimeOut); + +STORPORTAPI +BOOLEAN +DDKAPI +StorPortResumeDevice( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ UCHAR PathId, + /*IN*/ UCHAR TargetId, + /*IN*/ UCHAR Lun); + +STORPORTAPI +BOOLEAN +DDKAPI +StorPortPause( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ ULONG TimeOut); + +STORPORTAPI +BOOLEAN +DDKAPI +StorPortResume( + /*IN*/ PVOID HwDeviceExtension); + +STORPORTAPI +BOOLEAN +DDKAPI +StorPortDeviceBusy( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ UCHAR PathId, + /*IN*/ UCHAR TargetId, + /*IN*/ UCHAR Lun, + /*IN*/ ULONG RequestsToComplete); + +STORPORTAPI +BOOLEAN +DDKAPI +StorPortDeviceReady( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ UCHAR PathId, + /*IN*/ UCHAR TargetId, + /*IN*/ UCHAR Lun); + +STORPORTAPI +BOOLEAN +DDKAPI +StorPortBusy( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ ULONG RequestsToComplete); + +STORPORTAPI +BOOLEAN +DDKAPI +StorPortReady( + /*IN*/ PVOID HwDeviceExtension); + +STORPORTAPI +PSTOR_SCATTER_GATHER_LIST +DDKAPI +StorPortGetScatterGatherList( + /*IN*/ PVOID DeviceExtension, + /*IN*/ PSCSI_REQUEST_BLOCK Srb); + +typedef BOOLEAN DDKAPI +(*PSTOR_SYNCHRONIZED_ACCESS)( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ PVOID Context); + +STORPORTAPI +VOID +DDKAPI +StorPortSynchronizeAccess( + /*IN*/ PVOID HwDeviceExtension, + /*IN*/ PSTOR_SYNCHRONIZED_ACCESS SynchronizedAccessRoutine, + /*IN*/ PVOID Context); + +#ifdef DBG +#define DebugPrint(x) StorPortDebugPrint x +#else +#define DebugPrint(x) +#endif + +#ifdef __cplusplus +} +#endif + +#endif /* __STORPORT_H */ |
