From 948f940cd9bc55bccb03380d27be32e80027b059 Mon Sep 17 00:00:00 2001 From: Samuel Serapion Date: Sun, 27 Dec 2009 18:19:20 +0000 Subject: [PATCH] Implement KeGetTrapFrame and KeGetExceptionFrame macros. svn path=/branches/ros-amd64-bringup/; revision=44773 --- reactos/ntoskrnl/include/internal/amd64/ke.h | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/reactos/ntoskrnl/include/internal/amd64/ke.h b/reactos/ntoskrnl/include/internal/amd64/ke.h index b5140b0b52c..fc5417189ba 100644 --- a/reactos/ntoskrnl/include/internal/amd64/ke.h +++ b/reactos/ntoskrnl/include/internal/amd64/ke.h @@ -102,6 +102,17 @@ extern ULONG KeI386CpuStep; #define KeSetContextReturnRegister(Context, ReturnValue) \ ((Context)->Rax = (ReturnValue)) +// +// Macro to get trap and exception frame from a thread stack +// +#define KeGetTrapFrame(Thread) \ + (PKTRAP_FRAME)((ULONG_PTR)((Thread)->InitialStack) - \ + sizeof(KTRAP_FRAME)) + +#define KeGetExceptionFrame(Thread) \ + (PKEXCEPTION_FRAME)((ULONG_PTR)KeGetTrapFrame(Thread) - \ + sizeof(KEXCEPTION_FRAME)) + // // Returns the Interrupt State from a Trap Frame. // ON = TRUE, OFF = FALSE