update for HEAD-2003050101
[reactos.git] / include / ddk / haltypes.h
index 2ccf398..ff34edf 100644 (file)
@@ -164,7 +164,7 @@ typedef struct _PCI_COMMON_CONFIG
 #define PCI_INVALID_VENDORID                0xFFFF
 
 
-/* Bit encodings for  PCI_COMMON_CONFIG.HeaderType */
+/* Bit encodings for PCI_COMMON_CONFIG.HeaderType */
 
 #define PCI_MULTIFUNCTION                   0x80
 #define PCI_DEVICE_TYPE                     0x00
@@ -197,12 +197,43 @@ typedef struct _PCI_COMMON_CONFIG
 #define PCI_STATUS_DETECTED_PARITY_ERROR    0x8000
 
 
+/* PCI device classes */
+
+#define PCI_CLASS_PRE_20                    0x00
+#define PCI_CLASS_MASS_STORAGE_CTLR         0x01
+#define PCI_CLASS_NETWORK_CTLR              0x02
+#define PCI_CLASS_DISPLAY_CTLR              0x03
+#define PCI_CLASS_MULTIMEDIA_DEV            0x04
+#define PCI_CLASS_MEMORY_CTLR               0x05
+#define PCI_CLASS_BRIDGE_DEV                0x06
+#define PCI_CLASS_SIMPLE_COMMS_CTLR         0x07
+#define PCI_CLASS_BASE_SYSTEM_DEV           0x08
+#define PCI_CLASS_INPUT_DEV                 0x09
+#define PCI_CLASS_DOCKING_STATION           0x0a
+#define PCI_CLASS_PROCESSOR                 0x0b
+#define PCI_CLASS_SERIAL_BUS_CTLR           0x0c
+
+
+/* PCI device subclasses for class 1 (mass storage controllers)*/
+
+#define PCI_SUBCLASS_MSC_SCSI_BUS_CTLR      0x00
+#define PCI_SUBCLASS_MSC_IDE_CTLR           0x01
+#define PCI_SUBCLASS_MSC_FLOPPY_CTLR        0x02
+#define PCI_SUBCLASS_MSC_IPI_CTLR           0x03
+#define PCI_SUBCLASS_MSC_RAID_CTLR          0x04
+#define PCI_SUBCLASS_MSC_OTHER              0x80
+
+
 /* Bit encodes for PCI_COMMON_CONFIG.u.type0.BaseAddresses */
 
 #define PCI_ADDRESS_IO_SPACE                0x00000001
 #define PCI_ADDRESS_MEMORY_TYPE_MASK        0x00000006
 #define PCI_ADDRESS_MEMORY_PREFETCHABLE     0x00000008
 
+#define PCI_ADDRESS_IO_ADDRESS_MASK         0xfffffffc
+#define PCI_ADDRESS_MEMORY_ADDRESS_MASK     0xfffffff0
+#define PCI_ADDRESS_ROM_ADDRESS_MASK        0xfffff800
+
 #define PCI_TYPE_32BIT      0
 #define PCI_TYPE_20BIT      2
 #define PCI_TYPE_64BIT      4
@@ -213,6 +244,7 @@ typedef struct _PCI_COMMON_CONFIG
 #define PCI_ROMADDRESS_ENABLED              0x00000001
 
 
+
 typedef struct _PCI_SLOT_NUMBER
 {
   union
@@ -228,18 +260,6 @@ typedef struct _PCI_SLOT_NUMBER
 } PCI_SLOT_NUMBER, *PPCI_SLOT_NUMBER;
 
 
-/* MicroChannel bus data */
-
-typedef struct _CM_MCA_POS_DATA
-{
-  USHORT AdapterId;
-  UCHAR PosData1;
-  UCHAR PosData2;
-  UCHAR PosData3;
-  UCHAR PosData4;
-} CM_MCA_POS_DATA, *PCM_MCA_POS_DATA;
-
-
 /* Hal dispatch table */
 
 typedef enum _HAL_QUERY_INFORMATION_CLASS
@@ -270,23 +290,23 @@ typedef struct _BUS_HANDLER *PBUS_HANDLER;
 typedef struct _DEVICE_HANDLER_OBJECT *PDEVICE_HANDLER_OBJECT;
 
 
-typedef BOOLEAN STDCALL
+typedef BOOLEAN STDCALL_FUNC
 (*PHAL_RESET_DISPLAY_PARAMETERS)(ULONG Columns, ULONG Rows);
 
-typedef NTSTATUS STDCALL
+typedef NTSTATUS STDCALL_FUNC
 (*pHalQuerySystemInformation)(IN HAL_QUERY_INFORMATION_CLASS InformationClass,
                              IN ULONG BufferSize,
                              IN OUT PVOID Buffer,
                              OUT PULONG ReturnedLength);
 
 
-typedef NTSTATUS STDCALL
+typedef NTSTATUS STDCALL_FUNC
 (*pHalSetSystemInformation)(IN HAL_SET_INFORMATION_CLASS InformationClass,
                            IN ULONG BufferSize,
                            IN PVOID Buffer);
 
 
-typedef NTSTATUS STDCALL
+typedef NTSTATUS STDCALL_FUNC
 (*pHalQueryBusSlots)(IN PBUS_HANDLER BusHandler,
                     IN ULONG BufferSize,
                     OUT PULONG SlotNumbers,
@@ -329,11 +349,11 @@ typedef struct _DEVICE_CONTROL_CONTEXT
 } DEVICE_CONTROL_CONTEXT, *PDEVICE_CONTROL_CONTEXT;
 
 
-typedef VOID STDCALL
+typedef VOID STDCALL_FUNC
 (*PDEVICE_CONTROL_COMPLETION)(IN PDEVICE_CONTROL_CONTEXT ControlContext);
 
 
-typedef NTSTATUS STDCALL
+typedef NTSTATUS STDCALL_FUNC
 (*pHalDeviceControl)(IN PDEVICE_HANDLER_OBJECT DeviceHandler,
                     IN PDEVICE_OBJECT DeviceObject,
                     IN ULONG ControlCode,
@@ -398,14 +418,29 @@ typedef struct _HAL_DISPATCH
   pHalReferenceBusHandler      HalDereferenceBusHandler;
 } HAL_DISPATCH, *PHAL_DISPATCH;
 
-#define HAL_DISPATCH_VERSION 1
-
 #ifdef __NTOSKRNL__
 extern HAL_DISPATCH EXPORTED HalDispatchTable;
+#define HALDISPATCH (&HalDispatchTable)
 #else
-extern HAL_DISPATCH IMPORTED HalDispatchTable;
+extern PHAL_DISPATCH IMPORTED HalDispatchTable;
+#define HALDISPATCH ((PHAL_DISPATCH)&HalDispatchTable)
 #endif
 
+#define HAL_DISPATCH_VERSION           1
+#define HalDispatchTableVersion                HALDISPATCH->Version
+#define HalQuerySystemInformation      HALDISPATCH->HalQuerySystemInformation
+#define HalSetSystemInformation                HALDISPATCH->HalSetSystemInformation
+#define HalQueryBusSlots               HALDISPATCH->HalQueryBusSlots
+#define HalDeviceControl               HALDISPATCH->HalDeviceControl
+#define HalExamineMBR                  HALDISPATCH->HalExamineMBR
+#define HalIoAssignDriveLetters                HALDISPATCH->HalIoAssignDriveLetters
+#define HalIoReadPartitionTable                HALDISPATCH->HalIoReadPartitionTable
+#define HalIoSetPartitionInformation   HALDISPATCH->HalIoSetPartitionInformation
+#define HalIoWritePartitionTable       HALDISPATCH->HalIoWritePartitionTable
+#define HalReferenceHandlerForBus      HALDISPATCH->HalReferenceHandlerForBus
+#define HalReferenceBusHandler         HALDISPATCH->HalReferenceBusHandler
+#define HalDereferenceBusHandler       HALDISPATCH->HalDereferenceBusHandler
+
 
 /* Hal private dispatch table */
 
@@ -414,15 +449,15 @@ typedef struct _HAL_PRIVATE_DISPATCH
   ULONG Version;
 } HAL_PRIVATE_DISPATCH, *PHAL_PRIVATE_DISPATCH;
 
-#define HAL_PRIVATE_DISPATCH_VERSION 1
-
 
 #ifdef __NTOSKRNL__
 extern HAL_PRIVATE_DISPATCH EXPORTED HalPrivateDispatchTable;
 #else
-extern HAL_PRIVATE_DISPATCH IMPORTED HalPrivateDispatchTable;
+extern PHAL_PRIVATE_DISPATCH IMPORTED HalPrivateDispatchTable;
 #endif
 
+#define HAL_PRIVATE_DISPATCH_VERSION   1
+
 
 
 /*