ReactOS 0.4.15-dev-8021-g7ce96fd
bus.h
Go to the documentation of this file.
1#pragma once
2
3#define PCI_ADDRESS_MEMORY_SPACE 0x00000000
4
5//
6// Helper Macros
7//
8#define PASTE2(x,y) x ## y
9#define POINTER_TO_(x) PASTE2(P,x)
10#define READ_FROM(x) PASTE2(READ_PORT_, x)
11#define WRITE_TO(x) PASTE2(WRITE_PORT_, x)
12
13//
14// Declares a PCI Register Read/Write Routine
15//
16#define TYPE_DEFINE(x, y) \
17 ULONG \
18 NTAPI \
19 x( \
20 IN PPCIPBUSDATA BusData, \
21 IN y PciCfg, \
22 IN PUCHAR Buffer, \
23 IN ULONG Offset \
24 )
25#define TYPE1_DEFINE(x) TYPE_DEFINE(x, PPCI_TYPE1_CFG_BITS);
26#define TYPE2_DEFINE(x) TYPE_DEFINE(x, PPCI_TYPE2_ADDRESS_BITS);
27
28//
29// Defines a PCI Register Read/Write Type 1 Routine Prologue and Epilogue
30//
31#define TYPE1_START(x, y) \
32 TYPE_DEFINE(x, PPCI_TYPE1_CFG_BITS) \
33{ \
34 ULONG i = Offset % sizeof(ULONG); \
35 PciCfg->u.bits.RegisterNumber = Offset / sizeof(ULONG); \
36 WRITE_PORT_ULONG(BusData->Config.Type1.Address, PciCfg->u.AsULONG);
37#define TYPE1_END(y) \
38 return sizeof(y); }
39#define TYPE2_END TYPE1_END
40
41//
42// PCI Register Read Type 1 Routine
43//
44#define TYPE1_READ(x, y) \
45 TYPE1_START(x, y) \
46 *((POINTER_TO_(y))Buffer) = \
47 READ_FROM(y)((POINTER_TO_(y))(ULONG_PTR)(BusData->Config.Type1.Data + i)); \
48 TYPE1_END(y)
49
50//
51// PCI Register Write Type 1 Routine
52//
53#define TYPE1_WRITE(x, y) \
54 TYPE1_START(x, y) \
55 WRITE_TO(y)((POINTER_TO_(y))(ULONG_PTR)(BusData->Config.Type1.Data + i), \
56 *((POINTER_TO_(y))Buffer)); \
57 TYPE1_END(y)
58
59//
60// Defines a PCI Register Read/Write Type 2 Routine Prologue and Epilogue
61//
62#define TYPE2_START(x, y) \
63 TYPE_DEFINE(x, PPCI_TYPE2_ADDRESS_BITS) \
64{ \
65 PciCfg->u.bits.RegisterNumber = (USHORT)Offset;
66
67//
68// PCI Register Read Type 2 Routine
69//
70#define TYPE2_READ(x, y) \
71 TYPE2_START(x, y) \
72 *((POINTER_TO_(y))Buffer) = \
73 READ_FROM(y)((POINTER_TO_(y))(ULONG_PTR)PciCfg->u.AsUSHORT); \
74 TYPE2_END(y)
75
76//
77// PCI Register Write Type 2 Routine
78//
79#define TYPE2_WRITE(x, y) \
80 TYPE2_START(x, y) \
81 WRITE_TO(y)((POINTER_TO_(y))(ULONG_PTR)PciCfg->u.AsUSHORT, \
82 *((POINTER_TO_(y))Buffer)); \
83 TYPE2_END(y)
84
85typedef NTSTATUS
87 IN PBUS_HANDLER BusHandler,
88 IN PBUS_HANDLER RootHandler,
89 IN PCI_SLOT_NUMBER PciSlot,
91);
92
93typedef struct _PCIPBUSDATA
94{
96 union
97 {
98 struct
99 {
103 struct
104 {
120
121typedef ULONG
123 IN PPCIPBUSDATA BusData,
124 IN PVOID State,
127);
128
129typedef VOID
130(NTAPI *FncSync)(
131 IN PBUS_HANDLER BusHandler,
132 IN PCI_SLOT_NUMBER Slot,
133 IN PKIRQL Irql,
135);
136
137typedef VOID
139 IN PBUS_HANDLER BusHandler,
141);
142
144{
150
152{
155 UCHAR NoBuses; // Number Of Buses
160
161//
162// PCI Type 1 Ports
163//
164#define PCI_TYPE1_ADDRESS_PORT (PULONG)0xCF8
165#define PCI_TYPE1_DATA_PORT 0xCFC
166
167//
168// PCI Type 2 Ports
169//
170#define PCI_TYPE2_CSE_PORT (PUCHAR)0xCF8
171#define PCI_TYPE2_FORWARD_PORT (PUCHAR)0xCFA
172#define PCI_TYPE2_ADDRESS_BASE 0xC
173
174//
175// PCI Type 1 Configuration Register
176//
177typedef struct _PCI_TYPE1_CFG_BITS
178{
179 union
180 {
181 struct
182 {
189 ULONG Enable:1;
191
193 } u;
195
196//
197// PCI Type 2 CSE Register
198//
200{
201 union
202 {
203 struct
204 {
209
211 } u;
213
214//
215// PCI Type 2 Address Register
216//
218{
219 union
220 {
221 struct
222 {
227
229 } u;
231
233{
234 union
235 {
236 struct
237 {
244 } u;
246
247typedef union _PCI_TYPE1_CFG_CYCLE_BITS
248{
249 struct
250 {
251 ULONG InUse:2;
257 };
260
261typedef struct _ARRAY
262{
266
267typedef struct _HAL_BUS_HANDLER
268{
273
274/* FUNCTIONS *****************************************************************/
275
276/* SHARED (Fake PCI-BUS HANDLER) */
277
281
282CODE_SEG("INIT")
284NTAPI
286 VOID
287);
288
289VOID
290NTAPI
292 IN PBUS_HANDLER BusHandler,
293 IN PCI_SLOT_NUMBER Slot,
294 IN PKIRQL Irql,
296);
297
298VOID
299NTAPI
301 IN PBUS_HANDLER BusHandler,
303);
304
305VOID
306NTAPI
308 IN PBUS_HANDLER BusHandler,
309 IN PCI_SLOT_NUMBER Slot,
310 IN PKIRQL Irql,
312);
313
314VOID
315NTAPI
317 IN PBUS_HANDLER BusHandler,
319);
320
321TYPE1_DEFINE(HalpPCIReadUcharType1);
322TYPE1_DEFINE(HalpPCIReadUshortType1);
323TYPE1_DEFINE(HalpPCIReadUlongType1);
324TYPE2_DEFINE(HalpPCIReadUcharType2);
325TYPE2_DEFINE(HalpPCIReadUshortType2);
326TYPE2_DEFINE(HalpPCIReadUlongType2);
327TYPE1_DEFINE(HalpPCIWriteUcharType1);
328TYPE1_DEFINE(HalpPCIWriteUshortType1);
329TYPE1_DEFINE(HalpPCIWriteUlongType1);
330TYPE2_DEFINE(HalpPCIWriteUcharType2);
331TYPE2_DEFINE(HalpPCIWriteUshortType2);
332TYPE2_DEFINE(HalpPCIWriteUlongType2);
333
335NTAPI
337 IN PBUS_HANDLER BusHandler,
339);
340
341VOID
342NTAPI
344 IN PBUS_HANDLER BusHandler,
345 IN PCI_SLOT_NUMBER Slot,
349);
350
351VOID
352NTAPI
354 IN PBUS_HANDLER BusHandler,
355 IN PCI_SLOT_NUMBER Slot,
359);
360
361ULONG
362NTAPI
364 IN PBUS_HANDLER BusHandler,
365 IN PBUS_HANDLER RootBusHandler,
370);
371
372ULONG
373NTAPI
375 IN PBUS_HANDLER BusHandler,
376 IN PBUS_HANDLER RootBusHandler,
381);
382
384NTAPI
386 IN PBUS_HANDLER BusHandler,
387 IN PBUS_HANDLER RootHandler,
392 IN ULONG Slot,
393 IN OUT PCM_RESOURCE_LIST *pAllocatedResources
394);
395
396CODE_SEG("INIT")
397ULONG
399 _In_ ULONG Bus,
400 _In_ PCI_SLOT_NUMBER PciSlot,
404
405CODE_SEG("INIT")
406ULONG
408 _In_ ULONG Bus,
409 _In_ PCI_SLOT_NUMBER PciSlot,
413
414/* NON-LEGACY */
415
416ULONG
417NTAPI
423
424ULONG
425NTAPI
431
432ULONG
433NTAPI
439
440CODE_SEG("INIT")
441VOID
442NTAPI
444 VOID
445);
446
447CODE_SEG("INIT")
448VOID
449NTAPI
451 VOID
452);
453
455NTAPI
462);
463
465NTAPI
475);
476
478NTAPI
484 IN BOOLEAN NextBus
485);
486
487CODE_SEG("INIT")
488VOID
489NTAPI
491 VOID
492);
493
494/* LEGACY */
495
497NTAPI
504);
505
507NTAPI
513 IN BOOLEAN NextBus
514);
515
517NTAPI
519 IN PBUS_HANDLER RootHandler,
520 IN OUT PIO_RESOURCE_REQUIREMENTS_LIST *pResourceList);
521
522ULONG
523NTAPI
525 IN PBUS_HANDLER RootHandler,
530VOID
531NTAPI
533 IN PBUS_HANDLER RootHandler,
535 IN PPCI_COMMON_CONFIG PciData);
536
537VOID
538NTAPI
540 IN PBUS_HANDLER RootHandler,
542 IN PPCI_COMMON_CONFIG PciNewData,
543 IN PPCI_COMMON_CONFIG PciOldData);
544
546NTAPI
548 IN PBUS_HANDLER RootHandler,
549 IN PCI_SLOT_NUMBER PciSlot,
551
552VOID
553NTAPI
555 VOID
556);
557
559NTAPI
561 IN ULONG_PTR ContextValue
562);
563
567 IN BUS_DATA_TYPE ConfigType,
569);
570
571ULONG
572NTAPI
574 _In_ PBUS_HANDLER BusHandler,
575 _In_ PBUS_HANDLER RootHandler,
580
581ULONG
582NTAPI
584 _In_ PBUS_HANDLER BusHandler,
585 _In_ PBUS_HANDLER RootHandler,
590
591ULONG
592NTAPI
594 _In_ PBUS_HANDLER BusHandler,
595 _In_ PBUS_HANDLER RootHandler,
600
602NTAPI
604 IN PBUS_HANDLER BusHandler,
605 IN PBUS_HANDLER RootHandler,
609);
610
612NTAPI
614 IN PBUS_HANDLER BusHandler,
615 IN PBUS_HANDLER RootHandler,
619);
620
621ULONG
622NTAPI
624 IN PBUS_HANDLER BusHandler,
625 IN PBUS_HANDLER RootHandler,
630);
631
632extern ULONG HalpBusType;
637
638/* EOF */
#define CODE_SEG(...)
unsigned char BOOLEAN
#define VOID
Definition: acefi.h:82
LONG NTSTATUS
Definition: precomp.h:26
KAFFINITY * PKAFFINITY
Definition: basetsd.h:195
BUS_HANDLER HalpFakePciBusHandler
Definition: pcibus.c:94
PBUS_HANDLER FASTCALL HaliReferenceHandlerForConfigSpace(IN BUS_DATA_TYPE ConfigType, IN ULONG BusNumber)
Definition: bushndlr.c:221
ULONG NTAPI HalpGetPCIIntOnISABus(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN ULONG BusInterruptLevel, IN ULONG BusInterruptVector, OUT PKIRQL Irql, OUT PKAFFINITY Affinity)
Definition: pcibus.c:658
VOID NTAPI HalpPCISynchronizeType1(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER Slot, IN PKIRQL Irql, IN PPCI_TYPE1_CFG_BITS PciCfg)
VOID NTAPI HalpRegisterPciDebuggingDeviceInfo(VOID)
Definition: kdpci.c:331
ULONG NTAPI HalpGetRootInterruptVector(_In_ ULONG BusInterruptLevel, _In_ ULONG BusInterruptVector, _Out_ PKIRQL Irql, _Out_ PKAFFINITY Affinity)
Definition: apic.c:400
NTSTATUS NTAPI HalpAssignPCISlotResources(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PUNICODE_STRING RegistryPath, IN PUNICODE_STRING DriverClassName OPTIONAL, IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT DeviceObject OPTIONAL, IN ULONG Slot, IN OUT PCM_RESOURCE_LIST *pAllocatedResources)
Definition: pcibus.c:798
VOID NTAPI HalpPCIPin2ISALine(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PCI_SLOT_NUMBER SlotNumber, IN PPCI_COMMON_CONFIG PciData)
Definition: pcibus.c:680
struct _HAL_BUS_HANDLER HAL_BUS_HANDLER
struct _ARRAY * PARRAY
ULONG HalpPhase0SetPciDataByOffset(_In_ ULONG Bus, _In_ PCI_SLOT_NUMBER PciSlot, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
Definition: pcibus.c:437
BOOLEAN NTAPI HalpValidPCISlot(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER Slot)
Definition: pcibus.c:329
struct _PCI_TYPE0_CFG_CYCLE_BITS PCI_TYPE0_CFG_CYCLE_BITS
ULONG(NTAPI * FncConfigIO)(IN PPCIPBUSDATA BusData, IN PVOID State, IN PUCHAR Buffer, IN ULONG Offset)
Definition: bus.h:122
VOID NTAPI HalpInitializePciBus(VOID)
Definition: halacpi.c:913
struct _PCI_REGISTRY_INFO_INTERNAL PCI_REGISTRY_INFO_INTERNAL
VOID NTAPI HalpPCIReleaseSynchronizationType2(IN PBUS_HANDLER BusHandler, IN KIRQL Irql)
Definition: pcibus.c:193
VOID(NTAPI * FncSync)(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER Slot, IN PKIRQL Irql, IN PVOID State)
Definition: bus.h:130
ULONG HalpMaxPciBus
Definition: bus.h:635
struct _PCIPBUSDATA PCIPBUSDATA
BOOLEAN NTAPI HalpTranslateBusAddress(IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
Definition: busemul.c:77
NTSTATUS NTAPI HalpAssignSlotResources(IN PUNICODE_STRING RegistryPath, IN PUNICODE_STRING DriverClassName, IN PDRIVER_OBJECT DriverObject, IN PDEVICE_OBJECT DeviceObject, IN INTERFACE_TYPE BusType, IN ULONG BusNumber, IN ULONG SlotNumber, IN OUT PCM_RESOURCE_LIST *AllocatedResources)
Definition: busemul.c:45
#define TYPE1_DEFINE(x)
Definition: bus.h:25
struct _PCI_TYPE2_CSE_BITS PPCI_TYPE2_CSE_BITS
ULONG NTAPI HalpcGetCmosData(_In_ PBUS_HANDLER BusHandler, _In_ PBUS_HANDLER RootHandler, _In_ ULONG SlotNumber, _Out_writes_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
Definition: cmosbus.c:16
NTSTATUS(NTAPI * PciIrqRange)(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PCI_SLOT_NUMBER PciSlot, OUT PSUPPORTED_RANGE *Interrupt)
Definition: bus.h:86
BOOLEAN NTAPI HalpTranslateIsaBusAddress(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
Definition: isabus.c:21
VOID NTAPI HalpPCIISALine2Pin(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PCI_SLOT_NUMBER SlotNumber, IN PPCI_COMMON_CONFIG PciNewData, IN PPCI_COMMON_CONFIG PciOldData)
Definition: pcibus.c:690
ULONG NTAPI HalpSetCmosData(_In_ ULONG BusNumber, _In_ ULONG SlotNumber, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Length)
Definition: cmos.c:104
union _PCI_TYPE1_CFG_CYCLE_BITS PCI_TYPE1_CFG_CYCLE_BITS
VOID NTAPI HalpPCIReleaseSynchronzationType1(IN PBUS_HANDLER BusHandler, IN KIRQL Irql)
Definition: pcibus.c:137
NTSTATUS NTAPI HalpAdjustPCIResourceList(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN OUT PIO_RESOURCE_REQUIREMENTS_LIST *pResourceList)
Definition: pcibus.c:757
struct _PCI_CONFIG_HANDLER PCI_CONFIG_HANDLER
NTSTATUS NTAPI HalpGetISAFixedPCIIrq(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PCI_SLOT_NUMBER PciSlot, OUT PSUPPORTED_RANGE *Range)
Definition: pcibus.c:702
VOID NTAPI HalpPCISynchronizeType2(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER Slot, IN PKIRQL Irql, IN PPCI_TYPE2_ADDRESS_BITS PciCfg)
PCI_CONFIG_HANDLER PCIConfigHandler
Definition: pcibus.c:23
VOID NTAPI HalpWritePCIConfig(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER Slot, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
Definition: pcibus.c:283
struct _ARRAY ARRAY
ULONG NTAPI HalpcSetCmosData(_In_ PBUS_HANDLER BusHandler, _In_ PBUS_HANDLER RootHandler, _In_ ULONG SlotNumber, _In_reads_bytes_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
Definition: cmosbus.c:38
PCI_CONFIG_HANDLER PCIConfigHandlerType1
Definition: pcibus.c:35
#define TYPE2_DEFINE(x)
Definition: bus.h:26
BOOLEAN NTAPI HaliFindBusAddressTranslation(IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress, IN OUT PULONG_PTR Context, IN BOOLEAN NextBus)
Definition: bussupp.c:1331
struct _PCI_TYPE2_CSE_BITS PCI_TYPE2_CSE_BITS
struct _PCI_TYPE1_CFG_BITS PCI_TYPE1_CFG_BITS
BOOLEAN NTAPI HaliTranslateBusAddress(IN INTERFACE_TYPE InterfaceType, IN ULONG BusNumber, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
Definition: bussupp.c:1413
BOOLEAN HalpPCIConfigInitialized
Definition: pcibus.c:20
union _PCI_TYPE1_CFG_CYCLE_BITS * PPCI_TYPE1_CFG_CYCLE_BITS
VOID NTAPI HalpReadPCIConfig(IN PBUS_HANDLER BusHandler, IN PCI_SLOT_NUMBER Slot, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
Definition: pcibus.c:257
VOID NTAPI HalpInitBusHandler(VOID)
Definition: bushndlr.c:444
ULONG HalpPhase0GetPciDataByOffset(_In_ ULONG Bus, _In_ PCI_SLOT_NUMBER PciSlot, _Out_writes_bytes_all_(Length) PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
Definition: pcibus.c:368
struct _HAL_BUS_HANDLER * PHAL_BUS_HANDLER
PBUS_HANDLER NTAPI HalpContextToBusHandler(IN ULONG_PTR ContextValue)
Definition: bushndlr.c:230
struct _PCI_CONFIG_HANDLER * PPCI_CONFIG_HANDLER
ULONG HalpMinPciBus
Definition: pcibus.c:21
struct _PCI_TYPE1_CFG_BITS * PPCI_TYPE1_CFG_BITS
VOID(NTAPI * FncReleaseSync)(IN PBUS_HANDLER BusHandler, IN KIRQL Irql)
Definition: bus.h:138
PPCI_REGISTRY_INFO_INTERNAL NTAPI HalpQueryPciRegistryInfo(VOID)
Definition: pcibus.c:957
ULONG NTAPI HalpNoBusData(_In_ PBUS_HANDLER BusHandler, _In_ PBUS_HANDLER RootHandler, _In_ ULONG SlotNumber, _In_ PVOID Buffer, _In_ ULONG Offset, _In_ ULONG Length)
Handler for buses without configuration space.
Definition: bushndlr.c:111
VOID NTAPI HalpInitializePciStubs(VOID)
Definition: pcibus.c:1190
struct _PCI_TYPE2_ADDRESS_BITS * PPCI_TYPE2_ADDRESS_BITS
PCI_CONFIG_HANDLER PCIConfigHandlerType2
Definition: pcibus.c:57
ULONG NTAPI HalpGetPCIData(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootBusHandler, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
Definition: pcibus.c:507
BOOLEAN NTAPI HalpTranslateSystemBusAddress(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress)
Definition: sysbus.c:21
struct _PCI_TYPE2_ADDRESS_BITS PCI_TYPE2_ADDRESS_BITS
struct _PCI_TYPE0_CFG_CYCLE_BITS * PPCI_TYPE0_CFG_CYCLE_BITS
ULONG NTAPI HalpGetSystemInterruptVector(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootHandler, IN ULONG BusInterruptLevel, IN ULONG BusInterruptVector, OUT PKIRQL Irql, OUT PKAFFINITY Affinity)
Definition: sysbus.c:115
ULONG HalpBusType
Definition: pcibus.c:18
ULONG NTAPI HalpGetCmosData(_In_ ULONG BusNumber, _In_ ULONG SlotNumber, _Out_writes_bytes_(Length) PVOID Buffer, _In_ ULONG Length)
Definition: cmos.c:49
LIST_ENTRY HalpAllBusHandlers
Definition: bushndlr.c:19
BOOLEAN NTAPI HalpFindBusAddressTranslation(IN PHYSICAL_ADDRESS BusAddress, IN OUT PULONG AddressSpace, OUT PPHYSICAL_ADDRESS TranslatedAddress, IN OUT PULONG_PTR Context, IN BOOLEAN NextBus)
Definition: busemul.c:90
ULONG NTAPI HalpSetPCIData(IN PBUS_HANDLER BusHandler, IN PBUS_HANDLER RootBusHandler, IN ULONG SlotNumber, IN PVOID Buffer, IN ULONG Offset, IN ULONG Length)
Definition: pcibus.c:587
struct _PCI_REGISTRY_INFO_INTERNAL * PPCI_REGISTRY_INFO_INTERNAL
struct _PCIPBUSDATA * PPCIPBUSDATA
Definition: bufpool.h:45
_Out_ PKIRQL Irql
Definition: csq.h:179
#define NTSTATUS
Definition: precomp.h:21
UCHAR KIRQL
Definition: env_spec_w32.h:591
KIRQL * PKIRQL
Definition: env_spec_w32.h:592
enum _INTERFACE_TYPE INTERFACE_TYPE
#define _In_reads_bytes_(size)
Definition: ms_sal.h:321
#define _Out_writes_bytes_(size)
Definition: ms_sal.h:350
#define _Out_writes_bytes_all_(size)
Definition: ms_sal.h:362
#define _Out_
Definition: ms_sal.h:345
#define _In_
Definition: ms_sal.h:308
_Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PDEVICE_OBJECT _Inout_opt_ PCM_RESOURCE_LIST * AllocatedResources
Definition: ndis.h:4643
#define FASTCALL
Definition: nt_native.h:50
_In_ ULONG _In_ ULONG Offset
Definition: ntddpcm.h:101
_In_ ULONG _In_ ULONG _In_ ULONG Length
Definition: ntddpcm.h:102
unsigned short USHORT
Definition: pedump.c:61
enum _BUS_DATA_TYPE BUS_DATA_TYPE
PULONG MinorVersion OPTIONAL
Definition: CrossNt.h:68
Definition: shimeng.h:16
PVOID Element[ANYSIZE_ARRAY]
Definition: bus.h:264
ULONG ArraySize
Definition: bus.h:263
BUS_HANDLER Handler
Definition: bus.h:271
ULONG ReferenceCount
Definition: bus.h:270
LIST_ENTRY AllHandlers
Definition: bus.h:269
Definition: typedefs.h:120
ULONG ConfiguredBits[PCI_MAX_DEVICES *PCI_MAX_FUNCTION/32]
Definition: bus.h:118
ULONG Data
Definition: bus.h:101
PciIrqRange GetIrqRange
Definition: bus.h:111
PULONG Address
Definition: bus.h:100
UCHAR SwizzleIn[4]
Definition: bus.h:116
PCIBUSDATA CommonData
Definition: bus.h:95
UCHAR reserved[1]
Definition: bus.h:115
ULONG MaxDevice
Definition: bus.h:110
PUCHAR Forward
Definition: bus.h:106
RTL_BITMAP DeviceConfigured
Definition: bus.h:117
UCHAR Subtractive
Definition: bus.h:114
BOOLEAN BridgeConfigRead
Definition: bus.h:112
UCHAR ParentBus
Definition: bus.h:113
ULONG Base
Definition: bus.h:107
struct _PCIPBUSDATA::@1479::@1480 Type1
PUCHAR CSE
Definition: bus.h:105
struct _PCIPBUSDATA::@1479::@1481 Type2
union _PCIPBUSDATA::@1479 Config
FncConfigIO ConfigWrite[3]
Definition: bus.h:148
FncReleaseSync ReleaseSynchronzation
Definition: bus.h:146
FncConfigIO ConfigRead[3]
Definition: bus.h:147
FncSync Synchronize
Definition: bus.h:145
PCI_CARD_DESCRIPTOR CardList[ANYSIZE_ARRAY]
Definition: bus.h:158
union _PCI_TYPE0_CFG_CYCLE_BITS::@1488 u
struct _PCI_TYPE0_CFG_CYCLE_BITS::@1488::@1489 bits
union _PCI_TYPE1_CFG_BITS::@163 u
ULONG FunctionNumber
Definition: hardware.h:44
ULONG Reserved2
Definition: bus.h:188
struct _PCI_TYPE1_CFG_BITS::@163::@164 bits
ULONG Reserved1
Definition: bus.h:183
ULONG RegisterNumber
Definition: hardware.h:43
struct _PCI_TYPE2_ADDRESS_BITS::@1486::@1487 bits
USHORT AddressBase
Definition: bus.h:225
USHORT RegisterNumber
Definition: bus.h:223
union _PCI_TYPE2_ADDRESS_BITS::@1486 u
UCHAR Enable
Definition: bus.h:205
UCHAR FunctionNumber
Definition: bus.h:206
struct _PCI_TYPE2_CSE_BITS::@1484::@1485 bits
union _PCI_TYPE2_CSE_BITS::@1484 u
UCHAR AsUCHAR
Definition: bus.h:210
Definition: range.c:39
uint32_t * PULONG_PTR
Definition: typedefs.h:65
uint32_t * PULONG
Definition: typedefs.h:59
#define ANYSIZE_ARRAY
Definition: typedefs.h:46
#define NTAPI
Definition: typedefs.h:36
uint32_t ULONG_PTR
Definition: typedefs.h:65
#define IN
Definition: typedefs.h:39
unsigned char * PUCHAR
Definition: typedefs.h:53
uint32_t ULONG
Definition: typedefs.h:59
#define OUT
Definition: typedefs.h:40
_In_ PDEVICE_OBJECT DeviceObject
Definition: wdfdevice.h:2055
_Must_inspect_result_ _In_ PDRIVER_OBJECT _In_ PCUNICODE_STRING RegistryPath
Definition: wdfdriver.h:215
_Must_inspect_result_ _In_ PDRIVER_OBJECT DriverObject
Definition: wdfdriver.h:213
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID InterfaceType
Definition: wdffdo.h:463
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_INTERRUPT_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_ WDFINTERRUPT * Interrupt
Definition: wdfinterrupt.h:379
_In_ WDFIORESREQLIST _In_ ULONG SlotNumber
Definition: wdfresource.h:68
_In_opt_ PUNICODE_STRING DriverClassName
Definition: halfuncs.h:156
_In_ ULONG _In_ ULONG BusInterruptLevel
Definition: halfuncs.h:171
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE _In_ ULONG BusNumber
Definition: halfuncs.h:160
_In_ ULONG _In_ ULONG _In_ ULONG BusInterruptVector
Definition: halfuncs.h:172
_In_ ULONG _In_ ULONG _In_ ULONG _Out_ PKIRQL _Out_ PKAFFINITY Affinity
Definition: halfuncs.h:174
_In_opt_ PUNICODE_STRING _In_ PDRIVER_OBJECT _In_ PDEVICE_OBJECT _In_ INTERFACE_TYPE BusType
Definition: halfuncs.h:159
_In_ ULONG _In_ PHYSICAL_ADDRESS BusAddress
Definition: iofuncs.h:2273
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG _Out_ PPHYSICAL_ADDRESS TranslatedAddress
Definition: iofuncs.h:2275
_In_ ULONG _In_ PHYSICAL_ADDRESS _Inout_ PULONG AddressSpace
Definition: iofuncs.h:2274
#define PCI_MAX_FUNCTION
Definition: iotypes.h:3599
#define PCI_MAX_DEVICES
Definition: iotypes.h:3598
unsigned char UCHAR
Definition: xmlstorage.h:181