ReactOS 0.4.15-dev-7842-g558ab78
arbiters.c File Reference
#include <ntoskrnl.h>
#include <debug.h>
Include dependency graph for arbiters.c:

Go to the source code of this file.

Macros

#define NDEBUG
 
#define ARB_MAX_BUS_NUMBER   0xFF
 

Functions

NTSTATUS NTAPI IopBusNumberUnpackRequirement (_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _Out_ PUINT64 OutMinimumAddress, _Out_ PUINT64 OutMaximumAddress, _Out_ PUINT32 OutLength, _Out_ PUINT32 OutAlignment)
 
NTSTATUS NTAPI IopBusNumberPackResource (_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _In_ UINT64 Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor)
 
NTSTATUS NTAPI IopBusNumberUnpackResource (_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor, _Out_ PUINT64 Start, _Out_ PUINT32 Length)
 
INT32 NTAPI IopBusNumberScoreRequirement (_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
 
NTSTATUS NTAPI IopBusNumberInitialize (VOID)
 
NTSTATUS NTAPI IopIrqUnpackRequirement (_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _Out_ PUINT64 OutMinimumVector, _Out_ PUINT64 OutMaximumVector, _Out_ PUINT32 OutParam1, _Out_ PUINT32 OutParam2)
 
NTSTATUS NTAPI IopIrqPackResource (_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _In_ UINT64 Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor)
 
NTSTATUS NTAPI IopIrqUnpackResource (_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor, _Out_ PUINT64 Start, _Out_ PUINT32 OutLength)
 
INT32 NTAPI IopIrqScoreRequirement (_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
 
NTSTATUS NTAPI IopIrqTranslateOrdering (_Out_ PIO_RESOURCE_DESCRIPTOR OutIoDescriptor, _In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
 
NTSTATUS NTAPI IopIrqInitialize (VOID)
 
NTSTATUS NTAPI IopDmaUnpackRequirement (_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _Out_ PUINT64 OutMinimumChannel, _Out_ PUINT64 OutMaximumChannel, _Out_ PUINT32 OutParam1, _Out_ PUINT32 OutParam2)
 
NTSTATUS NTAPI IopDmaPackResource (_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _In_ UINT64 Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor)
 
NTSTATUS NTAPI IopDmaUnpackResource (_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor, _Out_ PUINT64 Start, _Out_ PUINT32 OutLength)
 
INT32 NTAPI IopDmaScoreRequirement (_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
 
NTSTATUS NTAPI IopDmaOverrideConflict (_In_ PARBITER_INSTANCE Arbiter)
 
NTSTATUS NTAPI IopDmaInitialize (VOID)
 
NTSTATUS NTAPI IopGenericUnpackRequirement (_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _Out_ PUINT64 OutMinimumAddress, _Out_ PUINT64 OutMaximumAddress, _Out_ PUINT32 OutLength, _Out_ PUINT32 OutAlignment)
 
NTSTATUS NTAPI IopGenericPackResource (_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _In_ UINT64 Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor)
 
NTSTATUS NTAPI IopGenericUnpackResource (_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor, _Out_ PUINT64 Start, _Out_ PUINT32 OutLength)
 
INT32 NTAPI IopGenericScoreRequirement (_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
 
NTSTATUS NTAPI IopGenericTranslateOrdering (_Out_ PIO_RESOURCE_DESCRIPTOR OutIoDescriptor, _In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
 
BOOLEAN NTAPI IopMemFindSuitableRange (_In_ PARBITER_INSTANCE Arbiter, _In_ PARBITER_ALLOCATION_STATE State)
 
NTSTATUS NTAPI IopMemInitialize (VOID)
 
BOOLEAN NTAPI IopPortFindSuitableRange (_In_ PARBITER_INSTANCE Arbiter, _In_ PARBITER_ALLOCATION_STATE State)
 
VOID NTAPI IopPortAddAllocation (_In_ PARBITER_INSTANCE Arbiter, _In_ PARBITER_ALLOCATION_STATE ArbState)
 
VOID NTAPI IopPortBacktrackAllocation (_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
 
NTSTATUS NTAPI IopPortInitialize (VOID)
 

Variables

ARBITER_INSTANCE IopRootBusNumberArbiter
 
ARBITER_INSTANCE IopRootIrqArbiter
 
ARBITER_INSTANCE IopRootDmaArbiter
 
ARBITER_INSTANCE IopRootMemArbiter
 
ARBITER_INSTANCE IopRootPortArbiter
 

Macro Definition Documentation

◆ ARB_MAX_BUS_NUMBER

#define ARB_MAX_BUS_NUMBER   0xFF

Definition at line 85 of file arbiters.c.

◆ NDEBUG

#define NDEBUG

Definition at line 12 of file arbiters.c.

Function Documentation

◆ IopBusNumberInitialize()

NTSTATUS NTAPI IopBusNumberInitialize ( VOID  )

Definition at line 90 of file arbiters.c.

91{
93
94 PAGED_CODE();
95
96 DPRINT("IopRootBusNumberArbiter %p\n", &IopRootBusNumberArbiter);
97
102
104 NULL,
106 L"RootBusNumber",
107 L"Root",
108 NULL);
109 if (!NT_SUCCESS(Status))
110 {
111 DPRINT1("IopBusNumberInitialize: Status %p\n", Status);
112 ASSERT(FALSE);
113 return Status;
114 }
115
118 (UINT64)(-1),
119 0,
120 0,
121 NULL,
122 NULL);
123
124 return Status;
125}
#define PAGED_CODE()
unsigned long long UINT64
NTSTATUS NTAPI ArbInitializeArbiterInstance(_Inout_ PARBITER_INSTANCE Arbiter, _In_ PDEVICE_OBJECT BusDeviceObject, _In_ CM_RESOURCE_TYPE ResourceType, _In_ PCWSTR ArbiterName, _In_ PCWSTR OrderName, _In_ PARB_TRANSLATE_ORDERING TranslateOrderingFunction)
Definition: arbiter.c:282
ARBITER_INSTANCE IopRootBusNumberArbiter
Definition: pnpinit.c:23
NTSTATUS NTAPI IopBusNumberUnpackResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor, _Out_ PUINT64 Start, _Out_ PUINT32 Length)
Definition: arbiters.c:62
NTSTATUS NTAPI IopBusNumberUnpackRequirement(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _Out_ PUINT64 OutMinimumAddress, _Out_ PUINT64 OutMaximumAddress, _Out_ PUINT32 OutLength, _Out_ PUINT32 OutAlignment)
Definition: arbiters.c:32
INT32 NTAPI IopBusNumberScoreRequirement(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: arbiters.c:76
#define ARB_MAX_BUS_NUMBER
Definition: arbiters.c:85
NTSTATUS NTAPI IopBusNumberPackResource(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _In_ UINT64 Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor)
Definition: arbiters.c:48
LONG NTSTATUS
Definition: precomp.h:26
#define DPRINT1
Definition: precomp.h:8
#define NULL
Definition: types.h:112
#define FALSE
Definition: types.h:117
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:32
Status
Definition: gdiplustypes.h:25
#define CmResourceTypeBusNumber
Definition: hwresource.cpp:128
#define ASSERT(a)
Definition: mode.c:44
NTSYSAPI NTSTATUS NTAPI RtlAddRange(_Inout_ PRTL_RANGE_LIST RangeList, _In_ ULONGLONG Start, _In_ ULONGLONG End, _In_ UCHAR Attributes, _In_ ULONG Flags, _In_opt_ PVOID UserData, _In_opt_ PVOID Owner)
#define L(x)
Definition: ntvdm.h:50
#define DPRINT
Definition: sndvol32.h:71
PARB_UNPACK_RESOURCE UnpackResource
Definition: arbiter.h:196
PARB_SCORE_REQUIREMENT ScoreRequirement
Definition: arbiter.h:197
PRTL_RANGE_LIST Allocation
Definition: arbiter.h:186
PARB_UNPACK_REQUIREMENT UnpackRequirement
Definition: arbiter.h:194
PARB_PACK_RESOURCE PackResource
Definition: arbiter.h:195

Referenced by IopInitializeArbiters().

◆ IopBusNumberPackResource()

NTSTATUS NTAPI IopBusNumberPackResource ( _In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor,
_In_ UINT64  Start,
_Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR  CmDescriptor 
)

Definition at line 48 of file arbiters.c.

52{
53 PAGED_CODE();
54
57}
#define UNIMPLEMENTED
Definition: debug.h:115
#define STATUS_NOT_IMPLEMENTED
Definition: ntstatus.h:239

Referenced by IopBusNumberInitialize().

◆ IopBusNumberScoreRequirement()

INT32 NTAPI IopBusNumberScoreRequirement ( _In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor)

Definition at line 76 of file arbiters.c.

78{
79 PAGED_CODE();
80
82 return 0;
83}

Referenced by IopBusNumberInitialize().

◆ IopBusNumberUnpackRequirement()

NTSTATUS NTAPI IopBusNumberUnpackRequirement ( _In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor,
_Out_ PUINT64  OutMinimumAddress,
_Out_ PUINT64  OutMaximumAddress,
_Out_ PUINT32  OutLength,
_Out_ PUINT32  OutAlignment 
)

Definition at line 32 of file arbiters.c.

38{
39 PAGED_CODE();
40
43}

Referenced by IopBusNumberInitialize().

◆ IopBusNumberUnpackResource()

NTSTATUS NTAPI IopBusNumberUnpackResource ( _In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR  Descriptor,
_Out_ PUINT64  Start,
_Out_ PUINT32  Length 
)

Definition at line 62 of file arbiters.c.

66{
67 PAGED_CODE();
68
71}

Referenced by IopBusNumberInitialize().

◆ IopDmaInitialize()

NTSTATUS NTAPI IopDmaInitialize ( VOID  )

Definition at line 296 of file arbiters.c.

297{
299
300 PAGED_CODE();
301
302 DPRINT("IopRootDmaArbiter %p\n", &IopRootDmaArbiter);
303
308
310
312 NULL,
314 L"RootDMA",
315 L"Root",
316 NULL);
317 return Status;
318}
INT32 NTAPI IopDmaScoreRequirement(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: arbiters.c:272
NTSTATUS NTAPI IopDmaPackResource(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _In_ UINT64 Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor)
Definition: arbiters.c:244
NTSTATUS NTAPI IopDmaOverrideConflict(_In_ PARBITER_INSTANCE Arbiter)
Definition: arbiters.c:284
NTSTATUS NTAPI IopDmaUnpackResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor, _Out_ PUINT64 Start, _Out_ PUINT32 OutLength)
Definition: arbiters.c:258
NTSTATUS NTAPI IopDmaUnpackRequirement(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _Out_ PUINT64 OutMinimumChannel, _Out_ PUINT64 OutMaximumChannel, _Out_ PUINT32 OutParam1, _Out_ PUINT32 OutParam2)
Definition: arbiters.c:228
ARBITER_INSTANCE IopRootDmaArbiter
Definition: pnpinit.c:25
#define CmResourceTypeDma
Definition: hwresource.cpp:126
PARB_OVERRIDE_CONFLICT OverrideConflict
Definition: arbiter.h:213

Referenced by IopInitializeArbiters().

◆ IopDmaOverrideConflict()

NTSTATUS NTAPI IopDmaOverrideConflict ( _In_ PARBITER_INSTANCE  Arbiter)

Definition at line 284 of file arbiters.c.

286{
287 PAGED_CODE();
288
291}

Referenced by IopDmaInitialize().

◆ IopDmaPackResource()

NTSTATUS NTAPI IopDmaPackResource ( _In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor,
_In_ UINT64  Start,
_Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR  CmDescriptor 
)

Definition at line 244 of file arbiters.c.

248{
249 PAGED_CODE();
250
253}

Referenced by IopDmaInitialize().

◆ IopDmaScoreRequirement()

INT32 NTAPI IopDmaScoreRequirement ( _In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor)

Definition at line 272 of file arbiters.c.

274{
275 PAGED_CODE();
276
278 return 0;
279}

Referenced by IopDmaInitialize().

◆ IopDmaUnpackRequirement()

NTSTATUS NTAPI IopDmaUnpackRequirement ( _In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor,
_Out_ PUINT64  OutMinimumChannel,
_Out_ PUINT64  OutMaximumChannel,
_Out_ PUINT32  OutParam1,
_Out_ PUINT32  OutParam2 
)

Definition at line 228 of file arbiters.c.

234{
235 PAGED_CODE();
236
239}

Referenced by IopDmaInitialize().

◆ IopDmaUnpackResource()

NTSTATUS NTAPI IopDmaUnpackResource ( _In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR  CmDescriptor,
_Out_ PUINT64  Start,
_Out_ PUINT32  OutLength 
)

Definition at line 258 of file arbiters.c.

262{
263 PAGED_CODE();
264
267}

Referenced by IopDmaInitialize().

◆ IopGenericPackResource()

NTSTATUS NTAPI IopGenericPackResource ( _In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor,
_In_ UINT64  Start,
_Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR  CmDescriptor 
)

Definition at line 341 of file arbiters.c.

345{
346 PAGED_CODE();
347
350}

Referenced by IopMemInitialize(), and IopPortInitialize().

◆ IopGenericScoreRequirement()

INT32 NTAPI IopGenericScoreRequirement ( _In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor)

Definition at line 369 of file arbiters.c.

371{
372 PAGED_CODE();
373
375 return 0;
376}

Referenced by IopMemInitialize(), and IopPortInitialize().

◆ IopGenericTranslateOrdering()

NTSTATUS NTAPI IopGenericTranslateOrdering ( _Out_ PIO_RESOURCE_DESCRIPTOR  OutIoDescriptor,
_In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor 
)

Definition at line 381 of file arbiters.c.

384{
385 PAGED_CODE();
386
389}

Referenced by IopMemInitialize(), and IopPortInitialize().

◆ IopGenericUnpackRequirement()

NTSTATUS NTAPI IopGenericUnpackRequirement ( _In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor,
_Out_ PUINT64  OutMinimumAddress,
_Out_ PUINT64  OutMaximumAddress,
_Out_ PUINT32  OutLength,
_Out_ PUINT32  OutAlignment 
)

Definition at line 325 of file arbiters.c.

331{
332 PAGED_CODE();
333
336}

Referenced by IopMemInitialize(), and IopPortInitialize().

◆ IopGenericUnpackResource()

NTSTATUS NTAPI IopGenericUnpackResource ( _In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR  CmDescriptor,
_Out_ PUINT64  Start,
_Out_ PUINT32  OutLength 
)

Definition at line 355 of file arbiters.c.

359{
360 PAGED_CODE();
361
364}

Referenced by IopMemInitialize(), and IopPortInitialize().

◆ IopIrqInitialize()

NTSTATUS NTAPI IopIrqInitialize ( VOID  )

Definition at line 201 of file arbiters.c.

202{
204
205 PAGED_CODE();
206
207 DPRINT("IopRootIrqArbiter %p\n", &IopRootIrqArbiter);
208
213
215 NULL,
217 L"RootIRQ",
218 L"Root",
220 return Status;
221}
ARBITER_INSTANCE IopRootIrqArbiter
Definition: pnpinit.c:24
INT32 NTAPI IopIrqScoreRequirement(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: arbiters.c:176
NTSTATUS NTAPI IopIrqPackResource(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _In_ UINT64 Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor)
Definition: arbiters.c:148
NTSTATUS NTAPI IopIrqUnpackRequirement(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _Out_ PUINT64 OutMinimumVector, _Out_ PUINT64 OutMaximumVector, _Out_ PUINT32 OutParam1, _Out_ PUINT32 OutParam2)
Definition: arbiters.c:132
NTSTATUS NTAPI IopIrqTranslateOrdering(_Out_ PIO_RESOURCE_DESCRIPTOR OutIoDescriptor, _In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: arbiters.c:188
NTSTATUS NTAPI IopIrqUnpackResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor, _Out_ PUINT64 Start, _Out_ PUINT32 OutLength)
Definition: arbiters.c:162
#define CmResourceTypeInterrupt
Definition: hwresource.cpp:124

Referenced by IopInitializeArbiters().

◆ IopIrqPackResource()

NTSTATUS NTAPI IopIrqPackResource ( _In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor,
_In_ UINT64  Start,
_Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR  CmDescriptor 
)

Definition at line 148 of file arbiters.c.

152{
153 PAGED_CODE();
154
157}

Referenced by IopIrqInitialize().

◆ IopIrqScoreRequirement()

INT32 NTAPI IopIrqScoreRequirement ( _In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor)

Definition at line 176 of file arbiters.c.

178{
179 PAGED_CODE();
180
182 return 0;
183}

Referenced by IopIrqInitialize().

◆ IopIrqTranslateOrdering()

NTSTATUS NTAPI IopIrqTranslateOrdering ( _Out_ PIO_RESOURCE_DESCRIPTOR  OutIoDescriptor,
_In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor 
)

Definition at line 188 of file arbiters.c.

191{
192 PAGED_CODE();
193
196}

Referenced by IopIrqInitialize().

◆ IopIrqUnpackRequirement()

NTSTATUS NTAPI IopIrqUnpackRequirement ( _In_ PIO_RESOURCE_DESCRIPTOR  IoDescriptor,
_Out_ PUINT64  OutMinimumVector,
_Out_ PUINT64  OutMaximumVector,
_Out_ PUINT32  OutParam1,
_Out_ PUINT32  OutParam2 
)

Definition at line 132 of file arbiters.c.

138{
139 PAGED_CODE();
140
143}

Referenced by IopIrqInitialize().

◆ IopIrqUnpackResource()

NTSTATUS NTAPI IopIrqUnpackResource ( _In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR  CmDescriptor,
_Out_ PUINT64  Start,
_Out_ PUINT32  OutLength 
)

Definition at line 162 of file arbiters.c.

166{
167 PAGED_CODE();
168
171}

Referenced by IopIrqInitialize().

◆ IopMemFindSuitableRange()

BOOLEAN NTAPI IopMemFindSuitableRange ( _In_ PARBITER_INSTANCE  Arbiter,
_In_ PARBITER_ALLOCATION_STATE  State 
)

Definition at line 396 of file arbiters.c.

399{
400 PAGED_CODE();
401
403 return FALSE;
404}

Referenced by IopMemInitialize().

◆ IopMemInitialize()

NTSTATUS NTAPI IopMemInitialize ( VOID  )

Definition at line 409 of file arbiters.c.

410{
412
413 PAGED_CODE();
414
415 DPRINT("IopRootMemArbiter %p\n", &IopRootMemArbiter);
416
421
423
425 NULL,
427 L"RootMemory",
428 L"Root",
430 if (!NT_SUCCESS(Status))
431 {
432 DPRINT1("IopMemInitialize: Status %p\n", Status);
433 ASSERT(FALSE);
434 return Status;
435 }
436
438 0,
439 (UINT64)(PAGE_SIZE - 1),
440 0,
441 0,
442 NULL,
443 NULL);
444
445 return Status;
446}
NTSTATUS NTAPI IopGenericTranslateOrdering(_Out_ PIO_RESOURCE_DESCRIPTOR OutIoDescriptor, _In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: arbiters.c:381
NTSTATUS NTAPI IopGenericPackResource(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _In_ UINT64 Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor)
Definition: arbiters.c:341
NTSTATUS NTAPI IopGenericUnpackResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor, _Out_ PUINT64 Start, _Out_ PUINT32 OutLength)
Definition: arbiters.c:355
NTSTATUS NTAPI IopGenericUnpackRequirement(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _Out_ PUINT64 OutMinimumAddress, _Out_ PUINT64 OutMaximumAddress, _Out_ PUINT32 OutLength, _Out_ PUINT32 OutAlignment)
Definition: arbiters.c:325
INT32 NTAPI IopGenericScoreRequirement(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: arbiters.c:369
ARBITER_INSTANCE IopRootMemArbiter
Definition: pnpinit.c:26
BOOLEAN NTAPI IopMemFindSuitableRange(_In_ PARBITER_INSTANCE Arbiter, _In_ PARBITER_ALLOCATION_STATE State)
Definition: arbiters.c:396
#define PAGE_SIZE
Definition: env_spec_w32.h:49
#define CmResourceTypeMemory
Definition: hwresource.cpp:125
PARB_FIND_SUITABLE_RANGE FindSuitableRange
Definition: arbiter.h:210

Referenced by IopInitializeArbiters().

◆ IopPortAddAllocation()

VOID NTAPI IopPortAddAllocation ( _In_ PARBITER_INSTANCE  Arbiter,
_In_ PARBITER_ALLOCATION_STATE  ArbState 
)

Definition at line 466 of file arbiters.c.

469{
470 PAGED_CODE();
471
473}

Referenced by IopPortInitialize().

◆ IopPortBacktrackAllocation()

VOID NTAPI IopPortBacktrackAllocation ( _In_ PARBITER_INSTANCE  Arbiter,
_Inout_ PARBITER_ALLOCATION_STATE  ArbState 
)

Definition at line 478 of file arbiters.c.

481{
482 PAGED_CODE();
483
485}

Referenced by IopPortInitialize().

◆ IopPortFindSuitableRange()

BOOLEAN NTAPI IopPortFindSuitableRange ( _In_ PARBITER_INSTANCE  Arbiter,
_In_ PARBITER_ALLOCATION_STATE  State 
)

Definition at line 453 of file arbiters.c.

456{
457 PAGED_CODE();
458
460 return FALSE;
461}

Referenced by IopPortInitialize().

◆ IopPortInitialize()

NTSTATUS NTAPI IopPortInitialize ( VOID  )

Definition at line 490 of file arbiters.c.

491{
493
494 PAGED_CODE();
495
496 DPRINT("IopRootPortArbiter %p\n", &IopRootPortArbiter);
497
502
506
508 NULL,
510 L"RootPort",
511 L"Root",
513 return Status;
514}
VOID NTAPI IopPortBacktrackAllocation(_In_ PARBITER_INSTANCE Arbiter, _Inout_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiters.c:478
VOID NTAPI IopPortAddAllocation(_In_ PARBITER_INSTANCE Arbiter, _In_ PARBITER_ALLOCATION_STATE ArbState)
Definition: arbiters.c:466
BOOLEAN NTAPI IopPortFindSuitableRange(_In_ PARBITER_INSTANCE Arbiter, _In_ PARBITER_ALLOCATION_STATE State)
Definition: arbiters.c:453
ARBITER_INSTANCE IopRootPortArbiter
Definition: pnpinit.c:27
#define CmResourceTypePort
Definition: hwresource.cpp:123
PARB_ADD_ALLOCATION AddAllocation
Definition: arbiter.h:211
PARB_BACKTRACK_ALLOCATION BacktrackAllocation
Definition: arbiter.h:212

Referenced by IopInitializeArbiters().

Variable Documentation

◆ IopRootBusNumberArbiter

ARBITER_INSTANCE IopRootBusNumberArbiter
extern

Definition at line 23 of file pnpinit.c.

Referenced by IopBusNumberInitialize().

◆ IopRootDmaArbiter

ARBITER_INSTANCE IopRootDmaArbiter
extern

Definition at line 25 of file pnpinit.c.

Referenced by IopDmaInitialize().

◆ IopRootIrqArbiter

ARBITER_INSTANCE IopRootIrqArbiter
extern

Definition at line 24 of file pnpinit.c.

Referenced by IopIrqInitialize().

◆ IopRootMemArbiter

ARBITER_INSTANCE IopRootMemArbiter
extern

Definition at line 26 of file pnpinit.c.

Referenced by IopMemInitialize().

◆ IopRootPortArbiter

ARBITER_INSTANCE IopRootPortArbiter
extern

Definition at line 27 of file pnpinit.c.

Referenced by IopPortInitialize().