aboutsummaryrefslogtreecommitdiffstats
path: root/tcc/include/winapi/ddk/storport.h
diff options
context:
space:
mode:
authorGravatar Peter McGoron 2023-12-12 11:41:26 -0500
committerGravatar Peter McGoron 2023-12-12 11:41:26 -0500
commitff489bd82ff313bcfd7dc2ab585ed31cec909ebd (patch)
tree300e031693a5ddb990a32068ab0596382349aeea /tcc/include/winapi/ddk/storport.h
parentinit (diff)
fix software to compile properly on Windows XP x86
Diffstat (limited to '')
-rw-r--r--tcc/include/winapi/ddk/storport.h422
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 */