[ros-diffs] [tkreuzer] 53704: [HAL] Fix amd64 build

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Tue Sep 13 14:44:48 UTC 2011


Author: tkreuzer
Date: Tue Sep 13 14:44:47 2011
New Revision: 53704

URL: http://svn.reactos.org/svn/reactos?rev=53704&view=rev
Log:
[HAL]
Fix amd64 build

Modified:
    trunk/reactos/hal/halx86/amd64/halinit.c
    trunk/reactos/hal/halx86/amd64/processor.c
    trunk/reactos/hal/halx86/apic/apic.c
    trunk/reactos/hal/halx86/apic/apic.h
    trunk/reactos/hal/halx86/apic/apictrap.S

Modified: trunk/reactos/hal/halx86/amd64/halinit.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/amd64/halinit.c?rev=53704&r1=53703&r2=53704&view=diff
==============================================================================
--- trunk/reactos/hal/halx86/amd64/halinit.c [iso-8859-1] (original)
+++ trunk/reactos/hal/halx86/amd64/halinit.c [iso-8859-1] Tue Sep 13 14:44:47 2011
@@ -19,7 +19,7 @@
 /* PRIVATE FUNCTIONS *********************************************************/
 
 /* FUNCTIONS *****************************************************************/
-
+#if 0
 VOID
 NTAPI
 HalpInitProcessor(
@@ -49,4 +49,5 @@
 
 }
 
+#endif
 

Modified: trunk/reactos/hal/halx86/amd64/processor.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/amd64/processor.c?rev=53704&r1=53703&r2=53704&view=diff
==============================================================================
--- trunk/reactos/hal/halx86/amd64/processor.c [iso-8859-1] (original)
+++ trunk/reactos/hal/halx86/amd64/processor.c [iso-8859-1] Tue Sep 13 14:44:47 2011
@@ -27,26 +27,6 @@
 }
 
 /* FUNCTIONS *****************************************************************/
-
-/*
- * @implemented
- */
-VOID
-NTAPI
-HalInitializeProcessor(IN ULONG ProcessorNumber,
-                       IN PLOADER_PARAMETER_BLOCK LoaderBlock)
-{
-    /* Set default stall count */
-    KeGetPcr()->StallScaleFactor = INITIAL_STALL_COUNT;
-
-    /* Update the interrupt affinity and processor mask */
-    InterlockedBitTestAndSet((PLONG)&HalpActiveProcessors, ProcessorNumber);
-    InterlockedBitTestAndSet((PLONG)&HalpDefaultInterruptAffinity,
-                             ProcessorNumber);
-
-    /* Register routines for KDCOM */
-    //HalpRegisterKdSupportFunctions();
-}
 
 /*
  * @implemented

Modified: trunk/reactos/hal/halx86/apic/apic.c
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/apic/apic.c?rev=53704&r1=53703&r2=53704&view=diff
==============================================================================
--- trunk/reactos/hal/halx86/apic/apic.c [iso-8859-1] (original)
+++ trunk/reactos/hal/halx86/apic/apic.c [iso-8859-1] Tue Sep 13 14:44:47 2011
@@ -18,7 +18,9 @@
 #include "apic.h"
 void HackEoi(void);
 
+#ifndef _M_AMD64
 #define APIC_LAZY_IRQL
+#endif
 
 /* GLOBALS ********************************************************************/
 
@@ -393,9 +395,10 @@
 
     /* Set the IRQL from the PCR */
     ApicWrite(APIC_TPR, IrqlToTpr(KeGetPcr()->Irql));
-
+#ifdef APIC_LAZY_IRQL
     /* Save the new hard IRQL in the IRR field */
     KeGetPcr()->IRR = KeGetPcr()->Irql;
+#endif
 }
 
 UCHAR
@@ -549,6 +552,7 @@
 
 /* SOFTWARE INTERRUPT TRAPS ***************************************************/
 
+#ifndef _M_AMD64
 VOID
 DECLSPEC_NORETURN
 FASTCALL
@@ -598,7 +602,6 @@
     KiEoiHelper(TrapFrame);
 }
 
-#ifndef _M_AMD64
 VOID
 DECLSPEC_NORETURN
 FASTCALL

Modified: trunk/reactos/hal/halx86/apic/apic.h
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/apic/apic.h?rev=53704&r1=53703&r2=53704&view=diff
==============================================================================
--- trunk/reactos/hal/halx86/apic/apic.h [iso-8859-1] (original)
+++ trunk/reactos/hal/halx86/apic/apic.h [iso-8859-1] Tue Sep 13 14:44:47 2011
@@ -15,7 +15,8 @@
 #define APIC_PROFILE_VECTOR  0xFD // IRQL 31
 #define APIC_NMI_VECTOR      0xFF
 #define IrqlToTpr(Irql) (Irql << 4)
-#define TprToIrql(Tpr) (Tpr >> 4)
+#define TprToIrql(Tpr) ((KIRQL)(Tpr >> 4))
+#define CLOCK2_LEVEL CLOCK_LEVEL
 #else
 #define APIC_BASE 0xFFFE0000
 #define IOAPIC_BASE 0xFFFE1000 // checkme

Modified: trunk/reactos/hal/halx86/apic/apictrap.S
URL: http://svn.reactos.org/svn/reactos/trunk/reactos/hal/halx86/apic/apictrap.S?rev=53704&r1=53703&r2=53704&view=diff
==============================================================================
--- trunk/reactos/hal/halx86/apic/apictrap.S [iso-8859-1] (original)
+++ trunk/reactos/hal/halx86/apic/apictrap.S [iso-8859-1] Tue Sep 13 14:44:47 2011
@@ -14,19 +14,45 @@
 #include <ksamd64.inc>
 #include <trapamd64.inc>
 #define KI_PUSH_FAKE_ERROR_CODE TF_PUSH_FAKE_ERROR_CODE
+.code
+
+TRAP_ENTRY HalpClockInterrupt, KI_PUSH_FAKE_ERROR_CODE
+TRAP_ENTRY HalpProfileInterrupt, KI_PUSH_FAKE_ERROR_CODE
+
 PUBLIC ApicSpuriousService
+ApicSpuriousService:
+    iret
+
+PUBLIC HackEoi
+HackEoi:
+    xor rax, rax
+    mov ax, ss
+    push rax
+    push rsp
+    pushfq
+    mov ax, cs
+    push rax
+    lea rax, HackEoiReturn[rip]
+    push rax
+    mov dword ptr [HEX(0FFFFFFFFFEE000B0)], 0
+    iretq
+HackEoiReturn:
+    ret
+
 #else
 #include <ks386.inc>
 #include <internal/i386/asmmacro.S>
-PUBLIC _ApicSpuriousService
-#endif
-
 .code
 
-#ifndef _M_AMD64
+TRAP_ENTRY HalpClockInterrupt, KI_PUSH_FAKE_ERROR_CODE
+TRAP_ENTRY HalpProfileInterrupt, KI_PUSH_FAKE_ERROR_CODE
 TRAP_ENTRY HalpTrap0D, 0
 TRAP_ENTRY HalpApcInterrupt, KI_PUSH_FAKE_ERROR_CODE
 TRAP_ENTRY HalpDispatchInterrupt, KI_PUSH_FAKE_ERROR_CODE
+
+PUBLIC _ApicSpuriousService
+_ApicSpuriousService:
+    iret
 
 // VBox APIC needs an iret more or less directly following the EOI
 PUBLIC _HackEoi
@@ -40,16 +66,9 @@
     ret
 
 #endif
-TRAP_ENTRY HalpClockInterrupt, KI_PUSH_FAKE_ERROR_CODE
-TRAP_ENTRY HalpProfileInterrupt, KI_PUSH_FAKE_ERROR_CODE
 
-FUNC ApicSpuriousService
-#ifdef _M_AMD64
-    .ENDPROLOG
-#endif
-    int 3
-    iret
-ENDFUNC ApicSpuriousService
+
+
 
 
 END




More information about the Ros-diffs mailing list