115 lines
2.4 KiB
C
Raw Normal View History

2001-01-01 00:00:00 +01:00
/*++
Copyright (c) 1990 Microsoft Corporation
Module Name:
ntrtlalp.h
Abstract:
Alpha specific parts of ntrtlp.h.
Author:
David N. Cutler (davec) 19-Apr-90
Revision History:
Thomas Van Baak (tvb) 5-May-1992
Adapted for Alpha AXP.
*/
// Define exception routine function prototypes.
EXCEPTION_DISPOSITION
RtlpExecuteHandlerForException (
IN PEXCEPTION_RECORD ExceptionRecord,
IN ULONG_PTR EstablisherFrame,
IN OUT PCONTEXT ContextRecord,
IN OUT PDISPATCHER_CONTEXT DispatcherContext,
IN PEXCEPTION_ROUTINE ExceptionRoutine
);
EXCEPTION_DISPOSITION
RtlpExecuteHandlerForUnwind (
IN PEXCEPTION_RECORD ExceptionRecord,
IN ULONG_PTR EstablisherFrame,
IN OUT PCONTEXT ContextRecord,
IN OUT PDISPATCHER_CONTEXT DispatcherContext,
IN PEXCEPTION_ROUTINE ExceptionRoutine
);
// Define procedure prototypes for exception filter and termination handler
// execution routines.
LONG
RtlpExecuteExceptionFilter (
PEXCEPTION_POINTERS ExceptionPointers,
EXCEPTION_FILTER ExceptionFilter,
ULONG_PTR EstablisherFrame
);
VOID
RtlpExecuteTerminationHandler (
BOOLEAN AbnormalTermination,
TERMINATION_HANDLER TerminationHandler,
ULONG_PTR EstablisherFrame
);
// Define function prototype for restore context.
VOID
RtlpRestoreContext (
IN PCONTEXT Context
);
#if DBG
// Define global flags to debug/validate exception handling for Alpha.
extern ULONG RtlDebugFlags;
// Print exception records as delivered by PALcode (KiDispatchException).
#define RTL_DBG_PAL_EXCEPTION 0x00001
// Software raised exceptions (RtlRaiseException, RtlRaiseStatus).
#define RTL_DBG_RAISE_EXCEPTION 0x00002
// Find a handler to take the exception (RtlDispatchException).
#define RTL_DBG_DISPATCH_EXCEPTION 0x00030
#define RTL_DBG_DISPATCH_EXCEPTION_DETAIL 0x00020
// Call handlers and unwind to a target frame (RtlUnwind).
#define RTL_DBG_UNWIND 0x00300
#define RTL_DBG_UNWIND_DETAIL 0x00200
// Climb one frame up the call stack (RtlVirtualUnwind).
#define RTL_DBG_VIRTUAL_UNWIND 0x03000
#define RTL_DBG_VIRTUAL_UNWIND_DETAIL 0x02000
// Find the function entry for a given PC (RtlLookupFunctionEntry).
#define RTL_DBG_FUNCTION_ENTRY 0x30000
#define RTL_DBG_FUNCTION_ENTRY_DETAIL 0x20000
#endif // DBG