/* * COPYRIGHT: See COPYING in the top level directory * PROJECT: ReactOS Run-Time Library * PURPOSE: Debug Routines * FILE: lib/rtl/amd64/debug_asm.S * PROGRAMER: Timo Kreuzer (timo.kreuzer@reactos.org) */ #include /* FUNCTIONS ***************************************************************/ .code64 PUBLIC DbgUserBreakPoint DbgUserBreakPoint: PUBLIC DbgBreakPoint .PROC DbgBreakPoint .endprolog int 3 ret .ENDP PUBLIC RtlpBreakWithStatusInstruction RtlpBreakWithStatusInstruction: PUBLIC DbgBreakPointWithStatus .PROC DbgBreakPointWithStatus .endprolog int 3 ret .ENDP PUBLIC DebugService2 DebugService2: /* Pass the service number in eax */ mov rax, r8 int HEX(2D) int 3 ret /****************************************************************************** * NTSTATUS NTAPI DebugService( * IN ULONG Service, // = [rsp + 8] * IN PVOID Buffer, // = [rsp + 16] * IN ULONG Length, // = [rsp + 24] * IN PVOID Argument1, // = [rsp + 32] * IN PVOID Argument2); // [rsp + 40] */ PUBLIC DebugService DebugService: /* Prepare registers for interrupt */ mov eax, ecx // Service mov rcx, rdx // Buffer mov edx, r8d // Length mov r8, r9 // Argument1 mov r9, [rsp + 40] // Argument2 /* Call the Interrupt */ int HEX(2D) int 3 /* Return */ ret END