1*67443687STimo Kreuzer/*
2*67443687STimo Kreuzer * PROJECT:     ReactOS API tests
3*67443687STimo Kreuzer * LICENSE:     GPL-2.0+ (https://spdx.org/licenses/GPL-2.0+)
4*67443687STimo Kreuzer * PURPOSE:     Helper functions for NtContinue test
5*67443687STimo Kreuzer * COPYRIGHT:   Copyright 2022 Timo Kreuzer (timo.kreuzer@reactos.org)
6*67443687STimo Kreuzer */
7*67443687STimo Kreuzer
8*67443687STimo Kreuzer#include <asm.inc>
9*67443687STimo Kreuzer#include <ksamd64.inc>
10*67443687STimo Kreuzer
11*67443687STimo Kreuzer.code64
12*67443687STimo Kreuzer
13*67443687STimo KreuzerEXTERN RtlCaptureContext:PROC
14*67443687STimo KreuzerEXTERN check:PROC
15*67443687STimo Kreuzer
16*67443687STimo KreuzerPUBLIC continuePoint
17*67443687STimo Kreuzer.PROC continuePoint
18*67443687STimo Kreuzer
19*67443687STimo Kreuzer    // Allocate space for a CONTEXT structure
20*67443687STimo Kreuzer    .ALLOCSTACK CONTEXT_FRAME_LENGTH + 8
21*67443687STimo Kreuzer    .ENDPROLOG
22*67443687STimo Kreuzer
23*67443687STimo Kreuzer    // Capture the current CONTEXT
24*67443687STimo Kreuzer    mov rcx, rsp
25*67443687STimo Kreuzer    call RtlCaptureContext
26*67443687STimo Kreuzer
27*67443687STimo Kreuzer    // Call the function that will compare the current context with the expected one
28*67443687STimo Kreuzer    cld
29*67443687STimo Kreuzer    mov rcx, rsp
30*67443687STimo Kreuzer    call check
31*67443687STimo Kreuzer
32*67443687STimo Kreuzer    // check() must not return
33*67443687STimo Kreuzer    int 3
34*67443687STimo Kreuzer
35*67443687STimo Kreuzer.ENDP
36*67443687STimo Kreuzer
37*67443687STimo Kreuzer// EOF
38*67443687STimo KreuzerEND
39