Build MP HAL with w32api

svn path=/trunk/; revision=16036
This commit is contained in:
Alex Ionescu 2005-06-18 14:28:28 +00:00
parent a5579f945f
commit 3e334c65fc
9 changed files with 21 additions and 84 deletions

View file

@ -27,16 +27,9 @@
/* INCLUDE ***********************************************************************/ /* INCLUDE ***********************************************************************/
#include <ddk/ntddk.h>
#include <internal/i386/ps.h>
#include <hal.h>
#include <halirq.h>
#include <mps.h>
#include <apic.h>
#define NDEBUG #define NDEBUG
#include <internal/debug.h> #include <hal.h>
#include <internal/ntoskrnl.h>
/* GLOBALS ***********************************************************************/ /* GLOBALS ***********************************************************************/
@ -89,8 +82,6 @@ CHAR *APstart, *APend;
WRITE_PORT_UCHAR((PUCHAR)0x71, value); \ WRITE_PORT_UCHAR((PUCHAR)0x71, value); \
}) })
extern PVOID IMPORTED MmSystemRangeStart;
/* FUNCTIONS *********************************************************************/ /* FUNCTIONS *********************************************************************/
extern ULONG Read8254Timer(VOID); extern ULONG Read8254Timer(VOID);
@ -866,7 +857,7 @@ APICCalibrateTimer(ULONG CPU)
APICSetupLVTT(1000000000); APICSetupLVTT(1000000000);
TSCPresent = KeGetCurrentKPCR()->PrcbData.FeatureBits & X86_FEATURE_TSC ? TRUE : FALSE; TSCPresent = ((PKIPCR)KeGetCurrentKPCR())->PrcbData.FeatureBits & X86_FEATURE_TSC ? TRUE : FALSE;
/* /*
* The timer chip counts down to zero. Let's wait * The timer chip counts down to zero. Let's wait
@ -895,7 +886,7 @@ APICCalibrateTimer(ULONG CPU)
DPRINT("CPU clock speed is %ld.%04ld MHz.\n", DPRINT("CPU clock speed is %ld.%04ld MHz.\n",
CPUMap[CPU].CoreSpeed/1000000, CPUMap[CPU].CoreSpeed/1000000,
CPUMap[CPU].CoreSpeed%1000000); CPUMap[CPU].CoreSpeed%1000000);
KeGetCurrentKPCR()->PrcbData.MHz = CPUMap[CPU].CoreSpeed/1000000; ((PKIPCR)KeGetCurrentKPCR())->PrcbData.MHz = CPUMap[CPU].CoreSpeed/1000000;
} }
CPUMap[CPU].BusSpeed = (HZ * (long)(tt1 - tt2) * APIC_DIVISOR); CPUMap[CPU].BusSpeed = (HZ * (long)(tt1 - tt2) * APIC_DIVISOR);

View file

@ -11,12 +11,8 @@
/* INCLUDES *****************************************************************/ /* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <hal.h>
#include <mps.h>
#define NDEBUG #define NDEBUG
#include <internal/debug.h> #include <hal.h>
/* FUNCTIONS ***************************************************************/ /* FUNCTIONS ***************************************************************/

View file

@ -4,7 +4,8 @@
<include base="ntoskrnl">include</include> <include base="ntoskrnl">include</include>
<define name="_DISABLE_TIDENTS" /> <define name="_DISABLE_TIDENTS" />
<define name="CONFIG_SMP" /> <define name="CONFIG_SMP" />
<define name="__NTHAL__" /> <define name="_NTHAL_" />
<define name="__USE_W32API" />
<library>hal_generic</library> <library>hal_generic</library>
<library>hal_generic_pc</library> <library>hal_generic_pc</library>
<library>ntoskrnl</library> <library>ntoskrnl</library>

View file

@ -9,21 +9,8 @@
/* INCLUDES *****************************************************************/ /* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <hal.h>
#include <mps.h>
#include <halirq.h>
#include <apic.h>
#include <ioapic.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#include <internal/ke.h>
#include <internal/ps.h>
#define NDEBUG #define NDEBUG
#include <internal/debug.h> #include <hal.h>
/* GLOBALS *****************************************************************/ /* GLOBALS *****************************************************************/

View file

@ -9,12 +9,8 @@
/* INCLUDES *****************************************************************/ /* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <hal.h>
#include <apic.h>
#define NDEBUG #define NDEBUG
#include <internal/debug.h> #include <hal.h>
/* FUNCTIONS ****************************************************************/ /* FUNCTIONS ****************************************************************/

View file

@ -9,15 +9,8 @@
/* INCLUDES *****************************************************************/ /* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <ntos/types.h>
#include <hal.h>
#include <mps.h>
#include <apic.h>
#include <ioapic.h>
#define NDEBUG #define NDEBUG
#include <internal/debug.h> #include <hal.h>
/* GLOBALS ******************************************************************/ /* GLOBALS ******************************************************************/

View file

@ -11,18 +11,8 @@
/* INCLUDES *****************************************************************/ /* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <internal/ke.h>
#include <internal/ps.h>
#include <ntos/minmax.h>
#include <halirq.h>
#include <hal.h>
#include <mps.h>
#include <apic.h>
#include <ioapic.h>
#define NDEBUG #define NDEBUG
#include <internal/debug.h> #include <hal.h>
/* GLOBALS ******************************************************************/; /* GLOBALS ******************************************************************/;
@ -42,7 +32,7 @@ KIRQL STDCALL KeGetCurrentIrql (VOID)
Ki386SaveFlags(Flags); Ki386SaveFlags(Flags);
Ki386DisableInterrupts(); Ki386DisableInterrupts();
irql = Ki386ReadFsByte(offsetof(KPCR, Irql)); irql = Ki386ReadFsByte(FIELD_OFFSET(KPCR, Irql));
if (irql > HIGH_LEVEL) if (irql > HIGH_LEVEL)
{ {
DPRINT1 ("CurrentIrql %x\n", irql); DPRINT1 ("CurrentIrql %x\n", irql);
@ -70,7 +60,7 @@ VOID KeSetCurrentIrql (KIRQL NewIrql)
} }
Ki386SaveFlags(Flags); Ki386SaveFlags(Flags);
Ki386DisableInterrupts(); Ki386DisableInterrupts();
Ki386WriteFsByte(offsetof(KPCR, Irql), NewIrql); Ki386WriteFsByte(FIELD_OFFSET(KPCR, Irql), NewIrql);
if (Flags & X86_EFLAGS_IF) if (Flags & X86_EFLAGS_IF)
{ {
Ki386EnableInterrupts(); Ki386EnableInterrupts();
@ -92,9 +82,9 @@ HalpLowerIrql(KIRQL NewIrql, BOOL FromHalEndSystemInterrupt)
{ {
KeSetCurrentIrql (DISPATCH_LEVEL); KeSetCurrentIrql (DISPATCH_LEVEL);
APICWrite(APIC_TPR, IRQL2TPR (DISPATCH_LEVEL) & APIC_TPR_PRI); APICWrite(APIC_TPR, IRQL2TPR (DISPATCH_LEVEL) & APIC_TPR_PRI);
if (FromHalEndSystemInterrupt || Ki386ReadFsByte(offsetof(KPCR, HalReserved[HAL_DPC_REQUEST]))) if (FromHalEndSystemInterrupt || Ki386ReadFsByte(FIELD_OFFSET(KIPCR, HalReserved[HAL_DPC_REQUEST])))
{ {
Ki386WriteFsByte(offsetof(KPCR, HalReserved[HAL_DPC_REQUEST]), 0); Ki386WriteFsByte(FIELD_OFFSET(KIPCR, HalReserved[HAL_DPC_REQUEST]), 0);
Ki386EnableInterrupts(); Ki386EnableInterrupts();
KiDispatchInterrupt(); KiDispatchInterrupt();
if (!(Flags & X86_EFLAGS_IF)) if (!(Flags & X86_EFLAGS_IF))
@ -166,7 +156,7 @@ KfLowerIrql (KIRQL NewIrql)
* *
* NOTES * NOTES
*/ */
#undef KeLowerIrql
VOID STDCALL VOID STDCALL
KeLowerIrql (KIRQL NewIrql) KeLowerIrql (KIRQL NewIrql)
{ {
@ -240,6 +230,7 @@ KfRaiseIrql (KIRQL NewIrql)
* NOTES * NOTES
* Calls KfRaiseIrql * Calls KfRaiseIrql
*/ */
#undef KeRaiseIrql
VOID STDCALL VOID STDCALL
KeRaiseIrql (KIRQL NewIrql, KeRaiseIrql (KIRQL NewIrql,
PKIRQL OldIrql) PKIRQL OldIrql)
@ -392,11 +383,11 @@ HalRequestSoftwareInterrupt(IN KIRQL Request)
switch (Request) switch (Request)
{ {
case APC_LEVEL: case APC_LEVEL:
Ki386WriteFsByte(offsetof(KPCR, HalReserved[HAL_APC_REQUEST]), 1); Ki386WriteFsByte(FIELD_OFFSET(KIPCR, HalReserved[HAL_APC_REQUEST]), 1);
break; break;
case DISPATCH_LEVEL: case DISPATCH_LEVEL:
Ki386WriteFsByte(offsetof(KPCR, HalReserved[HAL_DPC_REQUEST]), 1); Ki386WriteFsByte(FIELD_OFFSET(KIPCR, HalReserved[HAL_DPC_REQUEST]), 1);
break; break;
default: default:

View file

@ -14,23 +14,8 @@
/* INCLUDES *****************************************************************/ /* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <hal.h>
#include <halirq.h>
#include <mps.h>
#include <ioapic.h>
#include <apic.h>
#include <internal/ntoskrnl.h>
#include <internal/i386/segment.h>
#include <internal/ke.h>
#include <internal/ps.h>
#define NDEBUG #define NDEBUG
#include <internal/debug.h> #include <hal.h>
/* FUNCTIONS *****************************************************************/ /* FUNCTIONS *****************************************************************/

View file

@ -9,11 +9,8 @@
/* INCLUDES *****************************************************************/ /* INCLUDES *****************************************************************/
#include <ddk/ntddk.h>
#include <hal.h>
#define NDEBUG #define NDEBUG
#include <internal/debug.h> #include <hal.h>
/* FUNCTIONS ****************************************************************/ /* FUNCTIONS ****************************************************************/