[ros-diffs] [tkreuzer] 45427: [NTOS] - Make assembly ML64 safe - remove 2 stubs, add 2 others

tkreuzer at svn.reactos.org tkreuzer at svn.reactos.org
Fri Feb 5 02:39:05 CET 2010


Author: tkreuzer
Date: Fri Feb  5 02:39:05 2010
New Revision: 45427

URL: http://svn.reactos.org/svn/reactos?rev=45427&view=rev
Log:
[NTOS]
- Make assembly ML64 safe
- remove 2 stubs, add 2 others

Modified:
    branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/boot.S
    branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/ctxswitch.S
    branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/stubs.c
    branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/trap.S

Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/boot.S
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/boot.S?rev=45427&r1=45426&r2=45427&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/boot.S [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/boot.S [iso-8859-1] Fri Feb  5 02:39:05 2010
@@ -11,6 +11,7 @@
 #include <reactos/asm.h>
 #include <ndk/amd64/asm.h>
 
+EXTERN KiInitializeKernelAndGotoIdleLoop:PROC
 
 /* GLOBALS *******************************************************************/
 
@@ -37,13 +38,15 @@
     mov rsi, rsp
 
     /* Setup the new stack */
-    mov ax, 0x18
+    mov ax, HEX(18)
     mov ss, ax
     mov rsp, r8
-    sub rsp, 0x300 // FIXME
+    sub rsp, HEX(300) // FIXME
 
     /* Copy stack parameters to the new stack */
-    sub rsp, 0x38
+    sub rsp, HEX(38)
+    .ENDPROLOG
+
     mov rdi, rsp
     movsq
     movsq

Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/ctxswitch.S
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/ctxswitch.S?rev=45427&r1=45426&r2=45427&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/ctxswitch.S [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/ctxswitch.S [iso-8859-1] Fri Feb  5 02:39:05 2010
@@ -13,6 +13,8 @@
 #include <ndk/amd64/asm.h>
 
 /* FUNCTIONS ****************************************************************/
+
+.code64
 
 /*++
  * KiThreadStartup
@@ -43,8 +45,7 @@
  *     If a return from a system thread is detected, a bug check will occur.
  *
  *--*/
- .func KiThreadStartup
-.globl KiThreadStartup
+PUBLIC KiThreadStartup
 KiThreadStartup:
 
     /*
@@ -85,13 +86,12 @@
 
     /* Exit back to user-mode */
 //    jmp _KiServiceExit2
-UNIMPLEMENTED KiThreadStartup->KiServiceExit2
+UNIMPLEMENTED KiThreadStartup_KiServiceExit2
 
 BadThread:
 
     /* A system thread returned...this is very bad! */
     int 3
-.endfunc
 
 
 /*++
@@ -112,13 +112,11 @@
  *     Absolutely all registers except ESP can be trampled here for maximum code flexibility.
  *
  *--*/
-.globl KiSwapContextInternal
-.func KiSwapContextInternal
+PUBLIC KiSwapContextInternal
 KiSwapContextInternal:
     UNIMPLEMENTED KiSwapContextInternal
     ret
 
-.endfunc
 
 /**
  * KiSwapContext
@@ -147,8 +145,7 @@
  *     another thread switches to IT.
  *
  *--*/
-.globl KiSwapContext
-.func KiSwapContext
+PUBLIC KiSwapContext
 KiSwapContext:
 
     /* Save 10 registers */
@@ -198,4 +195,5 @@
     /* Clean stack */
     add esp, 10 * 8
     ret
-.endfunc
+
+END

Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/stubs.c
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/stubs.c?rev=45427&r1=45426&r2=45427&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/stubs.c [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/stubs.c [iso-8859-1] Fri Feb  5 02:39:05 2010
@@ -165,22 +165,15 @@
 {
 }
 
+BOOLEAN CcPfEnablePrefetcher;
 
-NTKERNELAPI
-PSLIST_ENTRY
-ExpInterlockedPopEntrySList(
-     PSLIST_HEADER ListHead)
+unsigned long __readfsdword(const unsigned long Offset)
 {
     return 0;
 }
 
-NTKERNELAPI
-PSLIST_ENTRY
-ExpInterlockedPushEntrySList(
-    PSLIST_HEADER ListHead,
-    PSLIST_ENTRY ListEntry)
+void main()
 {
-    return 0;
 }
 
 #endif

Modified: branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/trap.S
URL: http://svn.reactos.org/svn/reactos/branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/trap.S?rev=45427&r1=45426&r2=45427&view=diff
==============================================================================
--- branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/trap.S [iso-8859-1] (original)
+++ branches/ros-amd64-bringup/reactos/ntoskrnl/ke/amd64/trap.S [iso-8859-1] Fri Feb  5 02:39:05 2010
@@ -24,28 +24,28 @@
 .data
 
 PUBLIC MsgUnimplemented
-_MsgUnimplemented:
+MsgUnimplemented:
 .ascii "WARNING:  %s at %s:%d is UNIMPLEMENTED!\n"
 
-_MsgPageFault:
+MsgPageFault:
 .ascii "Page fault! Code = 0x%x, RIP = %p, FaultingAddress = %p\n\0"
 
-_MsgGeneralProtFault:
+MsgGeneralProtFault:
 .ascii "General protection fault at %p!\n\0"
 
-_MsgBreakpointTrap:
+MsgBreakpointTrap:
 .ascii "BreakpointTrap at %p\n\0"
 
-_MsgUnexpectedInterrupt:
+MsgUnexpectedInterrupt:
 .ascii "UnexpectedInterrupt Vector=0x%02lx\n\0"
 
-_MsgInvalidOpcodeFault:
+MsgInvalidOpcodeFault:
 .ascii "Invalid opcode fault at %p!\n\0"
 
-_MsgDoubleFault:
+MsgDoubleFault:
 .ascii "Double fault at %p, rbp=%p!\n\0"
 
-_MsgTrapInfo:
+MsgTrapInfo:
 .ascii "Trap: %s at %p\n\0"
 
 MACRO(TRAPINFO, func)
@@ -55,7 +55,7 @@
 label1:  .asciz "\func"
 label2:
     sub rsp, 32
-    lea rcx, _MsgTrapInfo[rip]
+    lea rcx, MsgTrapInfo[rip]
     lea rdx, 1b[rip]
     mov r8, [rbp + KTRAP_FRAME_Rip]
     call qword ptr FrLdrDbgPrint[rip]
@@ -421,7 +421,7 @@
 
     TRAPINFO KiBreakpointTrap
 
-//    lea rcx, _MsgBreakpointTrap[rip]
+//    lea rcx, MsgBreakpointTrap[rip]
 //    mov rdx, rsp
 //    call qword ptr FrLdrDbgPrint[rip]
 
@@ -501,7 +501,7 @@
     TRAPINFO KiInvalidOpcodeFault
 
     mov rdx, [rbp + KTRAP_FRAME_Rip]
-    lea rcx, _MsgInvalidOpcodeFault[rip]
+    lea rcx, MsgInvalidOpcodeFault[rip]
     call qword ptr FrLdrDbgPrint[rip]
 
     /* Enable interrupts */
@@ -562,7 +562,7 @@
     /* Push pseudo error code */
     ENTER_TRAP_FRAME TRAPFLAG_ALL
 
-    lea rcx, _MsgDoubleFault[rip]
+    lea rcx, MsgDoubleFault[rip]
     mov rdx, [rbp + KTRAP_FRAME_FaultAddress]
     mov r8, rbp
     call qword ptr FrLdrDbgPrint[rip]
@@ -639,7 +639,7 @@
 
     TRAPINFO KiGeneralProtectionFault
     mov rdx, [rbp + KTRAP_FRAME_Rip]
-    lea rcx, _MsgGeneralProtFault[rip]
+    lea rcx, MsgGeneralProtFault[rip]
     call qword ptr FrLdrDbgPrint[rip]
 
     /* Call the C handler */
@@ -682,7 +682,7 @@
     TRAPINFO KiPageFault
 
 #if 0
-    lea rcx, _MsgPageFault[rip]
+    lea rcx, MsgPageFault[rip]
     mov rdx, [rbp + KTRAP_FRAME_ErrorCode]
     mov r8, [rbp + KTRAP_FRAME_Rip]
     mov r9, [rbp + KTRAP_FRAME_FaultAddress]




More information about the Ros-diffs mailing list