2 * PROJECT: ReactOS Kernel
3 * LICENSE: GPL - See COPYING in the top level directory
4 * FILE: ntoskrnl/ke/i386/exp.c
5 * PURPOSE: Exception Dispatching and Context<->Trap Frame Conversion
6 * PROGRAMMERS: Alex Ionescu (alex.ionescu@reactos.org)
8 * Skywing (skywing@valhallalegends.com)
11 /* INCLUDES ******************************************************************/
16 #include <ppcmmu/mmu.h>
18 /* FUNCTIONS *****************************************************************/
23 KeInitExceptions(VOID
)
29 KiEspFromTrapFrame(IN PKTRAP_FRAME TrapFrame
)
36 KiEspToTrapFrame(IN PKTRAP_FRAME TrapFrame
,
43 KiSsFromTrapFrame(IN PKTRAP_FRAME TrapFrame
)
50 KiSsToTrapFrame(IN PKTRAP_FRAME TrapFrame
,
57 KiTagWordFnsaveToFxsave(USHORT TagWord
)
64 KeContextToTrapFrame(IN PCONTEXT Context
,
65 IN OUT PKEXCEPTION_FRAME ExceptionFrame
,
66 IN OUT PKTRAP_FRAME TrapFrame
,
67 IN ULONG ContextFlags
,
68 IN KPROCESSOR_MODE PreviousMode
)
74 KeTrapFrameToContext(IN PKTRAP_FRAME TrapFrame
,
75 IN PKEXCEPTION_FRAME ExceptionFrame
,
76 IN OUT PCONTEXT Context
)
82 KiDispatchException(IN PEXCEPTION_RECORD ExceptionRecord
,
83 IN PKEXCEPTION_FRAME ExceptionFrame
,
84 IN PKTRAP_FRAME TrapFrame
,
85 IN KPROCESSOR_MODE PreviousMode
,
86 IN BOOLEAN FirstChance
)
88 DbgPrint("EXCEPTION! Record %08x Frame %08x\n",
89 ExceptionRecord
, ExceptionFrame
);
91 KeBugCheck(KMODE_EXCEPTION_NOT_HANDLED
);
99 KeRaiseUserException(IN NTSTATUS ExceptionCode
)
101 return STATUS_SUCCESS
;