Fix MSVC / 64 bit warnings

svn path=/trunk/; revision=56260
This commit is contained in:
Timo Kreuzer 2012-03-28 12:15:54 +00:00
parent d8e68c8aff
commit efff43afd5
10 changed files with 317 additions and 317 deletions

View file

@ -87,8 +87,8 @@ HalpGetSystemInterruptVector_Acpi(IN ULONG BusNumber,
OUT PKIRQL Irql,
OUT PKAFFINITY Affinity)
{
ULONG Vector = IRQ2VECTOR(BusInterruptLevel);
*Irql = (KIRQL)VECTOR2IRQL(Vector);
UCHAR Vector = IRQ2VECTOR((UCHAR)BusInterruptLevel);
*Irql = VECTOR2IRQL(Vector);
*Affinity = 0xFFFFFFFF;
return Vector;
}

View file

@ -52,7 +52,7 @@ HalpAcpiGetCachedTable(IN ULONG Signature)
{
PLIST_ENTRY ListHead, NextEntry;
PACPI_CACHED_TABLE CachedTable;
/* Loop cached tables */
ListHead = &HalpAcpiTableCacheList;
NextEntry = ListHead->Flink;
@ -60,10 +60,10 @@ HalpAcpiGetCachedTable(IN ULONG Signature)
{
/* Get the table */
CachedTable = CONTAINING_RECORD(NextEntry, ACPI_CACHED_TABLE, Links);
/* Compare signatures */
if (CachedTable->Header.Signature == Signature) return &CachedTable->Header;
/* Keep going */
NextEntry = NextEntry->Flink;
}
@ -77,7 +77,7 @@ NTAPI
HalpAcpiCacheTable(IN PDESCRIPTION_HEADER TableHeader)
{
PACPI_CACHED_TABLE CachedTable;
/* Get the cached table and link it */
CachedTable = CONTAINING_RECORD(TableHeader, ACPI_CACHED_TABLE, Header);
InsertTailList(&HalpAcpiTableCacheList, &CachedTable->Links);
@ -89,11 +89,11 @@ HalpAcpiCopyBiosTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
IN PDESCRIPTION_HEADER TableHeader)
{
ULONG Size;
PFN_NUMBER PageCount;
PFN_COUNT PageCount;
PHYSICAL_ADDRESS PhysAddress;
PACPI_CACHED_TABLE CachedTable;
PDESCRIPTION_HEADER CopiedTable;
/* Size we'll need for the cached table */
Size = TableHeader->Length + FIELD_OFFSET(ACPI_CACHED_TABLE, Header);
if (LoaderBlock)
@ -120,7 +120,7 @@ HalpAcpiCopyBiosTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Use Mm pool */
CachedTable = ExAllocatePoolWithTag(NonPagedPool, Size, ' laH');
}
/* Do we have the cached table? */
if (CachedTable)
{
@ -133,7 +133,7 @@ HalpAcpiCopyBiosTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Nothing to return */
CopiedTable = NULL;
}
/* Return the table */
return CopiedTable;
}
@ -153,8 +153,8 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
ULONG Offset;
ULONG EntryCount, CurrentEntry;
PCHAR CurrentByte;
PFN_NUMBER PageCount;
PFN_COUNT PageCount;
/* Should not query the RSDT/XSDT by itself */
if ((Signature == RSDT_SIGNATURE) || (Signature == XSDT_SIGNATURE)) return NULL;
@ -169,7 +169,7 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
PhysicalAddress.HighPart = 0;
PhysicalAddress.LowPart = Fadt->dsdt;
TableLength = 2 * PAGE_SIZE;
/* Map it */
if (LoaderBlock)
{
@ -188,7 +188,7 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
DPRINT1("HAL: Failed to map ACPI table.\n");
return NULL;
}
/* Validate the signature */
if (Header->Signature != DSDT_SIGNATURE)
{
@ -232,7 +232,7 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Won't be using the RSDT */
Rsdt = NULL;
}
/* Smallest RSDT/XSDT is one without table entries */
Offset = FIELD_OFFSET(RSDT, Tables);
if (Xsdt)
@ -240,7 +240,7 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Figure out total size of table and the offset */
TableLength = Xsdt->Header.Length;
if (TableLength < Offset) Offset = Xsdt->Header.Length;
/* The entries are each 64-bits, so count them */
EntryCount = (TableLength - Offset) / sizeof(PHYSICAL_ADDRESS);
}
@ -249,11 +249,11 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Figure out total size of table and the offset */
TableLength = Rsdt->Header.Length;
if (TableLength < Offset) Offset = Rsdt->Header.Length;
/* The entries are each 32-bits, so count them */
EntryCount = (TableLength - Offset) / sizeof(ULONG);
}
/* Start at the beginning of the array and loop it */
for (CurrentEntry = 0; CurrentEntry < EntryCount; CurrentEntry++)
{
@ -269,7 +269,7 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Read the 64-bit physical address */
PhysicalAddress = Xsdt->Tables[CurrentEntry];
}
/* Had we already mapped a table? */
if (Header)
{
@ -285,7 +285,7 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
MmUnmapIoSpace(Header, 2 * PAGE_SIZE);
}
}
/* Now map this table */
if (!LoaderBlock)
{
@ -297,7 +297,7 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Phase 0: Use Mm */
Header = HalpMapPhysicalMemory64(PhysicalAddress, 2);
}
/* Check if we mapped it */
if (!Header)
{
@ -315,7 +315,7 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
Header);
if (Header->Signature == Signature) break;
}
/* Did we end up here back at the last entry? */
if (CurrentEntry == EntryCount)
{
@ -335,10 +335,10 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
return NULL;
}
}
/* Past this point, we assume something was found */
ASSERT(Header);
/* How many pages do we need? */
PageCount = BYTES_TO_PAGES(Header->Length);
if (PageCount != 2)
@ -354,7 +354,7 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Using Mm */
MmUnmapIoSpace(Header, 2 * PAGE_SIZE);
}
/* Now map this table using its correct size */
if (!LoaderBlock)
{
@ -367,7 +367,7 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
Header = HalpMapPhysicalMemory64(PhysicalAddress, PageCount);
}
}
/* Fail if the remapped failed */
if (!Header) return NULL;
@ -382,7 +382,7 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Add this byte */
CheckSum += *CurrentByte;
}
/* The correct checksum is always 0, anything else is illegal */
if (CheckSum)
{
@ -394,7 +394,7 @@ HalpAcpiGetTableFromBios(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
(Signature & 0xFF000000) >> 24);
}
}
/* Return the table */
return Header;
}
@ -404,7 +404,7 @@ NTAPI
HalpAcpiGetTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
IN ULONG Signature)
{
PFN_NUMBER PageCount;
PFN_COUNT PageCount;
PDESCRIPTION_HEADER TableAddress, BiosCopy;
/* See if we have a cached table? */
@ -417,7 +417,7 @@ HalpAcpiGetTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
{
/* Found it, copy it into our own memory */
BiosCopy = HalpAcpiCopyBiosTable(LoaderBlock, TableAddress);
/* Get the pages, and unmap the BIOS copy */
PageCount = BYTES_TO_PAGES(TableAddress->Length);
if (LoaderBlock)
@ -430,13 +430,13 @@ HalpAcpiGetTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Phase 1, use Mm */
MmUnmapIoSpace(TableAddress, PageCount << PAGE_SHIFT);
}
/* Cache the bios copy */
TableAddress = BiosCopy;
if (BiosCopy) HalpAcpiCacheTable(BiosCopy);
}
}
/* Return the table */
return TableAddress;
}
@ -447,7 +447,7 @@ HalAcpiGetTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
IN ULONG Signature)
{
PDESCRIPTION_HEADER TableHeader;
/* Is this phase0 */
if (LoaderBlock)
{
@ -462,7 +462,7 @@ HalAcpiGetTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Get the table */
TableHeader = HalpAcpiGetTable(LoaderBlock, Signature);
/* Release the lock in phase 1 */
if (!LoaderBlock) ExReleaseFastMutex(&HalpAcpiTableCacheLock);
@ -475,7 +475,7 @@ NTAPI
HalpNumaInitializeStaticConfiguration(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PACPI_SRAT SratTable;
/* Get the SRAT, bail out if it doesn't exist */
SratTable = HalAcpiGetTable(LoaderBlock, SRAT_SIGNATURE);
HalpAcpiSrat = SratTable;
@ -487,7 +487,7 @@ NTAPI
HalpGetHotPlugMemoryInfo(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
{
PACPI_SRAT SratTable;
/* Get the SRAT, bail out if it doesn't exist */
SratTable = HalAcpiGetTable(LoaderBlock, SRAT_SIGNATURE);
HalpAcpiSrat = SratTable;
@ -537,7 +537,7 @@ HalpInitBootTable(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
/* Invalid or doesn't exist, ignore it */
HalpSimpleBootFlagTable = 0;
}
/* Install the end of boot handler */
// HalEndOfBoot = HalpEndOfBoot;
}
@ -552,7 +552,7 @@ HalpAcpiFindRsdtPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
PCM_PARTIAL_RESOURCE_LIST ResourceList;
PACPI_BIOS_MULTI_NODE NodeData;
SIZE_T NodeLength;
PFN_NUMBER PageCount;
PFN_COUNT PageCount;
PVOID MappedAddress;
PHYSICAL_ADDRESS PhysicalAddress;
@ -566,7 +566,7 @@ HalpAcpiFindRsdtPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Assume failure */
*AcpiMultiNode = NULL;
/* Find the multi function adapter key */
ComponentEntry = KeFindConfigurationNextEntry(LoaderBlock->ConfigurationRoot,
AdapterClass,
@ -581,7 +581,7 @@ HalpAcpiFindRsdtPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Found it */
break;
}
/* Keep searching */
Next = ComponentEntry;
ComponentEntry = KeFindConfigurationNextEntry(LoaderBlock->ConfigurationRoot,
@ -590,24 +590,24 @@ HalpAcpiFindRsdtPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
NULL,
&Next);
}
/* Make sure we found it */
if (!ComponentEntry)
{
DPRINT1("**** HalpAcpiFindRsdtPhase0: did NOT find RSDT\n");
return STATUS_NOT_FOUND;
}
/* The configuration data is a resource list, and the BIOS node follows */
ResourceList = ComponentEntry->ConfigurationData;
NodeData = (PACPI_BIOS_MULTI_NODE)(ResourceList + 1);
/* How many E820 memory entries are there? */
NodeLength = sizeof(ACPI_BIOS_MULTI_NODE) +
(NodeData->Count - 1) * sizeof(ACPI_E820_ENTRY);
/* Convert to pages */
PageCount = BYTES_TO_PAGES(NodeLength);
PageCount = (PFN_COUNT)BYTES_TO_PAGES(NodeLength);
/* Allocate the memory */
PhysicalAddress.QuadPart = HalpAllocPhysicalMemory(LoaderBlock,
@ -624,11 +624,11 @@ HalpAcpiFindRsdtPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Otherwise we'll have to fail */
MappedAddress = NULL;
}
/* Save the multi node, bail out if we didn't find it */
HalpAcpiMultiNode = MappedAddress;
if (!MappedAddress) return STATUS_INSUFFICIENT_RESOURCES;
/* Copy the multi-node data */
RtlCopyMemory(MappedAddress, NodeData, NodeLength);
@ -648,20 +648,20 @@ HalpAcpiTableCacheInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
ULONG TableLength;
PRSDT Rsdt;
PLOADER_PARAMETER_EXTENSION LoaderExtension;
/* Only initialize once */
if (HalpAcpiTableCacheList.Flink) return Status;
/* Setup the lock and table */
ExInitializeFastMutex(&HalpAcpiTableCacheLock);
InitializeListHead(&HalpAcpiTableCacheList);
/* Find the RSDT */
Status = HalpAcpiFindRsdtPhase0(LoaderBlock, &AcpiMultiNode);
if (!NT_SUCCESS(Status)) return Status;
PhysicalAddress.QuadPart = AcpiMultiNode->RsdtAddress.QuadPart;
/* Map the RSDT */
if (LoaderBlock)
{
@ -673,7 +673,7 @@ HalpAcpiTableCacheInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
/* Use an I/O map */
MappedAddress = MmMapIoSpace(PhysicalAddress, PAGE_SIZE * 2, MmNonCached);
}
/* Get the RSDT */
Rsdt = MappedAddress;
if (!MappedAddress)
@ -682,7 +682,7 @@ HalpAcpiTableCacheInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
DPRINT1("HAL: Failed to map RSDT\n");
return STATUS_INSUFFICIENT_RESOURCES;
}
/* Validate it */
if ((Rsdt->Header.Signature != RSDT_SIGNATURE) &&
(Rsdt->Header.Signature != XSDT_SIGNATURE))
@ -691,7 +691,7 @@ HalpAcpiTableCacheInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
HalDisplayString("Bad RSDT pointer\n");
KeBugCheckEx(MISMATCHED_HAL, 4, __LINE__, 0, 0);
}
/* We assumed two pages -- do we need less or more? */
TableLength = ADDRESS_AND_SIZE_TO_SPAN_PAGES(PhysicalAddress.LowPart,
Rsdt->Header.Length);
@ -712,7 +712,7 @@ HalpAcpiTableCacheInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
HalpUnmapVirtualAddress(MappedAddress, 2);
MappedAddress = HalpMapPhysicalMemory64(PhysicalAddress, TableLength);
}
/* Get the remapped table */
Rsdt = MappedAddress;
if (!MappedAddress)
@ -722,7 +722,7 @@ HalpAcpiTableCacheInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
return STATUS_INSUFFICIENT_RESOURCES;
}
}
/* Now take the BIOS copy and make our own local copy */
Rsdt = HalpAcpiCopyBiosTable(LoaderBlock, &Rsdt->Header);
if (!Rsdt)
@ -731,7 +731,7 @@ HalpAcpiTableCacheInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
DPRINT1("HAL: Couldn't remap RSDT\n");
return STATUS_INSUFFICIENT_RESOURCES;
}
/* Get rid of the BIOS mapping */
if (LoaderBlock)
{
@ -747,10 +747,10 @@ HalpAcpiTableCacheInit(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
LoaderExtension = NULL;
}
/* Cache the RSDT */
HalpAcpiCacheTable(&Rsdt->Header);
/* Check for compatible loader block extension */
if (LoaderExtension && (LoaderExtension->Size >= 0x58))
{
@ -772,7 +772,7 @@ HaliAcpiTimerInit(IN ULONG TimerPort,
IN ULONG TimerValExt)
{
PAGED_CODE();
/* Is this in the init phase? */
if (!TimerPort)
{
@ -781,7 +781,7 @@ HaliAcpiTimerInit(IN ULONG TimerPort,
TimerValExt = HalpFixedAcpiDescTable.flags & ACPI_TMR_VAL_EXT;
DPRINT1("ACPI Timer at: %Xh (EXT: %d)\n", TimerPort, TimerValExt);
}
/* FIXME: Now proceed to the timer initialization */
//HalaAcpiTimerInit(TimerPort, TimerValExt);
}
@ -810,23 +810,23 @@ HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
DPRINT1("HAL: Didn't find the FACP\n");
return STATUS_NOT_FOUND;
}
/* Assume typical size, otherwise whatever the descriptor table says */
TableLength = sizeof(FADT);
if (Fadt->Header.Length < sizeof(FADT)) TableLength = Fadt->Header.Length;
/* Copy it in the HAL static buffer */
RtlCopyMemory(&HalpFixedAcpiDescTable, Fadt, TableLength);
/* Anything special this HAL needs to do? */
HalpAcpiDetectMachineSpecificActions(LoaderBlock, &HalpFixedAcpiDescTable);
/* Get the debug table for KD */
HalpDebugPortTable = HalAcpiGetTable(LoaderBlock, DBGP_SIGNATURE);
/* Initialize NUMA through the SRAT */
HalpNumaInitializeStaticConfiguration(LoaderBlock);
/* Initialize hotplug through the SRAT */
HalpDynamicSystemResourceConfiguration(LoaderBlock);
if (HalpAcpiSrat)
@ -840,10 +840,10 @@ HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
/* We'll need this for DMA later */
HalpPhysicalMemoryMayAppearAbove4GB = TRUE;
}
/* Setup the ACPI timer */
HaliAcpiTimerInit(0, 0);
/* Do we have a low stub address yet? */
if (!HalpLowStubPhysicalAddress.QuadPart)
{
@ -858,15 +858,15 @@ HalpSetupAcpiPhase0(IN PLOADER_PARAMETER_BLOCK LoaderBlock)
HalpLowStub = HalpMapPhysicalMemory64(HalpLowStubPhysicalAddress, 1);
}
}
/* Grab a page for flushes */
PhysicalAddress.QuadPart = 0x100000;
HalpVirtAddrForFlush = HalpMapPhysicalMemory64(PhysicalAddress, 1);
HalpPteForFlush = HalAddressToPte(HalpVirtAddrForFlush);
/* Don't do this again */
HalpProcessedACPIPhase0 = TRUE;
/* Setup the boot table */
HalpInitBootTable(LoaderBlock);
@ -912,7 +912,7 @@ HalpInitializePciBus(VOID)
{
/* Setup the PCI stub support */
HalpInitializePciStubs();
/* Set the NMI crash flag */
HalpGetNMICrashFlag();
}
@ -963,7 +963,7 @@ NTAPI
HalpAcpiDetectResourceListSize(OUT PULONG ListSize)
{
PAGED_CODE();
/* One element if there is a SCI */
*ListSize = HalpFixedAcpiDescTable.sci_int_vector ? 1: 0;
}
@ -983,7 +983,7 @@ HalpBuildAcpiResourceList(IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceList)
ResourceList->List[0].Version = 1;
ResourceList->List[0].Revision = 1;
ResourceList->List[0].Count = 0;
/* Is there a SCI? */
if (HalpFixedAcpiDescTable.sci_int_vector)
{
@ -991,16 +991,16 @@ HalpBuildAcpiResourceList(IN PIO_RESOURCE_REQUIREMENTS_LIST ResourceList)
ResourceList->List[0].Descriptors[0].Flags = CM_RESOURCE_INTERRUPT_LEVEL_SENSITIVE;
ResourceList->List[0].Descriptors[0].Type = CmResourceTypeInterrupt;
ResourceList->List[0].Descriptors[0].ShareDisposition = CmResourceShareShared;
/* Get the interrupt number */
Interrupt = HalpPicVectorRedirect[HalpFixedAcpiDescTable.sci_int_vector];
ResourceList->List[0].Descriptors[0].u.Interrupt.MinimumVector = Interrupt;
ResourceList->List[0].Descriptors[0].u.Interrupt.MaximumVector = Interrupt;
/* One more */
++ResourceList->List[0].Count;
}
/* All good */
return STATUS_SUCCESS;
}
@ -1013,11 +1013,11 @@ HalpQueryAcpiResourceRequirements(OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requiremen
ULONG Count = 0, ListSize;
NTSTATUS Status;
PAGED_CODE();
/* Get ACPI resources */
HalpAcpiDetectResourceListSize(&Count);
DPRINT("Resource count: %d\n", Count);
/* Compute size of the list and allocate it */
ListSize = FIELD_OFFSET(IO_RESOURCE_REQUIREMENTS_LIST, List[0].Descriptors) +
(Count * sizeof(IO_RESOURCE_DESCRIPTOR));
@ -1028,14 +1028,14 @@ HalpQueryAcpiResourceRequirements(OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requiremen
/* Initialize it */
RtlZeroMemory(RequirementsList, ListSize);
RequirementsList->ListSize = ListSize;
/* Build it */
Status = HalpBuildAcpiResourceList(RequirementsList);
if (NT_SUCCESS(Status))
{
/* It worked, return it */
*Requirements = RequirementsList;
/* Validate the list */
ASSERT(RequirementsList->List[0].Count == Count);
}
@ -1051,7 +1051,7 @@ HalpQueryAcpiResourceRequirements(OUT PIO_RESOURCE_REQUIREMENTS_LIST *Requiremen
/* Not enough memory */
Status = STATUS_INSUFFICIENT_RESOURCES;
}
/* Return the status */
return Status;
}

View file

@ -116,7 +116,7 @@ HalpAddDevice(IN PDRIVER_OBJECT DriverObject,
/* Create the FDO */
Status = IoCreateDevice(DriverObject,
sizeof(FDO_EXTENSION),
sizeof(FDO_EXTENSION),
NULL,
FILE_DEVICE_BUS_EXTENDER,
0,
@ -128,17 +128,17 @@ HalpAddDevice(IN PDRIVER_OBJECT DriverObject,
DbgBreakPoint();
return Status;
}
/* Setup the FDO extension */
FdoExtension = DeviceObject->DeviceExtension;
FdoExtension->ExtensionType = FdoExtensionType;
FdoExtension->PhysicalDeviceObject = TargetDevice;
FdoExtension->FunctionalDeviceObject = DeviceObject;
FdoExtension->ChildPdoList = NULL;
/* FDO is done initializing */
DeviceObject->Flags &= ~DO_DEVICE_INITIALIZING;
/* Attach to the physical device object (the bus) */
AttachedDevice = IoAttachDeviceToDeviceStack(DeviceObject, TargetDevice);
if (!AttachedDevice)
@ -187,11 +187,11 @@ HalpQueryDeviceRelations(IN PDEVICE_OBJECT DeviceObject,
PDEVICE_RELATIONS PdoRelations, FdoRelations;
PDEVICE_OBJECT* ObjectEntry;
ULONG i = 0, PdoCount = 0;
/* Get FDO device extension and PDO count */
FdoExtension = DeviceObject->DeviceExtension;
ExtensionType = FdoExtension->ExtensionType;
/* What do they want? */
if (RelationType == BusRelations)
{
@ -220,10 +220,10 @@ HalpQueryDeviceRelations(IN PDEVICE_OBJECT DeviceObject,
sizeof(PDEVICE_OBJECT) * PdoCount,
' laH');
if (!FdoRelations) return STATUS_INSUFFICIENT_RESOURCES;
/* Save our count */
FdoRelations->Count = PdoCount;
/* Query existing relations */
ObjectEntry = FdoRelations->Objects;
if (*DeviceRelations)
@ -239,11 +239,11 @@ HalpQueryDeviceRelations(IN PDEVICE_OBJECT DeviceObject,
}
while (++i < (*DeviceRelations)->Count);
}
/* Free existing structure */
ExFreePool(*DeviceRelations);
}
/* Now check if we have a PDO list */
PdoExtension = FdoExtension->ChildPdoList;
if (PdoExtension)
@ -254,13 +254,13 @@ HalpQueryDeviceRelations(IN PDEVICE_OBJECT DeviceObject,
/* Save our own PDO and reference it */
*ObjectEntry++ = PdoExtension->PhysicalDeviceObject;
ObReferenceObject(PdoExtension->PhysicalDeviceObject);
/* Go to our next PDO */
PdoExtension = PdoExtension->Next;
}
while (PdoExtension);
}
/* Return the new structure */
*DeviceRelations = FdoRelations;
return STATUS_SUCCESS;
@ -277,18 +277,18 @@ HalpQueryDeviceRelations(IN PDEVICE_OBJECT DeviceObject,
sizeof(DEVICE_RELATIONS),
' laH');
if (!PdoRelations) return STATUS_INSUFFICIENT_RESOURCES;
/* Fill it out and reference us */
PdoRelations->Count = 1;
PdoRelations->Objects[0] = DeviceObject;
ObReferenceObject(DeviceObject);
/* Return it */
*DeviceRelations = PdoRelations;
return STATUS_SUCCESS;
}
}
/* We don't support anything else */
return STATUS_NOT_SUPPORTED;
}
@ -301,7 +301,7 @@ HalpQueryCapabilities(IN PDEVICE_OBJECT DeviceObject,
//PPDO_EXTENSION PdoExtension;
NTSTATUS Status;
PAGED_CODE();
/* Get the extension and check for valid version */
//PdoExtension = DeviceObject->DeviceExtension;
ASSERT(Capabilities->Version == 1);
@ -310,33 +310,33 @@ HalpQueryCapabilities(IN PDEVICE_OBJECT DeviceObject,
/* Can't lock or eject us */
Capabilities->LockSupported = FALSE;
Capabilities->EjectSupported = FALSE;
/* Can't remove or dock us */
Capabilities->Removable = FALSE;
Capabilities->DockDevice = FALSE;
/* Can't access us raw */
Capabilities->RawDeviceOK = FALSE;
/* We have a unique ID, and don't bother the user */
Capabilities->UniqueID = TRUE;
Capabilities->SilentInstall = TRUE;
/* Fill out the adress */
Capabilities->Address = InterfaceTypeUndefined;
Capabilities->UINumber = InterfaceTypeUndefined;
/* Fill out latencies */
Capabilities->D1Latency = 0;
Capabilities->D2Latency = 0;
Capabilities->D3Latency = 0;
/* Fill out supported device states */
Capabilities->DeviceState[PowerSystemWorking] = PowerDeviceD0;
Capabilities->DeviceState[PowerSystemHibernate] = PowerDeviceD3;
Capabilities->DeviceState[PowerSystemShutdown] = PowerDeviceD3;
Capabilities->DeviceState[PowerSystemSleeping3] = PowerDeviceD3;
/* Done */
Status = STATUS_SUCCESS;
}
@ -345,7 +345,7 @@ HalpQueryCapabilities(IN PDEVICE_OBJECT DeviceObject,
/* Fail */
Status = STATUS_NOT_SUPPORTED;
}
/* Return status */
return Status;
}
@ -363,16 +363,16 @@ HalpQueryResources(IN PDEVICE_OBJECT DeviceObject,
PCM_PARTIAL_RESOURCE_DESCRIPTOR PartialDesc;
ULONG i;
PAGED_CODE();
/* Only the ACPI PDO has requirements */
if (DeviceExtension->PdoType == AcpiPdo)
{
/* Query ACPI requirements */
Status = HalpQueryAcpiResourceRequirements(&RequirementsList);
if (!NT_SUCCESS(Status)) return Status;
ASSERT(RequirementsList->AlternativeLists == 1);
/* Allocate the resourcel ist */
ResourceList = ExAllocatePoolWithTag(PagedPool,
sizeof(CM_RESOURCE_LIST),
@ -384,7 +384,7 @@ HalpQueryResources(IN PDEVICE_OBJECT DeviceObject,
ExFreePoolWithTag(RequirementsList, ' laH');
return Status;
}
/* Initialize it */
RtlZeroMemory(ResourceList, sizeof(CM_RESOURCE_LIST));
ResourceList->Count = 1;
@ -432,7 +432,7 @@ HalpQueryResources(IN PDEVICE_OBJECT DeviceObject,
else if (DeviceExtension->PdoType == WdPdo)
{
/* Watchdog doesn't */
return STATUS_NOT_SUPPORTED;
return STATUS_NOT_SUPPORTED;
}
else
{
@ -448,7 +448,7 @@ HalpQueryResourceRequirements(IN PDEVICE_OBJECT DeviceObject,
{
PPDO_EXTENSION DeviceExtension = DeviceObject->DeviceExtension;
PAGED_CODE();
/* Only the ACPI PDO has requirements */
if (DeviceExtension->PdoType == AcpiPdo)
{
@ -458,7 +458,7 @@ HalpQueryResourceRequirements(IN PDEVICE_OBJECT DeviceObject,
else if (DeviceExtension->PdoType == WdPdo)
{
/* Watchdog doesn't */
return STATUS_NOT_SUPPORTED;
return STATUS_NOT_SUPPORTED;
}
else
{
@ -478,7 +478,7 @@ HalpQueryIdPdo(IN PDEVICE_OBJECT DeviceObject,
PWCHAR CurrentId;
WCHAR Id[100];
NTSTATUS Status;
ULONG Length = 0;
SIZE_T Length = 0;
PWCHAR Buffer;
/* Get the PDO type */
@ -491,7 +491,7 @@ HalpQueryIdPdo(IN PDEVICE_OBJECT DeviceObject,
{
case BusQueryDeviceID:
case BusQueryHardwareIDs:
/* What kind of PDO is this? */
if (PdoType == AcpiPdo)
{
@ -521,7 +521,7 @@ HalpQueryIdPdo(IN PDEVICE_OBJECT DeviceObject,
return STATUS_NOT_SUPPORTED;
}
break;
case BusQueryInstanceID:
/* Instance ID */
@ -529,15 +529,15 @@ HalpQueryIdPdo(IN PDEVICE_OBJECT DeviceObject,
RtlCopyMemory(Id, CurrentId, (wcslen(CurrentId) * sizeof(WCHAR)) + sizeof(UNICODE_NULL));
Length += (wcslen(CurrentId) * sizeof(WCHAR)) + sizeof(UNICODE_NULL);
break;
case BusQueryCompatibleIDs:
default:
/* We don't support anything else */
return STATUS_NOT_SUPPORTED;
}
/* Allocate the buffer */
Buffer = ExAllocatePoolWithTag(PagedPool,
Length + sizeof(UNICODE_NULL),
@ -547,7 +547,7 @@ HalpQueryIdPdo(IN PDEVICE_OBJECT DeviceObject,
/* Copy the string and null-terminate it */
RtlCopyMemory(Buffer, Id, Length);
Buffer[Length / sizeof(WCHAR)] = UNICODE_NULL;
/* Return string */
*BusQueryId = Buffer;
Status = STATUS_SUCCESS;
@ -558,11 +558,11 @@ HalpQueryIdPdo(IN PDEVICE_OBJECT DeviceObject,
/* Fail */
Status = STATUS_INSUFFICIENT_RESOURCES;
}
/* Return status */
return Status;
}
NTSTATUS
NTAPI
HalpQueryIdFdo(IN PDEVICE_OBJECT DeviceObject,
@ -570,10 +570,10 @@ HalpQueryIdFdo(IN PDEVICE_OBJECT DeviceObject,
OUT PUSHORT *BusQueryId)
{
NTSTATUS Status;
ULONG Length;
SIZE_T Length;
PWCHAR Id;
PWCHAR Buffer;
/* What kind of ID is being requested? */
DPRINT("ID: %d\n", IdType);
switch (IdType)
@ -584,26 +584,26 @@ HalpQueryIdFdo(IN PDEVICE_OBJECT DeviceObject,
break;
case BusQueryHardwareIDs:
/* This is our hardware ID */
Id = HalHardwareIdString;
break;
case BusQueryInstanceID:
/* And our instance ID */
Id = L"0";
break;
default:
/* We don't support anything else */
return STATUS_NOT_SUPPORTED;
}
/* Calculate the length */
Length = (wcslen(Id) * sizeof(WCHAR)) + sizeof(UNICODE_NULL);
/* Allocate the buffer */
Buffer = ExAllocatePoolWithTag(PagedPool,
Length + sizeof(UNICODE_NULL),
@ -639,12 +639,12 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject,
PFDO_EXTENSION FdoExtension;
NTSTATUS Status;
UCHAR Minor;
/* Get the device extension and stack location */
FdoExtension = DeviceObject->DeviceExtension;
IoStackLocation = IoGetCurrentIrpStackLocation(Irp);
Minor = IoStackLocation->MinorFunction;
/* FDO? */
if (FdoExtension->ExtensionType == FdoExtensionType)
{
@ -652,14 +652,14 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject,
switch (Minor)
{
case IRP_MN_QUERY_DEVICE_RELATIONS:
/* Call the worker */
DPRINT("Querying device relations for FDO\n");
Status = HalpQueryDeviceRelations(DeviceObject,
IoStackLocation->Parameters.QueryDeviceRelations.Type,
(PVOID)&Irp->IoStatus.Information);
break;
case IRP_MN_QUERY_INTERFACE:
/* Call the worker */
@ -672,27 +672,27 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject,
IoStackLocation->Parameters.QueryInterface.Interface,
(PVOID)&Irp->IoStatus.Information);
break;
case IRP_MN_QUERY_ID:
/* Call the worker */
DPRINT("Querying ID for FDO\n");
Status = HalpQueryIdFdo(DeviceObject,
IoStackLocation->Parameters.QueryId.IdType,
(PVOID)&Irp->IoStatus.Information);
break;
case IRP_MN_QUERY_CAPABILITIES:
/* Call the worker */
DPRINT("Querying the capabilities for the FDO\n");
Status = HalpQueryCapabilities(DeviceObject,
IoStackLocation->Parameters.DeviceCapabilities.Capabilities);
break;
default:
DPRINT("Other IRP: %lx\n", Minor);
Status = Irp->IoStatus.Status;
break;
@ -711,41 +711,41 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject,
/* Query the IRP type */
Status = STATUS_SUCCESS;
switch (Minor)
{
{
case IRP_MN_START_DEVICE:
/* We only care about a PCI PDO */
DPRINT1("Start device received\n");
/* Complete the IRP normally */
break;
case IRP_MN_REMOVE_DEVICE:
/* Check if this is a PCI device */
DPRINT1("Remove device received\n");
/* We're done */
Status = STATUS_SUCCESS;
break;
case IRP_MN_SURPRISE_REMOVAL:
/* Inherit whatever status we had */
DPRINT1("Surprise removal IRP\n");
Status = Irp->IoStatus.Status;
break;
case IRP_MN_QUERY_DEVICE_RELATIONS:
/* Query the device relations */
DPRINT("Querying PDO relations\n");
Status = HalpQueryDeviceRelations(DeviceObject,
IoStackLocation->Parameters.QueryDeviceRelations.Type,
(PVOID)&Irp->IoStatus.Information);
break;
case IRP_MN_QUERY_INTERFACE:
/* Call the worker */
DPRINT("Querying interface for PDO\n");
Status = HalpQueryInterface(DeviceObject,
@ -756,24 +756,24 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject,
IoStackLocation->Parameters.QueryInterface.Interface,
(PVOID)&Irp->IoStatus.Information);
break;
case IRP_MN_QUERY_CAPABILITIES:
/* Call the worker */
DPRINT("Querying the capabilities for the PDO\n");
Status = HalpQueryCapabilities(DeviceObject,
IoStackLocation->Parameters.DeviceCapabilities.Capabilities);
break;
case IRP_MN_QUERY_RESOURCES:
/* Call the worker */
DPRINT("Querying the resources for the PDO\n");
Status = HalpQueryResources(DeviceObject, (PVOID)&Irp->IoStatus.Information);
break;
case IRP_MN_QUERY_RESOURCE_REQUIREMENTS:
/* Call the worker */
DPRINT("Querying the resource requirements for the PDO\n");
Status = HalpQueryResourceRequirements(DeviceObject,
@ -781,25 +781,25 @@ HalpDispatchPnp(IN PDEVICE_OBJECT DeviceObject,
break;
case IRP_MN_QUERY_ID:
/* Call the worker */
DPRINT("Query the ID for the PDO\n");
Status = HalpQueryIdPdo(DeviceObject,
IoStackLocation->Parameters.QueryId.IdType,
(PVOID)&Irp->IoStatus.Information);
break;
default:
/* We don't handle anything else, so inherit the old state */
DPRINT("Illegal IRP: %lx\n", Minor);
Status = Irp->IoStatus.Status;
break;
}
/* If it's not supported, inherit the old status */
if (Status == STATUS_NOT_SUPPORTED) Status = Irp->IoStatus.Status;
/* Complete the IRP */
DPRINT("IRP completed with status: %lx\n", Status);
Irp->IoStatus.Status = Status;
@ -815,7 +815,7 @@ HalpDispatchWmi(IN PDEVICE_OBJECT DeviceObject,
{
DPRINT1("HAL: PnP Driver WMI!\n");
while (TRUE);
return STATUS_SUCCESS;
return STATUS_SUCCESS;
}
NTSTATUS
@ -824,7 +824,7 @@ HalpDispatchPower(IN PDEVICE_OBJECT DeviceObject,
IN PIRP Irp)
{
DPRINT1("HAL: PnP Driver Power!\n");
return STATUS_SUCCESS;
return STATUS_SUCCESS;
}
NTSTATUS
@ -890,7 +890,7 @@ HaliInitPnpDriver(VOID)
NTSTATUS Status;
UNICODE_STRING DriverString;
PAGED_CODE();
/* Create the driver */
RtlInitUnicodeString(&DriverString, L"\\Driver\\ACPI_HAL");
Status = IoCreateDriver(&DriverString, HalpDriverEntry);

View file

@ -309,7 +309,7 @@ HalpGrowMapBuffers(IN PADAPTER_OBJECT AdapterObject,
}
RtlClearBit(AdapterObject->MapRegisters,
CurrentEntry - AdapterObject->MapRegisterBase);
(ULONG)(CurrentEntry - AdapterObject->MapRegisterBase));
CurrentEntry->VirtualAddress = VirtualAddress;
CurrentEntry->PhysicalAddress = PhysicalAddress;
@ -553,7 +553,7 @@ HalpDmaInitializeEisaAdapter(IN PADAPTER_OBJECT AdapterObject,
{
/* Set the Request Data */
WRITE_PORT_UCHAR(&((PDMA1_CONTROL)AdapterBaseVa)->Mode, DmaMode.Byte);
/* Unmask DMA Channel */
WRITE_PORT_UCHAR(&((PDMA1_CONTROL)AdapterBaseVa)->SingleMask,
AdapterObject->ChannelNumber | DMA_CLEARMASK);
@ -562,7 +562,7 @@ HalpDmaInitializeEisaAdapter(IN PADAPTER_OBJECT AdapterObject,
{
/* Set the Request Data */
WRITE_PORT_UCHAR(&((PDMA2_CONTROL)AdapterBaseVa)->Mode, DmaMode.Byte);
/* Unmask DMA Channel */
WRITE_PORT_UCHAR(&((PDMA2_CONTROL)AdapterBaseVa)->SingleMask,
AdapterObject->ChannelNumber | DMA_CLEARMASK);
@ -917,7 +917,7 @@ typedef struct _SCATTER_GATHER_CONTEXT {
ULONG MapRegisterCount;
BOOLEAN WriteToDevice;
} SCATTER_GATHER_CONTEXT, *PSCATTER_GATHER_CONTEXT;
IO_ALLOCATION_ACTION
NTAPI
@ -932,10 +932,10 @@ HalpScatterGatherAdapterControl(IN PDEVICE_OBJECT DeviceObject,
SCATTER_GATHER_ELEMENT TempElements[MAX_SG_ELEMENTS];
ULONG ElementCount = 0, RemainingLength = AdapterControlContext->Length;
PUCHAR CurrentVa = AdapterControlContext->CurrentVa;
/* Store the map register base for later in HalPutScatterGatherList */
AdapterControlContext->MapRegisterBase = MapRegisterBase;
while (RemainingLength > 0 && ElementCount < MAX_SG_ELEMENTS)
{
TempElements[ElementCount].Length = RemainingLength;
@ -948,16 +948,16 @@ HalpScatterGatherAdapterControl(IN PDEVICE_OBJECT DeviceObject,
AdapterControlContext->WriteToDevice);
if (TempElements[ElementCount].Length == 0)
break;
DPRINT("Allocated one S/G element: 0x%I64u with length: 0x%x\n",
TempElements[ElementCount].Address.QuadPart,
TempElements[ElementCount].Length);
ASSERT(TempElements[ElementCount].Length <= RemainingLength);
RemainingLength -= TempElements[ElementCount].Length;
ElementCount++;
}
if (RemainingLength > 0)
{
DPRINT1("Scatter/gather list construction failed!\n");
@ -974,14 +974,14 @@ HalpScatterGatherAdapterControl(IN PDEVICE_OBJECT DeviceObject,
RtlCopyMemory(ScatterGatherList->Elements,
TempElements,
sizeof(SCATTER_GATHER_ELEMENT) * ElementCount);
DPRINT("Initiating S/G DMA with %d element(s)\n", ElementCount);
AdapterControlContext->AdapterListControlRoutine(DeviceObject,
Irp,
ScatterGatherList,
AdapterControlContext->AdapterListControlContext);
return DeallocateObjectKeepRegisters;
}
@ -1025,10 +1025,10 @@ HalpScatterGatherAdapterControl(IN PDEVICE_OBJECT DeviceObject,
IN BOOLEAN WriteToDevice)
{
PSCATTER_GATHER_CONTEXT AdapterControlContext;
AdapterControlContext = ExAllocatePoolWithTag(NonPagedPool, sizeof(SCATTER_GATHER_CONTEXT), TAG_DMA);
if (!AdapterControlContext) return STATUS_INSUFFICIENT_RESOURCES;
AdapterControlContext->AdapterObject = AdapterObject;
AdapterControlContext->Mdl = Mdl;
AdapterControlContext->CurrentVa = CurrentVa;
@ -1037,7 +1037,7 @@ HalpScatterGatherAdapterControl(IN PDEVICE_OBJECT DeviceObject,
AdapterControlContext->AdapterListControlRoutine = ExecutionRoutine;
AdapterControlContext->AdapterListControlContext = Context;
AdapterControlContext->WriteToDevice = WriteToDevice;
return IoAllocateAdapterChannel(AdapterObject,
DeviceObject,
AdapterControlContext->MapRegisterCount,
@ -1071,7 +1071,7 @@ HalpScatterGatherAdapterControl(IN PDEVICE_OBJECT DeviceObject,
{
PSCATTER_GATHER_CONTEXT AdapterControlContext = (PSCATTER_GATHER_CONTEXT)ScatterGather->Reserved;
ULONG i;
for (i = 0; i < ScatterGather->NumberOfElements; i++)
{
IoFlushAdapterBuffers(AdapterObject,
@ -1086,9 +1086,9 @@ HalpScatterGatherAdapterControl(IN PDEVICE_OBJECT DeviceObject,
IoFreeMapRegisters(AdapterObject,
AdapterControlContext->MapRegisterBase,
AdapterControlContext->MapRegisterCount);
DPRINT("S/G DMA has finished!\n");
ExFreePoolWithTag(AdapterControlContext, TAG_DMA);
ExFreePoolWithTag(ScatterGather, TAG_DMA);
}
@ -1141,10 +1141,10 @@ HalReadDmaCounter(IN PADAPTER_OBJECT AdapterObject)
do
{
OldCount = Count;
/* Send Reset */
WRITE_PORT_UCHAR(&DmaControl1->ClearBytePointer, 0);
/* Read Count */
Count = READ_PORT_UCHAR(&DmaControl1->DmaAddressCount
[AdapterObject->ChannelNumber].DmaBaseCount);
@ -1160,10 +1160,10 @@ HalReadDmaCounter(IN PADAPTER_OBJECT AdapterObject)
do
{
OldCount = Count;
/* Send Reset */
WRITE_PORT_UCHAR(&DmaControl2->ClearBytePointer, 0);
/* Read Count */
Count = READ_PORT_UCHAR(&DmaControl2->DmaAddressCount
[AdapterObject->ChannelNumber].DmaBaseCount);
@ -1327,7 +1327,7 @@ HalAllocateAdapterChannel(IN PADAPTER_OBJECT AdapterObject,
if (Index == MAXULONG)
{
InsertTailList(&MasterAdapter->AdapterQueue, &AdapterObject->AdapterQueue);
WorkItem = ExAllocatePoolWithTag(NonPagedPool,
sizeof(GROW_WORK_ITEM),
TAG_DMA);
@ -1439,7 +1439,7 @@ IoFreeAdapterChannel(IN PADAPTER_OBJECT AdapterObject)
DeviceQueueEntry = KeRemoveDeviceQueue(&AdapterObject->ChannelWaitQueue);
if (!DeviceQueueEntry) break;
WaitContextBlock = CONTAINING_RECORD(DeviceQueueEntry,
WAIT_CONTEXT_BLOCK,
WaitQueueEntry);
@ -1547,7 +1547,7 @@ IoFreeMapRegisters(IN PADAPTER_OBJECT AdapterObject,
RealMapRegisterBase = (PROS_MAP_REGISTER_ENTRY)((ULONG_PTR)MapRegisterBase & ~MAP_BASE_SW_SG);
RtlClearBits(MasterAdapter->MapRegisters,
RealMapRegisterBase - MasterAdapter->MapRegisterBase,
(ULONG)(RealMapRegisterBase - MasterAdapter->MapRegisterBase),
NumberOfMapRegisters);
}
@ -1593,12 +1593,12 @@ IoFreeMapRegisters(IN PADAPTER_OBJECT AdapterObject,
{
KeAcquireSpinLock(&MasterAdapter->SpinLock, &OldIrql);
RtlClearBits(MasterAdapter->MapRegisters,
AdapterObject->MapRegisterBase -
MasterAdapter->MapRegisterBase,
(ULONG)(AdapterObject->MapRegisterBase -
MasterAdapter->MapRegisterBase),
AdapterObject->NumberOfMapRegisters);
KeReleaseSpinLock(&MasterAdapter->SpinLock, OldIrql);
}
IoFreeAdapterChannel(AdapterObject);
break;
@ -2011,16 +2011,16 @@ IoMapTransfer(IN PADAPTER_OBJECT AdapterObject,
/* Reset Register */
WRITE_PORT_UCHAR(&DmaControl1->ClearBytePointer, 0);
/* Set the Mode */
WRITE_PORT_UCHAR(&DmaControl1->Mode, AdapterMode.Byte);
/* Set the Offset Register */
WRITE_PORT_UCHAR(&DmaControl1->DmaAddressCount[AdapterObject->ChannelNumber].DmaBaseAddress,
(UCHAR)(TransferOffset));
WRITE_PORT_UCHAR(&DmaControl1->DmaAddressCount[AdapterObject->ChannelNumber].DmaBaseAddress,
(UCHAR)(TransferOffset >> 8));
/* Set the Page Register */
WRITE_PORT_UCHAR(AdapterObject->PagePort + FIELD_OFFSET(EISA_CONTROL, DmaController1Pages),
(UCHAR)(PhysicalAddress.LowPart >> 16));
@ -2029,13 +2029,13 @@ IoMapTransfer(IN PADAPTER_OBJECT AdapterObject,
WRITE_PORT_UCHAR(AdapterObject->PagePort + FIELD_OFFSET(EISA_CONTROL, DmaController2Pages),
0);
}
/* Set the Length */
WRITE_PORT_UCHAR(&DmaControl1->DmaAddressCount[AdapterObject->ChannelNumber].DmaBaseCount,
(UCHAR)(TransferLength - 1));
WRITE_PORT_UCHAR(&DmaControl1->DmaAddressCount[AdapterObject->ChannelNumber].DmaBaseCount,
(UCHAR)((TransferLength - 1) >> 8));
/* Unmask the Channel */
WRITE_PORT_UCHAR(&DmaControl1->SingleMask, AdapterObject->ChannelNumber | DMA_CLEARMASK);
}
@ -2045,16 +2045,16 @@ IoMapTransfer(IN PADAPTER_OBJECT AdapterObject,
/* Reset Register */
WRITE_PORT_UCHAR(&DmaControl2->ClearBytePointer, 0);
/* Set the Mode */
WRITE_PORT_UCHAR(&DmaControl2->Mode, AdapterMode.Byte);
/* Set the Offset Register */
WRITE_PORT_UCHAR(&DmaControl2->DmaAddressCount[AdapterObject->ChannelNumber].DmaBaseAddress,
(UCHAR)(TransferOffset));
WRITE_PORT_UCHAR(&DmaControl2->DmaAddressCount[AdapterObject->ChannelNumber].DmaBaseAddress,
(UCHAR)(TransferOffset >> 8));
/* Set the Page Register */
WRITE_PORT_UCHAR(AdapterObject->PagePort + FIELD_OFFSET(EISA_CONTROL, DmaController1Pages),
(UCHAR)(PhysicalAddress.u.LowPart >> 16));
@ -2063,13 +2063,13 @@ IoMapTransfer(IN PADAPTER_OBJECT AdapterObject,
WRITE_PORT_UCHAR(AdapterObject->PagePort + FIELD_OFFSET(EISA_CONTROL, DmaController2Pages),
0);
}
/* Set the Length */
WRITE_PORT_UCHAR(&DmaControl2->DmaAddressCount[AdapterObject->ChannelNumber].DmaBaseCount,
(UCHAR)(TransferLength - 1));
WRITE_PORT_UCHAR(&DmaControl2->DmaAddressCount[AdapterObject->ChannelNumber].DmaBaseCount,
(UCHAR)((TransferLength - 1) >> 8));
/* Unmask the Channel */
WRITE_PORT_UCHAR(&DmaControl2->SingleMask,
AdapterObject->ChannelNumber | DMA_CLEARMASK);

View file

@ -31,21 +31,21 @@ HalpAllocPhysicalMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
IN PFN_NUMBER PageCount,
IN BOOLEAN Aligned)
{
ULONG UsedDescriptors, Alignment;
ULONG UsedDescriptors;
ULONG_PTR PhysicalAddress;
PFN_NUMBER MaxPage, BasePage;
PFN_NUMBER MaxPage, BasePage, Alignment;
PLIST_ENTRY NextEntry;
PMEMORY_ALLOCATION_DESCRIPTOR MdBlock, NewBlock, FreeBlock;
/* Highest page we'll go */
MaxPage = MaxAddress >> PAGE_SHIFT;
/* We need at least two blocks */
if ((HalpUsedAllocDescriptors + 2) > 64) return 0;
/* Remember how many we have now */
UsedDescriptors = HalpUsedAllocDescriptors;
/* Loop the loader block memory descriptors */
NextEntry = LoaderBlock->MemoryDescriptorListHead.Flink;
while (NextEntry != &LoaderBlock->MemoryDescriptorListHead)
@ -54,13 +54,13 @@ HalpAllocPhysicalMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
MdBlock = CONTAINING_RECORD(NextEntry,
MEMORY_ALLOCATION_DESCRIPTOR,
ListEntry);
/* No alignment by default */
Alignment = 0;
/* Unless requested, in which case we use a 64KB block alignment */
if (Aligned) Alignment = ((MdBlock->BasePage + 0x0F) & ~0x0F) - MdBlock->BasePage;
/* Search for free memory */
if ((MdBlock->MemoryType == LoaderFree) ||
(MdBlock->MemoryType == LoaderFirmwareTemporary))
@ -71,30 +71,30 @@ HalpAllocPhysicalMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
(MdBlock->PageCount >= PageCount + Alignment) &&
(BasePage + PageCount + Alignment < MaxPage))
{
/* We found an address */
PhysicalAddress = (BasePage + Alignment) << PAGE_SHIFT;
break;
}
}
/* Keep trying */
NextEntry = NextEntry->Flink;
}
/* If we didn't find anything, get out of here */
if (NextEntry == &LoaderBlock->MemoryDescriptorListHead) return 0;
/* Okay, now get a descriptor */
NewBlock = &HalpAllocationDescriptorArray[HalpUsedAllocDescriptors];
NewBlock->PageCount = (ULONG)PageCount;
NewBlock->BasePage = MdBlock->BasePage + Alignment;
NewBlock->MemoryType = LoaderHALCachedMemory;
/* Update count */
UsedDescriptors++;
HalpUsedAllocDescriptors = UsedDescriptors;
/* Check if we had any alignment */
if (Alignment)
{
@ -105,14 +105,14 @@ HalpAllocPhysicalMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
FreeBlock = &HalpAllocationDescriptorArray[UsedDescriptors];
FreeBlock->PageCount = MdBlock->PageCount - Alignment - (ULONG)PageCount;
FreeBlock->BasePage = MdBlock->BasePage + Alignment + (ULONG)PageCount;
/* One more */
HalpUsedAllocDescriptors++;
/* Insert it into the list */
InsertHeadList(&MdBlock->ListEntry, &FreeBlock->ListEntry);
}
/* Trim the original block to the alignment only */
MdBlock->PageCount = Alignment;
@ -124,7 +124,7 @@ HalpAllocPhysicalMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
/* Consume memory from this block */
MdBlock->BasePage += (ULONG)PageCount;
MdBlock->PageCount -= (ULONG)PageCount;
/* Insert the descriptor before the original one */
InsertTailList(&MdBlock->ListEntry, &NewBlock->ListEntry);
@ -139,7 +139,7 @@ HalpAllocPhysicalMemory(IN PLOADER_PARAMETER_BLOCK LoaderBlock,
PVOID
NTAPI
HalpMapPhysicalMemory64(IN PHYSICAL_ADDRESS PhysicalAddress,
IN PFN_NUMBER PageCount)
IN PFN_COUNT PageCount)
{
PHARDWARE_PTE PointerPte;
PFN_NUMBER UsedPages = 0;
@ -207,7 +207,7 @@ HalpMapPhysicalMemory64(IN PHYSICAL_ADDRESS PhysicalAddress,
VOID
NTAPI
HalpUnmapVirtualAddress(IN PVOID VirtualAddress,
IN PFN_NUMBER PageCount)
IN PFN_COUNT PageCount)
{
PHARDWARE_PTE PointerPte;
ULONG i;

View file

@ -47,7 +47,7 @@ HalpReportSerialNumber(VOID)
REG_BINARY,
HalpSerialNumber,
HalpSerialLen);
/* Close the handle */
ZwClose(Handle);
}
@ -63,7 +63,7 @@ HalpMarkAcpiHal(VOID)
HANDLE KeyHandle;
HANDLE Handle;
ULONG Value = HalDisableFirmwareMapper ? 1 : 0;
/* Open the control set key */
RtlInitUnicodeString(&KeyString,
L"\\REGISTRY\\MACHINE\\SYSTEM\\CURRENTCONTROLSET");
@ -79,7 +79,7 @@ HalpMarkAcpiHal(VOID)
TRUE);
/* Close root key */
ZwClose(Handle);
/* Check if PNP BIOS key exists */
if (NT_SUCCESS(Status))
{
@ -91,28 +91,28 @@ HalpMarkAcpiHal(VOID)
REG_DWORD,
&Value,
sizeof(Value));
/* Close subkey */
ZwClose(KeyHandle);
}
}
/* Return status */
return Status;
}
NTSTATUS
NTSTATUS
NTAPI
HalpOpenRegistryKey(IN PHANDLE KeyHandle,
IN HANDLE RootKey,
IN PUNICODE_STRING KeyName,
IN ACCESS_MASK DesiredAccess,
IN ACCESS_MASK DesiredAccess,
IN BOOLEAN Create)
{
NTSTATUS Status;
ULONG Disposition;
OBJECT_ATTRIBUTES ObjectAttributes;
/* Setup the attributes we received */
InitializeObjectAttributes(&ObjectAttributes,
KeyName,
@ -137,7 +137,7 @@ HalpOpenRegistryKey(IN PHANDLE KeyHandle,
/* Open the key */
Status = ZwOpenKey(KeyHandle, DesiredAccess, &ObjectAttributes);
}
/* We're done */
return Status;
}
@ -157,7 +157,7 @@ VOID
NTAPI
HalpFlushTLB(VOID)
{
ULONG Flags, Cr4;
ULONG_PTR Flags, Cr4;
INT CpuInfo[4];
ULONG_PTR PageDirectory;
@ -250,7 +250,7 @@ HalHandleNMI(IN PVOID NmiInfo)
//
// Fill the screen
//
InbvSolidColorFill(0, 0, 639, 479, 1);
InbvSolidColorFill(0, 0, 639, 479, 1);
InbvSetScrollRegion(0, 0, 639, 479);
//

View file

@ -21,7 +21,7 @@
/* GLOBALS *******************************************************************/
ULONG HalpSystemHardwareFlags;
ULONG_PTR HalpSystemHardwareFlags;
KSPIN_LOCK HalpSystemHardwareLock;
/* FUNCTIONS *****************************************************************/
@ -226,7 +226,7 @@ VOID
NTAPI
HalpAcquireCmosSpinLock(VOID)
{
ULONG Flags;
ULONG_PTR Flags;
/* Get flags and disable interrupts */
Flags = __readeflags();
@ -243,7 +243,7 @@ VOID
NTAPI
HalpReleaseCmosSpinLock(VOID)
{
ULONG Flags;
ULONG_PTR Flags;
/* Get the flags */
Flags = HalpSystemHardwareFlags;

View file

@ -72,28 +72,28 @@ HalpGetResourceSortValue(IN PCM_PARTIAL_RESOURCE_DESCRIPTOR Descriptor,
switch (Descriptor->Type)
{
case CmResourceTypeInterrupt:
/* Interrupt goes by level */
*Scale = 0;
*Value = RtlConvertUlongToLargeInteger(Descriptor->u.Interrupt.Level);
break;
case CmResourceTypePort:
/* Port goes by port address */
*Scale = 1;
*Value = Descriptor->u.Port.Start;
break;
case CmResourceTypeMemory:
/* Memory goes by base address */
*Scale = 2;
*Value = Descriptor->u.Memory.Start;
break;
default:
/* Anything else */
*Scale = 4;
*Value = RtlConvertUlongToLargeInteger(0);
@ -111,7 +111,7 @@ HalpBuildPartialFromIdt(IN ULONG Entry,
/* Exclusive interrupt entry */
RawDescriptor->Type = CmResourceTypeInterrupt;
RawDescriptor->ShareDisposition = CmResourceShareDriverExclusive;
/* Check the interrupt type */
if (HalpIDTUsageFlags[Entry].Flags & IDT_LATCHED)
{
@ -127,13 +127,13 @@ HalpBuildPartialFromIdt(IN ULONG Entry,
/* Get vector and level from IDT usage */
RawDescriptor->u.Interrupt.Vector = HalpIDTUsage[Entry].BusReleativeVector;
RawDescriptor->u.Interrupt.Level = HalpIDTUsage[Entry].BusReleativeVector;
/* Affinity is all the CPUs */
RawDescriptor->u.Interrupt.Affinity = HalpActiveProcessors;
/* The translated copy is identical */
RtlCopyMemory(TranslatedDescriptor, RawDescriptor, sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR));
/* But the vector and IRQL must be set correctly */
TranslatedDescriptor->u.Interrupt.Vector = Entry;
TranslatedDescriptor->u.Interrupt.Level = HalpIDTUsage[Entry].Irql;
@ -149,11 +149,11 @@ HalpBuildPartialFromAddress(IN INTERFACE_TYPE Interface,
IN PCM_PARTIAL_RESOURCE_DESCRIPTOR TranslatedDescriptor)
{
ULONG AddressSpace;
/* Set the type and make it exclusive */
RawDescriptor->Type = CurrentAddress->Type;
RawDescriptor->ShareDisposition = CmResourceShareDriverExclusive;
/* Check what this is */
if (RawDescriptor->Type == CmResourceTypePort)
{
@ -163,7 +163,7 @@ HalpBuildPartialFromAddress(IN INTERFACE_TYPE Interface,
RawDescriptor->u.Port.Start.HighPart = 0;
RawDescriptor->u.Port.Start.LowPart = CurrentAddress->Element[Element].Start;
RawDescriptor->u.Port.Length = CurrentAddress->Element[Element].Length;
/* Determine if 16-bit port addresses are allowed */
RawDescriptor->Flags |= HalpIs16BitPortDecodeSupported();
}
@ -178,10 +178,10 @@ HalpBuildPartialFromAddress(IN INTERFACE_TYPE Interface,
RawDescriptor->u.Memory.Start.LowPart = CurrentAddress->Element[Element].Start;
RawDescriptor->u.Memory.Length = CurrentAddress->Element[Element].Length;
}
/* Make an identical copy to begin with */
RtlCopyMemory(TranslatedDescriptor, RawDescriptor, sizeof(CM_PARTIAL_RESOURCE_DESCRIPTOR));
/* Check what this is */
if (RawDescriptor->Type == CmResourceTypePort)
{
@ -191,7 +191,7 @@ HalpBuildPartialFromAddress(IN INTERFACE_TYPE Interface,
RawDescriptor->u.Port.Start,
&AddressSpace,
&TranslatedDescriptor->u.Port.Start);
/* If it turns out this is memory once translated, flag it */
if (AddressSpace == 0) TranslatedDescriptor->Flags = CM_RESOURCE_PORT_MEMORY;
@ -223,18 +223,18 @@ HalpReportResourceUsage(IN PUNICODE_STRING HalName,
ADDRESS_USAGE *CurrentAddress;
LARGE_INTEGER CurrentSortValue, SortValue;
DbgPrint("%wZ Detected\n", HalName);
/* Check if KD is using a COM port */
if (KdComPortInUse)
{
/* Enter it into the I/O space */
HalpComIoSpace.Element[0].Start = (ULONG_PTR)KdComPortInUse;
HalpComIoSpace.Element[0].Start = PtrToUlong(KdComPortInUse);
HalpComIoSpace.Next = HalpAddressUsageList;
HalpAddressUsageList = &HalpComIoSpace;
/* Use the debug port table if we have one */
HalpGetInfoFromACPI = HalpGetDebugPortTable();
/* Check if we're using ACPI */
if (!HalpGetInfoFromACPI)
{
@ -256,10 +256,10 @@ HalpReportResourceUsage(IN PUNICODE_STRING HalName,
}
}
}
/* On non-ACPI systems, we need to build an address map */
HalpBuildAddressMap();
/* Allocate the master raw and translated lists */
RawList = ExAllocatePoolWithTag(NonPagedPool, PAGE_SIZE * 2, ' laH');
TranslatedList = ExAllocatePoolWithTag(NonPagedPool, PAGE_SIZE * 2, ' laH');
@ -272,14 +272,14 @@ HalpReportResourceUsage(IN PUNICODE_STRING HalName,
(ULONG_PTR)__FILE__,
__LINE__);
}
/* Zero out the lists */
RtlZeroMemory(RawList, PAGE_SIZE * 2);
RtlZeroMemory(TranslatedList, PAGE_SIZE * 2);
/* Set the interface type to begin with */
RawList->List[0].InterfaceType = InterfaceTypeUndefined;
/* Loop all IDT entries that are not IRQs */
for (i = 0; i < PRIMARY_VECTOR_BASE; i++)
{
@ -291,20 +291,20 @@ HalpReportResourceUsage(IN PUNICODE_STRING HalName,
HalpIDTUsage[i].BusReleativeVector = (UCHAR)i;
}
}
/* Our full raw descriptors start here */
RawFull = RawList->List;
/* Keep track of the current partial raw and translated descriptors */
CurrentRaw = (PCM_PARTIAL_RESOURCE_DESCRIPTOR)RawList->List;
CurrentTranslated = (PCM_PARTIAL_RESOURCE_DESCRIPTOR)TranslatedList->List;
/* Do two passes */
for (ReportType = 0; ReportType < 2; ReportType++)
{
/* Pass 0 is for device usage */
if (ReportType == 0)
{
{
FlagMatch = IDT_DEVICE & ~IDT_REGISTERED;
Interface = InterfaceType;
}
@ -314,10 +314,10 @@ HalpReportResourceUsage(IN PUNICODE_STRING HalName,
FlagMatch = IDT_INTERNAL & ~IDT_REGISTERED;
Interface = Internal;
}
/* Reset loop variables */
i = Element = 0;
/* Start looping our address uage list and interrupts */
CurrentAddress = HalpAddressUsageList;
while (TRUE)
@ -343,7 +343,7 @@ HalpReportResourceUsage(IN PUNICODE_STRING HalName,
{
/* This is an address instead */
if (!CurrentAddress) break;
/* Check if the address should be reported */
if (!(CurrentAddress->Flags & FlagMatch) ||
!(CurrentAddress->Element[Element].Length))
@ -353,7 +353,7 @@ HalpReportResourceUsage(IN PUNICODE_STRING HalName,
CurrentAddress = CurrentAddress->Next;
continue;
}
/* Otherwise, parse the entry */
HalpBuildPartialFromAddress(Interface,
CurrentAddress,
@ -362,7 +362,7 @@ HalpReportResourceUsage(IN PUNICODE_STRING HalName,
&TranslatedPartial);
Element++;
}
/* Check for interface change */
if (RawFull->InterfaceType != Interface)
{
@ -373,67 +373,67 @@ HalpReportResourceUsage(IN PUNICODE_STRING HalName,
/* The full descriptor follows wherever we were */
RawFull = (PCM_FULL_RESOURCE_DESCRIPTOR)CurrentRaw;
TranslatedFull = (PCM_FULL_RESOURCE_DESCRIPTOR)CurrentTranslated;
/* And it is of this new interface type */
RawFull->InterfaceType = Interface;
TranslatedFull->InterfaceType = Interface;
/* And its partial descriptors begin here */
RawPartialList = &RawFull->PartialResourceList;
TranslatedPartialList = &TranslatedFull->PartialResourceList;
/* And our next full descriptor should follow here */
CurrentRaw = RawFull->PartialResourceList.PartialDescriptors;
CurrentTranslated = TranslatedFull->PartialResourceList.PartialDescriptors;
}
/* We have written a new partial descriptor */
RawPartialList->Count++;
TranslatedPartialList->Count++;
/* Copy our local descriptors into the actual list */
RtlCopyMemory(CurrentRaw, &RawPartial, sizeof(RawPartial));
RtlCopyMemory(CurrentTranslated, &TranslatedPartial, sizeof(TranslatedPartial));
/* Move to the next partial descriptor */
CurrentRaw++;
CurrentTranslated++;
}
}
/* Get the final list of the size for the kernel call later */
ListSize = (ULONG_PTR)CurrentRaw - (ULONG_PTR)RawList;
ListSize = (ULONG)((ULONG_PTR)CurrentRaw - (ULONG_PTR)RawList);
/* Now reset back to the first full descriptor */
RawFull = RawList->List;
TranslatedFull = TranslatedList->List;
/* And loop all the full descriptors */
for (i = 0; i < RawList->Count; i++)
{
/* Get the first partial descriptor in this list */
CurrentRaw = RawFull->PartialResourceList.PartialDescriptors;
CurrentTranslated = TranslatedFull->PartialResourceList.PartialDescriptors;
/* Get the count of partials in this list */
Count = RawFull->PartialResourceList.Count;
/* Loop all the partials in this list */
for (j = 0; j < Count; j++)
{
/* Get the sort value at this point */
HalpGetResourceSortValue(CurrentRaw, &CurrentScale, &CurrentSortValue);
/* Save the current sort pointer */
SortedRaw = CurrentRaw;
SortedTranslated = CurrentTranslated;
/* Loop all descriptors starting from this one */
for (k = j; k < Count; k++)
{
/* Get the sort value at the sort point */
HalpGetResourceSortValue(SortedRaw, &SortScale, &SortValue);
/* Check if a swap needs to occur */
if ((SortScale < CurrentScale) ||
((SortScale == CurrentScale) &&
@ -443,44 +443,44 @@ HalpReportResourceUsage(IN PUNICODE_STRING HalName,
RtlCopyMemory(&RawPartial, CurrentRaw, sizeof(RawPartial));
RtlCopyMemory(CurrentRaw, SortedRaw, sizeof(RawPartial));
RtlCopyMemory(SortedRaw, &RawPartial, sizeof(RawPartial));
/* Swap translated partial in the same way */
RtlCopyMemory(&TranslatedPartial, CurrentTranslated, sizeof(TranslatedPartial));
RtlCopyMemory(CurrentTranslated, SortedTranslated, sizeof(TranslatedPartial));
RtlCopyMemory(SortedTranslated, &TranslatedPartial, sizeof(TranslatedPartial));
/* Update the sort value at this point */
HalpGetResourceSortValue(CurrentRaw, &CurrentScale, &CurrentSortValue);
}
/* The sort location has been updated */
SortedRaw++;
SortedTranslated++;
}
/* Move to the next partial */
CurrentRaw++;
CurrentTranslated++;
}
/* Move to the next full descriptor */
RawFull = (PCM_FULL_RESOURCE_DESCRIPTOR)CurrentRaw;
TranslatedFull = (PCM_FULL_RESOURCE_DESCRIPTOR)CurrentTranslated;
}
/* Mark this is an ACPI system, if it is */
HalpMarkAcpiHal();
/* Tell the kernel about all this */
IoReportHalResourceUsage(HalName,
RawList,
TranslatedList,
ListSize);
/* Free our lists */
ExFreePool(RawList);
ExFreePool(TranslatedList);
/* Get the machine's serial number */
HalpReportSerialNumber();
}
@ -515,7 +515,7 @@ HalpEnableInterruptHandler(IN UCHAR Flags,
{
/* Set the IDT_LATCHED flag for latched interrupts */
if (Mode == Latched) Flags |= IDT_LATCHED;
/* Register the vector */
HalpRegisterVector(Flags, BusVector, SystemVector, Irql);
@ -537,7 +537,7 @@ HalpGetNMICrashFlag(VOID)
ULONG ResultLength;
HANDLE Handle;
NTSTATUS Status;
KEY_VALUE_PARTIAL_INFORMATION KeyValueInformation;
KEY_VALUE_PARTIAL_INFORMATION KeyValueInformation;
/* Set default */
HalpNMIDumpFlag = 0;
@ -548,7 +548,7 @@ HalpGetNMICrashFlag(VOID)
OBJ_CASE_INSENSITIVE,
NULL,
NULL);
/* Open crash key */
Status = ZwOpenKey(&Handle, KEY_READ, &ObjectAttributes);
if (NT_SUCCESS(Status))
@ -570,7 +570,7 @@ HalpGetNMICrashFlag(VOID)
HalpNMIDumpFlag = KeyValueInformation.Data[0];
}
}
/* We're done */
ZwClose(Handle);
}

View file

@ -652,14 +652,14 @@ PVOID
NTAPI
HalpMapPhysicalMemory64(
IN PHYSICAL_ADDRESS PhysicalAddress,
IN PFN_NUMBER PageCount
IN PFN_COUNT PageCount
);
VOID
NTAPI
HalpUnmapVirtualAddress(
IN PVOID VirtualAddress,
IN PFN_NUMBER NumberPages
IN PFN_COUNT NumberPages
);
/* sysinfo.c */
@ -846,7 +846,7 @@ HalpInitProcessor(
#define KfLowerIrql KeLowerIrql
#define KiEnterInterruptTrap(TrapFrame) /* We do all neccessary in asm code */
#define KiEoiHelper(TrapFrame) return /* Just return to the caller */
#define HalBeginSystemInterrupt(Irql, Vector, OldIrql) TRUE
#define HalBeginSystemInterrupt(Irql, Vector, OldIrql) ((*(OldIrql) = PASSIVE_LEVEL), TRUE)
#ifndef CONFIG_SMP
/* On UP builds, spinlocks don't exist at IRQL >= DISPATCH */
#define KiAcquireSpinLock(SpinLock)

View file

@ -539,7 +539,7 @@ HalpPCIPin2ISALine(IN PBUS_HANDLER BusHandler,
UNIMPLEMENTED;
while (TRUE);
}
VOID
NTAPI
HalpPCIISALine2Pin(IN PBUS_HANDLER BusHandler,
@ -560,30 +560,30 @@ HalpGetISAFixedPCIIrq(IN PBUS_HANDLER BusHandler,
OUT PSUPPORTED_RANGE *Range)
{
PCI_COMMON_HEADER PciData;
/* Read PCI configuration data */
HalGetBusData(PCIConfiguration,
BusHandler->BusNumber,
PciSlot.u.AsULONG,
&PciData,
PCI_COMMON_HDR_LENGTH);
/* Make sure it's a real device */
if (PciData.VendorID == PCI_INVALID_VENDORID) return STATUS_UNSUCCESSFUL;
/* Allocate the supported range structure */
*Range = ExAllocatePoolWithTag(PagedPool, sizeof(SUPPORTED_RANGE), TAG_HAL);
if (!*Range) return STATUS_INSUFFICIENT_RESOURCES;
/* Set it up */
RtlZeroMemory(*Range, sizeof(SUPPORTED_RANGE));
(*Range)->Base = 1;
/* If the PCI device has no IRQ, nothing to do */
if (!PciData.u.type0.InterruptPin) return STATUS_SUCCESS;
/* FIXME: The PCI IRQ Routing Miniport should be called */
/* Also if the INT# seems bogus, nothing to do either */
if ((PciData.u.type0.InterruptLine == 0) ||
(PciData.u.type0.InterruptLine == 255))
@ -591,7 +591,7 @@ HalpGetISAFixedPCIIrq(IN PBUS_HANDLER BusHandler,
/* Fake success */
return STATUS_SUCCESS;
}
/* Otherwise, the INT# should be valid, return it to the caller */
(*Range)->Base = PciData.u.type0.InterruptLine;
(*Range)->Limit = PciData.u.type0.InterruptLine;
@ -639,7 +639,7 @@ HalpRegisterPciDebuggingDeviceInfo(VOID)
/* Bail out if there aren't any */
if (!Found) return;
/* FIXME: TODO */
DPRINT1("You have implemented the KD routines for searching PCI debugger"
"devices, but you have forgotten to implement this routine\n");
@ -664,11 +664,11 @@ HalpAdjustPCIResourceList(IN PBUS_HANDLER BusHandler,
PCI_SLOT_NUMBER SlotNumber;
PSUPPORTED_RANGE Interrupt;
NTSTATUS Status;
/* Get PCI bus data */
BusData = BusHandler->BusData;
SlotNumber.u.AsULONG = (*pResourceList)->SlotNumber;
/* Get the IRQ supported range */
Status = BusData->GetIrqRange(BusHandler, RootHandler, SlotNumber, &Interrupt);
if (!NT_SUCCESS(Status)) return Status;
@ -709,7 +709,7 @@ HalpAssignPCISlotResources(IN PBUS_HANDLER BusHandler,
{
PCI_COMMON_CONFIG PciConfig;
SIZE_T Address;
SIZE_T ResourceCount;
ULONG ResourceCount;
ULONG Size[PCI_TYPE0_ADDRESSES];
NTSTATUS Status = STATUS_SUCCESS;
UCHAR Offset;