192 lines
3.3 KiB
C
192 lines
3.3 KiB
C
/*++
|
||
|
||
Copyright (c) 1991 Microsoft Corporation
|
||
|
||
Module Name:
|
||
|
||
ixsproc.c
|
||
|
||
Abstract:
|
||
|
||
Stub functions for UP hals.
|
||
|
||
Author:
|
||
|
||
Ken Reneris (kenr) 22-Jan-1991
|
||
|
||
Environment:
|
||
|
||
Kernel mode only.
|
||
|
||
Revision History:
|
||
|
||
--*/
|
||
|
||
#include "halp.h"
|
||
|
||
#ifdef ALLOC_DATA_PRAGMA
|
||
#pragma data_seg("INITCONST") // INITCONST is OK to use for data_seg
|
||
#endif // ALLOC_DATA_PRAGMA
|
||
WCHAR HalHardwareIdString[] = L"e_isa_up\0";
|
||
|
||
#ifdef ALLOC_DATA_PRAGMA
|
||
#pragma data_seg()
|
||
#endif // ALLOC_DATA_PRAGMA
|
||
|
||
const UCHAR HalName[] = "PC Compatible Eisa/Isa HAL";
|
||
#define HalName L"PC Compatible Eisa/Isa HAL"
|
||
ULONG HalDisplayBusRanges;
|
||
|
||
BOOLEAN
|
||
HalpInitMP (
|
||
IN ULONG Phase,
|
||
IN PLOADER_PARAMETER_BLOCK LoaderBlock
|
||
);
|
||
|
||
VOID
|
||
HalpMcaInit (
|
||
VOID
|
||
);
|
||
|
||
VOID HalpInitOtherBuses (VOID);
|
||
VOID HalpInitializePciBus (VOID);
|
||
VOID HalpInitializePciStubs (VOID);
|
||
|
||
#ifdef ALLOC_PRAGMA
|
||
#pragma alloc_text(INIT,HalpInitMP)
|
||
#pragma alloc_text(INIT,HalStartNextProcessor)
|
||
#pragma alloc_text(INIT,HalAllProcessorsStarted)
|
||
#pragma alloc_text(INIT,HalReportResourceUsage)
|
||
#pragma alloc_text(INIT,HalpInitOtherBuses)
|
||
#endif
|
||
|
||
|
||
|
||
BOOLEAN
|
||
HalpInitMP (
|
||
IN ULONG Phase,
|
||
IN PLOADER_PARAMETER_BLOCK LoaderBlock
|
||
)
|
||
{
|
||
// do nothing
|
||
return TRUE;
|
||
}
|
||
|
||
|
||
VOID
|
||
HalpResetAllProcessors (
|
||
VOID
|
||
)
|
||
{
|
||
// Just return, that will invoke the standard PC reboot code
|
||
}
|
||
|
||
|
||
BOOLEAN
|
||
HalStartNextProcessor (
|
||
IN PLOADER_PARAMETER_BLOCK pLoaderBlock,
|
||
IN PKPROCESSOR_STATE pProcessorState
|
||
)
|
||
{
|
||
// no other processors
|
||
return FALSE;
|
||
}
|
||
|
||
BOOLEAN
|
||
HalAllProcessorsStarted (
|
||
VOID
|
||
)
|
||
{
|
||
if (HalpFeatureBits & HAL_NO_SPECULATION) {
|
||
|
||
//
|
||
// Processor doesn't perform speculative execeution,
|
||
// remove fences in critical code paths
|
||
//
|
||
|
||
HalpRemoveFences ();
|
||
}
|
||
|
||
return TRUE;
|
||
}
|
||
|
||
|
||
VOID
|
||
HalReportResourceUsage (
|
||
VOID
|
||
)
|
||
{
|
||
INTERFACE_TYPE interfacetype;
|
||
UNICODE_STRING UHalName;
|
||
|
||
HalInitSystemPhase2 ();
|
||
|
||
//
|
||
// Turn on MCA support if present
|
||
//
|
||
|
||
HalpMcaInit();
|
||
|
||
//
|
||
// Registry is now intialized, see if there are any PCI buses
|
||
//
|
||
|
||
HalpInitializePciBus ();
|
||
HalpInitializePciStubs ();
|
||
|
||
//
|
||
// Complete ALL bus initialization before reporting resource usage.
|
||
//
|
||
|
||
switch (HalpBusType) {
|
||
case MACHINE_TYPE_ISA: interfacetype = Isa; break;
|
||
case MACHINE_TYPE_EISA: interfacetype = Eisa; break;
|
||
case MACHINE_TYPE_MCA: interfacetype = MicroChannel; break;
|
||
default: interfacetype = Internal; break;
|
||
}
|
||
|
||
RtlInitUnicodeString (&UHalName, HalName);
|
||
HalpReportResourceUsage (
|
||
&UHalName, // descriptive name
|
||
interfacetype // device space interface type
|
||
);
|
||
|
||
#if DBG
|
||
//
|
||
// Display all buses & ranges
|
||
//
|
||
|
||
if (HalDisplayBusRanges) {
|
||
HalpDisplayAllBusRanges ();
|
||
}
|
||
#endif
|
||
|
||
//
|
||
// Declare that we are capable of
|
||
// hibernation.
|
||
//
|
||
HalpRegisterHibernate ();
|
||
|
||
HalpRegisterPciDebuggingDeviceInfo();
|
||
}
|
||
|
||
|
||
VOID
|
||
HalpInitOtherBuses (
|
||
VOID
|
||
)
|
||
{
|
||
// no other internal buses supported
|
||
}
|
||
|
||
ULONG
|
||
FASTCALL
|
||
HalSystemVectorDispatchEntry (
|
||
IN ULONG Vector,
|
||
OUT PKINTERRUPT_ROUTINE **FlatDispatch,
|
||
OUT PKINTERRUPT_ROUTINE *NoConnection
|
||
)
|
||
{
|
||
return FALSE;
|
||
}
|