mirror of
https://github.com/reactos/reactos.git
synced 2025-02-20 15:35:04 +00:00
[NTDLL]
- Convert dispatch.S to new asm syntax - Add exports for RtlAddVectoredContinueHandler and RtlRemoveVectoredContinueHandler svn path=/branches/cmake-bringup/; revision=49651
This commit is contained in:
parent
cf90c329f2
commit
e0c83caeee
2 changed files with 38 additions and 37 deletions
|
@ -437,7 +437,7 @@
|
|||
@ stdcall RtlAddMandatoryAce(ptr long long long long ptr)
|
||||
@ stdcall RtlAddRefActivationContext(ptr)
|
||||
;@ stdcall RtlAddRefMemoryStream
|
||||
;@ stdcall RtlAddVectoredContinueHandler
|
||||
@ stdcall RtlAddVectoredContinueHandler(long ptr)
|
||||
@ stdcall RtlAddVectoredExceptionHandler(long ptr)
|
||||
;@ stdcall RtlAddressInSectionTable
|
||||
@ stdcall RtlAdjustPrivilege(long long long ptr)
|
||||
|
@ -723,6 +723,7 @@
|
|||
@ stdcall RtlInt64ToUnicodeString(double long ptr)
|
||||
@ stdcall RtlIntegerToChar(long long long ptr)
|
||||
@ stdcall RtlIntegerToUnicodeString(long long ptr)
|
||||
;@ stdcall RtlInterlockedCompareExchange64
|
||||
@ stdcall -arch=i386,x86_64 RtlInterlockedFlushSList(ptr)
|
||||
@ stdcall -arch=i386,x86_64 RtlInterlockedPopEntrySList(ptr)
|
||||
@ stdcall -arch=i386,x86_64 RtlInterlockedPushEntrySList(ptr ptr)
|
||||
|
@ -849,7 +850,7 @@
|
|||
@ stdcall RtlReleaseSRWLockExclusive(ptr)
|
||||
@ stdcall RtlReleaseSRWLockShared(ptr)
|
||||
@ stdcall RtlRemoteCall(ptr ptr ptr long ptr long long)
|
||||
;@ stdcall RtlRemoveVectoredContinueHandler
|
||||
@ stdcall RtlRemoveVectoredContinueHandler(ptr)
|
||||
@ stdcall RtlRemoveVectoredExceptionHandler(ptr)
|
||||
@ stdcall RtlResetRtlTranslations(ptr)
|
||||
@ stdcall RtlRestoreLastWin32Error(long) RtlSetLastWin32Error
|
||||
|
|
|
@ -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,10 +181,9 @@ _KiRaiseUserExceptionDispatcher@0:
|
|||
mov esp, ebp
|
||||
pop ebp
|
||||
ret
|
||||
.endfunc
|
||||
|
||||
.func KiUserExceptionDispatcher@8
|
||||
.globl _KiUserExceptionDispatcher@8
|
||||
|
||||
PUBLIC _KiUserExceptionDispatcher@8
|
||||
_KiUserExceptionDispatcher@8:
|
||||
|
||||
/* Clear direction flag */
|
||||
|
@ -236,39 +239,35 @@ Exit:
|
|||
push esp
|
||||
call _RtlRaiseException@4
|
||||
ret 8
|
||||
.endfunc
|
||||
|
||||
.func KiIntSystemCall@0
|
||||
.globl _KiIntSystemCall@0
|
||||
|
||||
PUBLIC _KiIntSystemCall@0
|
||||
_KiIntSystemCall@0:
|
||||
|
||||
/* 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
|
||||
|
||||
PUBLIC _KiFastSystemCall@0
|
||||
_KiFastSystemCall@0:
|
||||
|
||||
/* Put ESP in EDX and do the SYSENTER */
|
||||
mov edx, esp
|
||||
sysenter
|
||||
.endfunc
|
||||
|
||||
.func KiFastSystemCallRet@0
|
||||
.globl _KiFastSystemCallRet@0
|
||||
|
||||
PUBLIC _KiFastSystemCallRet@0
|
||||
_KiFastSystemCallRet@0:
|
||||
|
||||
/* Just return to caller */
|
||||
ret
|
||||
.endfunc
|
||||
|
||||
.func RtlpGetStackLimits@8
|
||||
.globl _RtlpGetStackLimits@8
|
||||
|
||||
PUBLIC _RtlpGetStackLimits@8
|
||||
_RtlpGetStackLimits@8:
|
||||
|
||||
/* Get the stack limits */
|
||||
|
@ -283,4 +282,5 @@ _RtlpGetStackLimits@8:
|
|||
|
||||
/* return */
|
||||
ret 8
|
||||
.endfunc
|
||||
|
||||
END
|
||||
|
|
Loading…
Reference in a new issue