#include <pci.h>
#include <debug.h>
Go to the source code of this file.
◆ NDEBUG
◆ PciArbiter_Dereference()
◆ PciArbiter_Reference()
◆ PciArbiterConstructor()
Definition at line 48 of file arb_comn.c.
51{
54
56
57
59 SecondaryExtension.Next,
60 ArbiterType);
61 if (!Arbiter)
62 {
63 DPRINT1(
"PCI - FDO ext 0x%p has no %s arbiter to hand out.\n",
67 }
68
77}
VOID NTAPI PciArbiter_Reference(_In_ PVOID Context)
VOID NTAPI PciArbiter_Dereference(_In_ PVOID Context)
NTSTATUS NTAPI ArbiterLibHandler(_In_ PVOID Context, _In_ ARBITER_ACTION Action, _Inout_ PARBITER_PARAMETERS Parameters)
The single ARBITER_ACTION dispatcher every exported ARBITER_INTERFACE points its ArbiterHandler at; C...
#define STATUS_NOT_SUPPORTED
#define ARBITER_INTERFACE_VERSION
PPCI_SECONDARY_EXTENSION NTAPI PciFindNextSecondaryExtension(IN PSINGLE_LIST_ENTRY ListHead, IN PCI_SIGNATURE ExtensionType)
ARBITER_INSTANCE CommonInstance
_Must_inspect_result_ _In_ WDFDEVICE _In_ LPCGUID _Out_ PINTERFACE Interface
struct _ARBITER_INTERFACE ARBITER_INTERFACE
Referenced by arbusno_Constructor(), ario_Constructor(), and armem_Constructor().
◆ PciArbiterDestructor()
◆ PciInitializeArbiterRanges()
Definition at line 181 of file arb_comn.c.
183{
188
189
190 if (DeviceExtension->ArbitersInitialized)
191 {
192
193 DPRINT1(
"PCI Warning hot start FDOx %p, resource ranges not checked.\n", DeviceExtension);
195 }
196
197
199 {
200
203
204
206 {
207
208 DPRINT1(
"PCI Skipping arbiter initialization for subtractive bridge FDOX %p\n", DeviceExtension);
210 }
211 }
212
213
215 {
216
218 SecondaryExtension.Next,
219 ArbiterType);
221 {
222
223
224
225
226
230 {
231 DPRINT1(
"PCI - FDO ext 0x%p %s arbiter failed to start: %X\n",
232 DeviceExtension,
236 }
237 }
238 else
239 {
240
241 DPRINT1(
"PCI - FDO ext 0x%p %s arbiter (REQUIRED) is missing.\n",
242 DeviceExtension,
244 }
245 }
246
247
248 DeviceExtension->ArbitersInitialized =
TRUE;
250}
#define NT_SUCCESS(StatCode)
enum _PCI_SIGNATURE PCI_SIGNATURE
struct _PCI_PDO_EXTENSION * PPCI_PDO_EXTENSION
#define PCI_IS_ROOT_FDO(x)
#define STATUS_INVALID_DEVICE_REQUEST
_Must_inspect_result_ _In_ WDFDEVICE _In_ PWDF_WMI_INSTANCE_CONFIG _In_opt_ PWDF_OBJECT_ATTRIBUTES _Out_opt_ WDFWMIINSTANCE * Instance
Referenced by PciFdoIrpStartDevice().
◆ PciInitializeArbiters()
Definition at line 90 of file arb_comn.c.
91{
98
99
101
102
104 {
105
107 {
108
111
112
114 {
115 DPRINT1(
"PCI Not creating arbiters for subtractive bus %u\n",
117 continue;
118 }
119 }
120
121
123 while (*Interfaces)
124 {
125
126 CurrentInterface = *Interfaces;
127 if (CurrentInterface->
Signature == ArbiterType)
break;
128 Interfaces++;
129 }
130
131
132 if (!*Interfaces)
133 {
134
135 DPRINT1(
"PCI - FDO ext 0x%p no %s arbiter.\n",
138 continue;
139 }
140
141
146 if (!ArbiterInterface) break;
147
148
150 ArbiterInterface->
Interface = CurrentInterface;
155
156
159
160
163 &ArbiterInterface->
Header,
164 ArbiterType,
166
167
168 DPRINT1(
"PCI - FDO ext 0x%p %S arbiter initialized (context 0x%p).\n",
170 L"ARBITER HEADER MISSING",
171 ArbiterInterface);
173 }
174
175
177}
VOID NTAPI PciArbiterDestructor(IN PPCI_ARBITER_INSTANCE Arbiter)
VOID NTAPI PcipLinkSecondaryExtension(IN PSINGLE_LIST_ENTRY List, IN PVOID Lock, IN PPCI_SECONDARY_EXTENSION SecondaryExtension, IN PCI_SIGNATURE ExtensionType, IN PVOID Destructor)
#define ExAllocatePoolWithTag(hernya, size, tag)
PPCI_INTERFACE PciInterfaces[]
#define _swprintf(buf, format,...)
PPCI_FDO_EXTENSION BusFdoExtension
PCI_SECONDARY_EXTENSION Header
PCI_INTERFACE_INITIALIZER Initializer
#define STATUS_INSUFFICIENT_RESOURCES
Referenced by PciAddDevice().
◆ PciArbiterNames