- Update to r53061
[reactos.git] / dll / ntdll / dispatch / i386 / dispatch.S
index c17374e..10706e2 100644 (file)
@@ -8,13 +8,22 @@
 
 /* INCLUDES ******************************************************************/
 
-#include <ndk/asm.h>
-.intel_syntax noprefix
+#include <asm.inc>
+#include <ks386.inc>
+
+EXTERN _LdrpInit@12:PROC
+EXTERN _NtTestAlert@0:PROC
+EXTERN _RtlDispatchException@8:PROC
+EXTERN _RtlRaiseException@4:PROC
+EXTERN _RtlRaiseStatus@4:PROC
+EXTERN _ZwCallbackReturn@12:PROC
+EXTERN _ZwContinue@8:PROC
+EXTERN _ZwRaiseException@12:PROC
 
 /* FUNCTIONS ****************************************************************/
+.code
 
-.func LdrInitializeThunk@16
-.globl _LdrInitializeThunk@16
+PUBLIC _LdrInitializeThunk@16
 _LdrInitializeThunk@16:
 
     /* Get the APC Context */
@@ -28,9 +37,8 @@ _LdrInitializeThunk@16:
 
     /* Jump into the C initialization routine */
     jmp _LdrpInit@12
-.endfunc
 
-.func KiUserApcExceptionHandler
+
 _KiUserApcExceptionHandler:
 
     /* Put the exception record in ECX and check the Flags */
@@ -45,10 +53,9 @@ _KiUserApcExceptionHandler:
     /* We'll execute handler */
     mov eax, EXCEPTION_EXECUTE_HANDLER
     ret 16
-.endfunc
 
-.func KiUserApcDispatcher@16
-.globl _KiUserApcDispatcher@16
+
+PUBLIC _KiUserApcDispatcher@16
 _KiUserApcDispatcher@16:
 
     /* Setup SEH stack */
@@ -86,9 +93,8 @@ StatusRaiseApc:
     call _RtlRaiseStatus@4
     jmp StatusRaiseApc
     ret 16
-.endfunc
 
-.func KiUserCallbackExceptionHandler
+
 _KiUserCallbackExceptionHandler:
 
     /* Put the exception record in ECX and check the Flags */
@@ -106,10 +112,9 @@ return:
     /* We'll execute the handler */
     mov eax, EXCEPTION_EXECUTE_HANDLER
     ret 16
-.endfunc
 
-.func KiUserCallbackDispatcher@12
-.globl _KiUserCallbackDispatcher@12
+
+PUBLIC _KiUserCallbackDispatcher@12
 _KiUserCallbackDispatcher@12:
 
     /* Setup SEH stack */
@@ -131,7 +136,7 @@ _KiUserCallbackDispatcher@12:
     mov eax, [eax+PEB_KERNEL_CALLBACK_TABLE]
 
     /* Call the routine */
-    call [eax+edx*4]
+    call dword ptr [eax+edx*4]
 
     /* Return from callback */
     push eax
@@ -148,10 +153,9 @@ StatusRaise:
     call _RtlRaiseStatus@4
     jmp StatusRaise
     ret 12
-.endfunc
 
-.func KiRaiseUserExceptionDispatcher@0
-.globl _KiRaiseUserExceptionDispatcher@0
+
+PUBLIC _KiRaiseUserExceptionDispatcher@0
 _KiRaiseUserExceptionDispatcher@0:
 
     /* Setup stack for EXCEPTION_RECORD */
@@ -177,11 +181,11 @@ _KiRaiseUserExceptionDispatcher@0:
     mov esp, ebp
     pop ebp
     ret
-.endfunc
 
-.func KiUserExceptionDispatcher@8
-.globl _KiUserExceptionDispatcher@8
-_KiUserExceptionDispatcher@8:
+
+PUBLIC _KiUserExceptionDispatcher@8
+.PROC KiUserExceptionDispatcher@8
+    FPO 0, 0, 0, 0, 0, FRAME_FPO
 
     /* Clear direction flag */
     cld
@@ -236,39 +240,42 @@ Exit:
     push esp
     call _RtlRaiseException@4
     ret 8
-.endfunc
 
-.func KiIntSystemCall@0
-.globl _KiIntSystemCall@0
-_KiIntSystemCall@0:
+.ENDP KiUserExceptionDispatcher@8
+
+PUBLIC _KiIntSystemCall@0
+.PROC KiIntSystemCall@0
+    FPO 0, 0, 0, 0, 0, FRAME_FPO
 
     /* Set stack in EDX and do the interrupt */
     lea edx, [esp+8]
-    int 0x2E
+    int HEX(2E)
 
     /* Return to caller */
     ret
-.endfunc
 
-.func KiFastSystemCall@0
-.globl _KiFastSystemCall@0
-_KiFastSystemCall@0:
+.ENDP KiIntSystemCall@0
+
+PUBLIC _KiFastSystemCall@0
+.PROC KiFastSystemCall@0
+    FPO 0, 0, 0, 0, 0, FRAME_FPO
 
     /* Put ESP in EDX and do the SYSENTER */
     mov edx, esp
     sysenter
-.endfunc
 
-.func KiFastSystemCallRet@0
-.globl _KiFastSystemCallRet@0
-_KiFastSystemCallRet@0:
+.ENDP KiFastSystemCall@0
+
+PUBLIC _KiFastSystemCallRet@0
+.PROC KiFastSystemCallRet@0
+    FPO 0, 0, 0, 0, 0, FRAME_FPO
 
     /* Just return to caller */
     ret
-.endfunc
 
-.func RtlpGetStackLimits@8
-.globl _RtlpGetStackLimits@8
+.ENDP KiFastSystemCallRet@0
+
+PUBLIC _RtlpGetStackLimits@8
 _RtlpGetStackLimits@8:
 
     /* Get the stack limits */
@@ -283,4 +290,5 @@ _RtlpGetStackLimits@8:
 
     /* return */
     ret 8
-.endfunc
+
+END