Open Enclave  0.13.0
Data Structures | Macros | Typedefs | Functions | Variables
exception.h File Reference

This file defines data structures to set up vectored exception handlers in the enclave. More...

#include <openenclave/bits/defs.h>
#include <openenclave/bits/types.h>
Include dependency graph for exception.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Data Structures

struct  _oe_basic_xstate
 Blob that contains X87 and SSE data. More...
 
struct  _oe_context
 Register state to be saved before an exception and restored after the exception has been handled in the enclave. More...
 
struct  _oe_exception_record
 Exception context structure with the exception code, flags, address and calling context of the exception. More...
 

Macros

#define OE_EXCEPTION_CONTINUE_SEARCH   0x0
 Return value used by an enclave vectored exception handler to indicate to the dispatcher that it should continue searching for the next handler. More...
 
#define OE_EXCEPTION_CONTINUE_EXECUTION   0xFFFFFFFF
 Return value used by an enclave vectored exception handler to indicate to the dispatcher that it should stop searching and continue execution. More...
 
#define OE_EXCEPTION_DIVIDE_BY_ZERO   0x0
 Divider exception code, used by vectored exception handler.
 
#define OE_EXCEPTION_BREAKPOINT   0x1
 Debug exception code, used by vectored exception handler.
 
#define OE_EXCEPTION_BOUND_OUT_OF_RANGE   0x2
 Bound range exceeded exception code, used by vectored exception handler.
 
#define OE_EXCEPTION_ILLEGAL_INSTRUCTION   0x3
 Illegal instruction exception code, used by vectored exception handler.
 
#define OE_EXCEPTION_ACCESS_VIOLATION   0x4
 Access violation exception code, used by vectored exception handler.
 
#define OE_EXCEPTION_PAGE_FAULT   0x5
 Page fault exception code, used by vectored exception handler.
 
#define OE_EXCEPTION_X87_FLOAT_POINT   0x6
 x87 floating point exception code, used by vectored exception handler.
 
#define OE_EXCEPTION_MISALIGNMENT   0x7
 Alignment check exception code, used by vectored exception handler.
 
#define OE_EXCEPTION_SIMD_FLOAT_POINT   0x8
 SIMD floating point exception code, used by vectored exception handler.
 
#define OE_EXCEPTION_UNKNOWN   0xFFFFFFFF
 Unknown exception code, used by vectored exception handler.
 
#define OE_EXCEPTION_FLAGS_HARDWARE   0x1
 Hardware exception flag, set when enclave software exited due to hardware exception.
 
#define OE_EXCEPTION_FLAGS_SOFTWARE   0x2
 Software exception flag, set when enclave software exited due to software exception.
 

Typedefs

typedef struct _oe_context oe_context_t
 Register state to be saved before an exception and restored after the exception has been handled in the enclave. More...
 
typedef struct _oe_exception_record oe_exception_record_t
 Exception context structure with the exception code, flags, address and calling context of the exception. More...
 
typedef uint64_t(* oe_vectored_exception_handler_t) (oe_exception_record_t *exception_context)
 oe_vectored_exception_handler_t - Function pointer for a vectored exception handler in an enclave. More...
 

Functions

struct _oe_basic_xstate OE_ALIGNED (16) oe_basic_xstate_t
 Blob that contains X87 and SSE data. More...
 

Variables

uint8_t blob [512]
 Holds XState i.e. More...
 

Detailed Description

This file defines data structures to set up vectored exception handlers in the enclave.