Author: ion Date: Mon Oct 2 00:27:36 2006 New Revision: 24352
URL: http://svn.reactos.org/svn/reactos?rev=24352&view=rev Log: - Un-optimize KeGetPcr and make it use fs:20h instead of hard-coding the 0xFF.... address, because someone decided that ROS should have a different KPCR address then NT. - This gets NTLDR working with ReactOS and I can boot all the way to MmInit1 (which fails due to missing KeMemoryMap & freeldr data). - Serial port output works with DPRINT1 as well ;-)
Modified: trunk/reactos/hal/halx86/generic/processor.c trunk/reactos/include/ndk/ketypes.h trunk/reactos/ntoskrnl/kd/kdinit.c
Modified: trunk/reactos/hal/halx86/generic/processor.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/generic/processo... ============================================================================== --- trunk/reactos/hal/halx86/generic/processor.c (original) +++ trunk/reactos/hal/halx86/generic/processor.c Mon Oct 2 00:27:36 2006 @@ -20,11 +20,11 @@
/* FUNCTIONS *****************************************************************/
-VOID STDCALL -HalInitializeProcessor(ULONG ProcessorNumber, - PLOADER_PARAMETER_BLOCK LoaderBlock) +VOID +NTAPI +HalInitializeProcessor(IN ULONG ProcessorNumber, + IN PLOADER_PARAMETER_BLOCK LoaderBlock) { - DPRINT("HalInitializeProcessor(%lu %p)\n", ProcessorNumber, LoaderBlock); /* Set default IDR */ KeGetPcr()->IDR = 0xFFFFFFFB; KeGetPcr()->StallScaleFactor = INITIAL_STALL_COUNT;
Modified: trunk/reactos/include/ndk/ketypes.h URL: http://svn.reactos.org/svn/reactos/trunk/reactos/include/ndk/ketypes.h?rev=2... ============================================================================== --- trunk/reactos/include/ndk/ketypes.h (original) +++ trunk/reactos/include/ndk/ketypes.h Mon Oct 2 00:27:36 2006 @@ -92,7 +92,11 @@ // #define K0IPCR ((ULONG_PTR)(KIP0PCRADDRESS)) #define PCR ((volatile KPCR * const)K0IPCR) +#ifdef _WE_USE_THE_SAME_PCR_ADDRESS #define KeGetPcr() PCR +#else +#define KeGetPcr() ((volatile KPCR * const)__readfsdword(0x1C)) +#endif
// // Number of dispatch codes supported by KINTERRUPT
Modified: trunk/reactos/ntoskrnl/kd/kdinit.c URL: http://svn.reactos.org/svn/reactos/trunk/reactos/ntoskrnl/kd/kdinit.c?rev=24... ============================================================================== --- trunk/reactos/ntoskrnl/kd/kdinit.c (original) +++ trunk/reactos/ntoskrnl/kd/kdinit.c Mon Oct 2 00:27:36 2006 @@ -168,6 +168,15 @@ ULONG i; PCHAR p1, p2;
+#if 0 + /* NTLDR HACK */ + KdpSerialInit(&DispatchTable[KdSerial], 0); + KdpDebugMode.Serial = TRUE; + SerialPortInfo.ComPort = 1; + KdpPort = 1; + KdDebuggerEnabled = TRUE; +#endif + /* Set Default Port Options */ if (BootPhase == 0) {