ReactOS 0.4.16-dev-1946-g52006dd
arbdma.c
Go to the documentation of this file.
1/*
2 * PROJECT: ReactOS Kernel
3 * LICENSE: MIT (https://spdx.org/licenses/MIT)
4 * PURPOSE: PnP manager Root DMA Arbiter
5 * COPYRIGHT: Copyright 2025 Justin Miller <justin.miller@reactos.org>
6 */
7
8/* INCLUDES *****************************************************************/
9
10#include <ntoskrnl.h>
11#define NDEBUG
12#include <debug.h>
13
14/* GLOBALS *******************************************************************/
15
17
18/* FUNCTIONS *****************************************************************/
19
23 _In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor,
24 _Out_ PUINT64 OutMinimumAddress,
25 _Out_ PUINT64 OutMaximumAddress,
26 _Out_ PUINT32 OutLength,
27 _Out_ PUINT32 OutAlignment)
28{
29 PAGED_CODE();
30 DPRINT("IopArbDmaUnpackRequirements: IoDescriptor: %p, OutMinimumAddress: %p, OutMaximumAddress: %p, OutLength: %p, OutAlignment: %p\n",
31 IoDescriptor,
32 OutMinimumAddress,
33 OutMaximumAddress,
34 OutLength,
35 OutAlignment);
36
39}
40
44 _In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor,
47{
48 PAGED_CODE();
49 DPRINT("IopArbDmaPackResource: IoDescriptor: %p, Start: %p, CmDescriptor: %p\n",
50 IoDescriptor,
51 Start,
52 CmDescriptor);
53
56}
57
63 _Out_ PUINT32 OutLength)
64{
65 PAGED_CODE();
66 DPRINT("IopArbDmaUnpackResource: CmDescriptor: %p, Start: %p, OutLength: %p\n",
67 CmDescriptor,
68 Start,
69 OutLength);
70
73}
74
78 _In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
79{
80 PAGED_CODE();
81 DPRINT("IopArbDmaScoreRequirement: IoDescriptor: %p\n",
82 IoDescriptor);
83
85 return 0;
86}
87
91{
93
94 PAGED_CODE();
95 IopRootDmaArbiter.Name = L"RootDma";
100
102 NULL,
105 L"Root",
106 NULL);
107 if (!NT_SUCCESS(Status))
108 {
109 DPRINT1("IopArbDmaInitialize: Failed with %X", Status);
110 }
111
112 return Status;
113}
#define PAGED_CODE()
signed int INT32
unsigned long long UINT64
NTSTATUS NTAPI IopArbDmaInitialize(VOID)
Definition: arbdma.c:90
INT32 NTAPI IopArbDmaScoreRequirement(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor)
Definition: arbdma.c:77
NTSTATUS NTAPI IopArbDmaPackResource(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _In_ UINT64 Start, _Out_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor)
Definition: arbdma.c:43
NTSTATUS NTAPI IopArbDmaUnpackRequirements(_In_ PIO_RESOURCE_DESCRIPTOR IoDescriptor, _Out_ PUINT64 OutMinimumAddress, _Out_ PUINT64 OutMaximumAddress, _Out_ PUINT32 OutLength, _Out_ PUINT32 OutAlignment)
Definition: arbdma.c:22
NTSTATUS NTAPI IopArbDmaUnpackResource(_In_ PCM_PARTIAL_RESOURCE_DESCRIPTOR CmDescriptor, _Out_ PUINT64 Start, _Out_ PUINT32 OutLength)
Definition: arbdma.c:60
ARBITER_INSTANCE IopRootDmaArbiter
Definition: pnpinit.c:25
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
LONG NTSTATUS
Definition: precomp.h:26
#define DPRINT1
Definition: precomp.h:8
unsigned int * PUINT32
Definition: basetsd.h:119
unsigned __int64 * PUINT64
Definition: basetsd.h:181
#define UNIMPLEMENTED
Definition: ntoskrnl.c:15
#define STATUS_NOT_IMPLEMENTED
Definition: d3dkmdt.h:42
#define NULL
Definition: types.h:112
#define NT_SUCCESS(StatCode)
Definition: apphelp.c:33
#define L(x)
Definition: resources.c:13
return pTarget Start()
Status
Definition: gdiplustypes.h:25
#define _Out_
Definition: no_sal2.h:160
#define _In_
Definition: no_sal2.h:158
#define CmResourceTypeBusNumber
Definition: restypes.h:109
#define DPRINT
Definition: sndvol32.h:73
PARB_UNPACK_RESOURCE UnpackResource
Definition: arbiter.h:196
PARB_SCORE_REQUIREMENT ScoreRequirement
Definition: arbiter.h:197
PARB_UNPACK_REQUIREMENT UnpackRequirement
Definition: arbiter.h:194
PARB_PACK_RESOURCE PackResource
Definition: arbiter.h:195
#define NTAPI
Definition: typedefs.h:36
#define STATUS_UNSUCCESSFUL
Definition: udferr_usr.h:132