10#define WIN32_NO_STATUS
16#define IO_RESOURCE_PREFERRED 0x01
17#define IO_RESOURCE_DEFAULT 0x02
18#define IO_RESOURCE_ALTERNATIVE 0x08
90#define DPRINT1(...) do { if (0) DbgPrint(__VA_ARGS__); } while (0)
178#include "../../../../drivers/bus/acpi/buspdo.c"
181#define MAKE_IRQ(Resource, _DescriptorLength, _Triggering, _Polarity, _Shareable, _WakeCapable) \
183 Resource->Data.Irq.DescriptorLength = _DescriptorLength; \
184 Resource->Data.Irq.Triggering = _Triggering; \
185 Resource->Data.Irq.Polarity = _Polarity; \
186 Resource->Data.Irq.Shareable = _Shareable; \
187 Resource->Data.Irq.WakeCapable = _WakeCapable; \
191#define expect_irq(Desc, ExpectedOption, ExpectedShare, ExpectedMin, ExpectedMax) \
193 ok((Desc)->Option == ExpectedOption, "Desc->Option = %u\n", (Desc)->Option); \
194 ok((Desc)->Type == CmResourceTypeInterrupt, "Desc->Type = %u\n", (Desc)->Type); \
195 ok((Desc)->ShareDisposition == ExpectedShare, "Desc->ShareDisposition = %u\n", (Desc)->ShareDisposition); \
196 ok((Desc)->u.Interrupt.MinimumVector == ExpectedMin, "Desc->u.Interrupt.MinimumVector = %lu\n", (Desc)->u.Interrupt.MinimumVector); \
197 ok((Desc)->u.Interrupt.MaximumVector == ExpectedMax, "Desc->u.Interrupt.MaximumVector = %lu\n", (Desc)->u.Interrupt.MaximumVector); \
200#define expect_port(Desc, ExpectedOption, ExpectedShare, ExpectedLength, ExpectedAlign, ExpectedMin, ExpectedMax) \
202 ok((Desc)->Option == ExpectedOption, "Desc->Option = %u\n", (Desc)->Option); \
203 ok((Desc)->Type == CmResourceTypePort, "Desc->Type = %u\n", (Desc)->Type); \
204 ok((Desc)->ShareDisposition == ExpectedShare, "Desc->ShareDisposition = %u\n", (Desc)->ShareDisposition); \
205 ok((Desc)->u.Port.Length == ExpectedLength, "Desc->u.Port.Length = %lu\n", (Desc)->u.Port.Length); \
206 ok((Desc)->u.Port.Alignment == ExpectedAlign, "Desc->u.Port.Alignment = %lu\n", (Desc)->u.Port.Alignment); \
207 ok((Desc)->u.Port.MinimumAddress.QuadPart == ExpectedMin, "Desc->u.Port.MinimumAddress = 0x%I64x\n", (Desc)->u.Port.MinimumAddress.QuadPart); \
208 ok((Desc)->u.Port.MaximumAddress.QuadPart == ExpectedMax, "Desc->u.Port.MaximumAddress = 0x%I64x\n", (Desc)->u.Port.MaximumAddress.QuadPart); \
255 Irp.IoStatus.Information = 0;
260 Resource->Length =
sizeof(*Resource);
262 Resource->Data.Irq.InterruptCount = 1;
263 Resource->Data.Irq.Interrupts[0] = 7;
273 ReqList = (
PVOID)
Irp.IoStatus.Information;
274 ok(ReqList !=
NULL,
"ReqList is NULL\n");
277 skip(
"No ReqList\n");
295 Irp.IoStatus.Information = 0;
302 Resource->Data.Irq.InterruptCount = 2;
303 Resource->Data.Irq.Interrupts[0] = 3;
304 Resource->Data.Irq.Interrupts[1] = 7;
314 ReqList = (
PVOID)
Irp.IoStatus.Information;
315 ok(ReqList !=
NULL,
"ReqList is NULL\n");
318 skip(
"No ReqList\n");
337 Irp.IoStatus.Information = 0;
342 Resource->Length =
sizeof(*Resource);
345 Resource->Data.Io.AddressLength = 8;
357 ReqList = (
PVOID)
Irp.IoStatus.Information;
358 ok(ReqList !=
NULL,
"ReqList is NULL\n");
361 skip(
"No ReqList\n");
379 Irp.IoStatus.Information = 0;
384 Resource->Length =
sizeof(*Resource);
387 Resource->Data.Io.AddressLength = 8;
394 Resource->Data.Irq.InterruptCount = 2;
395 Resource->Data.Irq.Interrupts[0] = 3;
396 Resource->Data.Irq.Interrupts[1] = 7;
406 ReqList = (
PVOID)
Irp.IoStatus.Information;
407 ok(ReqList !=
NULL,
"ReqList is NULL\n");
410 skip(
"No ReqList\n");
430 Irp.IoStatus.Information = 0;
435 Resource->Length =
sizeof(*Resource);
439 Resource->Length =
sizeof(*Resource);
442 Resource->Data.Io.AddressLength = 8;
450 Resource->Data.Irq.InterruptCount = 5;
451 Resource->Data.Irq.Interrupts[0] = 3;
452 Resource->Data.Irq.Interrupts[1] = 4;
453 Resource->Data.Irq.Interrupts[2] = 5;
454 Resource->Data.Irq.Interrupts[3] = 6;
455 Resource->Data.Irq.Interrupts[4] = 7;
459 Resource->Length =
sizeof(*Resource);
463 Resource->Length =
sizeof(*Resource);
466 Resource->Data.Io.AddressLength = 8;
474 Resource->Data.Irq.InterruptCount = 5;
475 Resource->Data.Irq.Interrupts[0] = 3;
476 Resource->Data.Irq.Interrupts[1] = 4;
477 Resource->Data.Irq.Interrupts[2] = 5;
478 Resource->Data.Irq.Interrupts[3] = 6;
479 Resource->Data.Irq.Interrupts[4] = 7;
483 Resource->Length =
sizeof(*Resource);
494 ReqList = (
PVOID)
Irp.IoStatus.Information;
495 ok(ReqList !=
NULL,
"ReqList is NULL\n");
498 skip(
"No ReqList\n");
struct _IO_RESOURCE_DESCRIPTOR * PIO_RESOURCE_DESCRIPTOR
static SIZE_T GetPoolAllocSize(PVOID MemPtr)
static ACPI_BUFFER CurrentBuffer
#define expect_irq(Desc, ExpectedOption, ExpectedShare, ExpectedMin, ExpectedMax)
struct _IO_RESOURCE_LIST * PIO_RESOURCE_LIST
static ACPI_BUFFER PossibleBuffer
#define IO_RESOURCE_ALTERNATIVE
struct _IO_RESOURCE_LIST IO_RESOURCE_LIST
#define expect_port(Desc, ExpectedOption, ExpectedShare, ExpectedLength, ExpectedAlign, ExpectedMin, ExpectedMax)
#define IO_RESOURCE_PREFERRED
#define MAKE_IRQ(Resource, _DescriptorLength, _Triggering, _Polarity, _Shareable, _WakeCapable)
static BOOLEAN AcpiCallExpected
struct _IO_RESOURCE_DESCRIPTOR IO_RESOURCE_DESCRIPTOR
struct _PDO_DEVICE_DATA PDO_DEVICE_DATA
ACPI_STATUS AcpiGetCurrentResources(ACPI_HANDLE Device, ACPI_BUFFER *RetBuffer)
static ACPI_HANDLE CorrectHandle
ACPI_STATUS AcpiGetPossibleResources(ACPI_HANDLE Device, ACPI_BUFFER *RetBuffer)
struct _IO_RESOURCE_REQUIREMENTS_LIST * PIO_RESOURCE_REQUIREMENTS_LIST
struct _IO_RESOURCE_REQUIREMENTS_LIST IO_RESOURCE_REQUIREMENTS_LIST
struct _PDO_DEVICE_DATA * PPDO_DEVICE_DATA
#define AE_BUFFER_OVERFLOW
#define ACPI_NEXT_RESOURCE(Res)
#define ACPI_RESOURCE_TYPE_IRQ
#define ACPI_RESOURCE_TYPE_END_DEPENDENT
#define ACPI_RESOURCE_TYPE_END_TAG
#define ACPI_NOT_WAKE_CAPABLE
#define ACPI_RESOURCE_TYPE_START_DEPENDENT
#define ACPI_LEVEL_SENSITIVE
#define ACPI_RESOURCE_TYPE_IO
#define ok_int(expression, result)
NTSTATUS Bus_PDO_QueryResourceRequirements(PPDO_DEVICE_DATA DeviceData, PIRP Irp)
_Acquires_exclusive_lock_ Resource _Acquires_shared_lock_ Resource _Inout_ PERESOURCE Resource
#define HeapFree(x, y, z)
#define ExAllocatePoolWithTag(hernya, size, tag)
enum _INTERFACE_TYPE INTERFACE_TYPE
#define ExFreePoolWithTag(_P, _T)
struct _IO_RESOURCE_DESCRIPTOR::@1546::@1553 BusNumber
struct _IO_RESOURCE_DESCRIPTOR::@1546::@1548 Memory
struct _IO_RESOURCE_DESCRIPTOR::@1546::@1554 ConfigData
struct _IO_RESOURCE_DESCRIPTOR::@1546::@1551 Generic
struct _IO_RESOURCE_DESCRIPTOR::@1546::@1552 DevicePrivate
struct _IO_RESOURCE_DESCRIPTOR::@1546::@1549 Interrupt
PHYSICAL_ADDRESS MaximumAddress
union _IO_RESOURCE_DESCRIPTOR::@1546 u
struct _IO_RESOURCE_DESCRIPTOR::@1546::@1547 Port
PHYSICAL_ADDRESS MinimumAddress
struct _IO_RESOURCE_DESCRIPTOR::@1546::@1550 Dma
IO_RESOURCE_DESCRIPTOR Descriptors[1]
INTERFACE_TYPE InterfaceType
#define FIELD_OFFSET(t, f)
_Must_inspect_result_ _In_ WDFDEVICE Device
_Must_inspect_result_ _In_ WDFDEVICE _In_ BOOLEAN _In_opt_ PVOID Tag
_Must_inspect_result_ _In_ WDFDEVICE _In_ DEVICE_REGISTRY_PROPERTY _In_ _Strict_type_match_ POOL_TYPE PoolType
_Must_inspect_result_ _In_ WDFCMRESLIST List
_Reserved_ PVOID Reserved
@ CmResourceShareDeviceExclusive
@ CmResourceShareDriverExclusive
_Must_inspect_result_ typedef _In_ PHYSICAL_ADDRESS _Inout_ PLARGE_INTEGER NumberOfBytes