[NTOS:IO] Fix parsing of resource lists

Also add a hack to avoid failing on now occurring resource conflict detection and try to fix at least one resource in ACPI hal.

CORE-10146
CORE-12892
This commit is contained in:
Timo Kreuzer 2018-01-28 23:44:28 +01:00 committed by Victor Perevertkin
parent c42e1246d1
commit b82bf8ce16
No known key found for this signature in database
GPG key ID: C750B7222E9C7830
12 changed files with 146 additions and 48 deletions

View file

@ -1,4 +1,7 @@
include_directories(
${REACTOS_SOURCE_DIR}/sdk/include/reactos/drivers)
list(APPEND SOURCE
fdo.c
pci.c

View file

@ -2,6 +2,7 @@
#define _PCI_PCH_
#include <ntifs.h>
#include <cmreslist.h>
#define TAG_PCI '0ICP'

View file

@ -1335,12 +1335,13 @@ PdoStartDevice(
/* TODO: Assign the other resources we get to the card */
for (i = 0; i < RawResList->Count; i++)
RawFullDesc = &RawResList->List[0];
for (i = 0; i < RawResList->Count; i++, RawFullDesc = CmiGetNextResourceDescriptor(RawFullDesc))
{
RawFullDesc = &RawResList->List[i];
for (ii = 0; ii < RawFullDesc->PartialResourceList.Count; ii++)
{
/* Partial resource descriptors can be of variable size (CmResourceTypeDeviceSpecific),
but only one is allowed and it must be the last one in the list! */
RawPartialDesc = &RawFullDesc->PartialResourceList.PartialDescriptors[ii];
if (RawPartialDesc->Type == CmResourceTypeInterrupt)