2 * PROJECT: ReactOS Kernel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: ntoskrnl/include/hal.h
5 * PURPOSE: Internal header for PCI Support
6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
14 #define PCI_TYPE1_ADDRESS_PORT (PULONG)0xCF8
15 #define PCI_TYPE1_DATA_PORT 0xCFC
20 #define PCI_TYPE2_CSE_PORT (PUCHAR)0xCF8
21 #define PCI_TYPE2_FORWARD_PORT (PUCHAR)0xCFA
22 #define PCI_TYPE2_ADDRESS_BASE 0xC
25 // PCI Type 1 Configuration Register
27 typedef struct _PCI_TYPE1_CFG_BITS
34 ULONG RegisterNumber
:6;
35 ULONG FunctionNumber
:3;
44 } PCI_TYPE1_CFG_BITS
, *PPCI_TYPE1_CFG_BITS
;
47 // PCI Type 2 CSE Register
49 typedef struct _PCI_TYPE2_CSE_BITS
56 UCHAR FunctionNumber
:3;
62 } PCI_TYPE2_CSE_BITS
, PPCI_TYPE2_CSE_BITS
;
65 // PCI Type 2 Address Register
67 typedef struct _PCI_TYPE2_ADDRESS_BITS
73 USHORT RegisterNumber
:8;
80 } PCI_TYPE2_ADDRESS_BITS
, *PPCI_TYPE2_ADDRESS_BITS
;
83 // PCI Registry Information
85 typedef struct _PCI_REGISTRY_INFO
90 UCHAR HardwareMechanism
;
91 } PCI_REGISTRY_INFO
, *PPCI_REGISTRY_INFO
;
94 // PCI Card Descriptor in Registry
96 typedef struct _PCI_CARD_DESCRIPTOR
102 USHORT SubsystemVendorID
;
105 } PCI_CARD_DESCRIPTOR
, *PPCI_CARD_DESCRIPTOR
;