Source code of Windows XP (NT5)
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
/***
*except.h - defines exception values, types and routines * * Copyright (c) 1990-1994, Microsoft Corporation. All rights reserved. * *Purpose: * This file defines the exception values, types and declares the * associated functions. * ****/
#ifndef _INC_EXCEPT
#ifdef __cplusplus
extern "C" { #endif
#if (_MSC_VER <= 600)
#define __cdecl _cdecl
#endif
/*
* exception codes defined by the host OS * * NOTE: THE UNDERSCORE PREFIX IN THE FOLLOWING NAMES WAS ADDED TO CONFORM * WITH ANSI NAMESPACE REQUIREMENTS. */
#define _XCPT_GUARD_PAGE_VIOLATION 0x80000001
#define _XCPT_UNABLE_TO_GROW_STACK 0x80010001
#define _XCPT_DATATYPE_MISALIGNMENT 0xC000009E
#define _XCPT_BREAKPOINT 0xC000009F
#define _XCPT_SINGLESTEP 0xC00000A0
#define _XCPT_ACCESS_VIOLATION 0xC0000005
#define _XCPT_ILLEGAL_INSTRUCTION 0xC000001C
#define _XCPT_FLOATING_DENORMAL_OPERAND 0xC0000094
#define _XCPT_FLOATING_DIVIDE_BY_ZERO 0xC0000095
#define _XCPT_FLOATING_INEXACT_RESULT 0xC0000096
#define _XCPT_FLOATING_INVALID_OPERATION 0xC0000097
#define _XCPT_FLOATING_OVERFLOW 0xC0000098
#define _XCPT_FLOATING_STACK_CHECK 0xC0000099
#define _XCPT_FLOATING_UNDERFLOW 0xC000009A
#define _XCPT_INTEGER_DIVIDE_BY_ZERO 0xC000009B
#define _XCPT_INTEGER_OVERFLOW 0xC000009C
#define _XCPT_PRIVILEGED_INSTRUCTION 0xC000009D
#define _XCPT_IN_PAGE_ERROR 0xC0000006
#define _XCPT_PROCESS_TERMINATE 0xC0010001
#define _XCPT_ASYNC_PROCESS_TERMINATE 0xC0010002
#define _XCPT_NONCONTINUABLE_EXCEPTION 0xC0000024
#define _XCPT_INVALID_DISPOSITION 0xC0000025
#define _XCPT_INVALID_LOCK_SEQUENCE 0xC000001D
#define _XCPT_ARRAY_BOUNDS_EXCEEDED 0xC0000093
#define _XCPT_B1NPX_ERRATA_02 0xC0010004
#define _XCPT_UNWIND 0xC0000026
#define _XCPT_BAD_STACK 0xC0000027
#define _XCPT_INVALID_UNWIND_TARGET 0xC0000028
#define _XCPT_SIGNAL 0xC0010003
/*
* exception codes defined by the C runtime */
#define _XCPT_SIGABRT 0x20000001
#define _XCPT_SIGUSR1 0x20000002
#define _XCPT_SIGUSR2 0x20000003
#define _XCPT_SIGUSR3 0x20000004
#define _XCPT_FLOATING_EXPLICITGEN 0x20000005
/*
* constants, structs and types used in exception handling at the OS level * * NOTE: MANY OF IDENTIFIERS DEFINED BELOW ARE FROM DCR 1024. HOWEVER, THEY * HAVE BEEN CHANGED TO CONFORM WITH ANSI NAMESPACE RESTRICTIONS. */
#define _EXCEPTION_MAXIMUM_PARAMETERS 4
struct __EXCEPTIONREPORTRECORD { unsigned long ExceptionNum; unsigned long fHandlerFlags; struct __EXCEPTIONREPORTRECORD * NestedExceptionReportRecord; void * ExceptionAddress; unsigned long cParameters; unsigned long ExceptionInfo[_EXCEPTION_MAXIMUM_PARAMETERS]; };
typedef struct __EXCEPTIONREPORTRECORD _EXCEPTIONREPORTRECORD; typedef struct __EXCEPTIONREPORTRECORD * _PEXCEPTIONREPORTRECORD;
/*
* values of ExceptionInfo[0] for _XCPT_SIGNAL. */
#define _XCPT_SIGNAL_INTR 1 /* corresponds to SIGINT */
#define _XCPT_SIGNAL_KILLPROC 3 /* corresponds to SIGTERM */
#define _XCPT_SIGNAL_BREAK 4 /* corresponds to SIGBREAK */
/*
* NOTE: THE FOLLOWING DEFINITION FOR _PCONTEXTRECORD IS INCORRECT, BUT I * DON'T ACTUALLY USE IT FOR ANYTHING AND REAL DEFINITION WOULD TAKE A GOOD * TWO PAGES. SEE PAGES 16 AND 17 OF VOL1.TXT FOR THE CORRECT DEFINITION. */
typedef void * _PCONTEXTRECORD;
/*
* structure used by SEH support function and intrinsics. the information * passed by the exception dispatcher is repackaged in this form by the * runtime (_except_handler()). */
struct __EXCEPTION_INFO_PTRS { _PEXCEPTIONREPORTRECORD preport; _PCONTEXTRECORD pcontext; };
typedef struct __EXCEPTION_INFO_PTRS * _PEXCEPTION_INFO_PTRS;
#ifndef _MAC_
/*
* prototypes for intrinsic SEH functions */
unsigned long __cdecl _exception_code(void); void * __cdecl _exception_info(void); int __cdecl _abnormal_termination(void); #endif /* ndef _MAC_ */
#ifdef __cplusplus
} #endif
#define _INC_EXCEPT
#endif /* _INC_EXCEPT */
|