ReactOS  0.4.15-dev-3295-gaa8fc87
pseh2_64.h File Reference

Go to the source code of this file.

Macros

#define _SEH2_TRY
 
#define _SEH2_EXCEPT(...)
 
#define _SEH2_FINALLY
 
#define _SEH2_END
 
#define _SEH2_GetExceptionInformation()   __seh2$$exception_ptr__
 
#define _SEH2_GetExceptionCode()   __seh2$$exception_code__
 
#define _SEH2_AbnormalTermination()   __seh2$$abnormal_termination__
 
#define _SEH2_LEAVE   goto __seh2$$leave_scope__
 
#define _SEH2_YIELD(__stmt)   __stmt
 
#define _SEH2_VOLATILE   volatile
 

Functions

 __asm__ (".p2align 4, 0x90\n" ".seh_proc __seh2_global_filter_func\n" "__seh2_global_filter_func:\n" "\tpush %rbp\n" "\t.seh_pushreg %rbp\n" "\tsub $32, %rsp\n" "\t.seh_stackalloc 32\n" "\t.seh_endprologue\n" "\tmov %rdx, %rbp\n" "\tjmp *%rax\n" "__seh2_global_filter_func_exit:\n" "\t.p2align 4\n" "\tadd $32, %rsp\n" "\tpop %rbp\n" "\tret\n" "\t.seh_endproc")
 

Macro Definition Documentation

◆ _SEH2_AbnormalTermination

#define _SEH2_AbnormalTermination ( )    __seh2$$abnormal_termination__

Definition at line 166 of file pseh2_64.h.

◆ _SEH2_END

#define _SEH2_END
Value:
__seh2$$leave_scope__: __MINGW_ATTRIB_UNUSED; \
if (__seh2$$abnormal_termination__) \
{ \
__asm__("jmp __seh2_global_filter_func_exit"); \
} \
} \
}
#define __MINGW_ATTRIB_UNUSED
Definition: _mingw.h:124

Definition at line 155 of file pseh2_64.h.

◆ _SEH2_EXCEPT

#define _SEH2_EXCEPT (   ...)

Definition at line 40 of file pseh2_64.h.

◆ _SEH2_FINALLY

#define _SEH2_FINALLY

Definition at line 104 of file pseh2_64.h.

◆ _SEH2_GetExceptionCode

#define _SEH2_GetExceptionCode ( )    __seh2$$exception_code__

Definition at line 165 of file pseh2_64.h.

◆ _SEH2_GetExceptionInformation

#define _SEH2_GetExceptionInformation ( )    __seh2$$exception_ptr__

Definition at line 164 of file pseh2_64.h.

◆ _SEH2_LEAVE

#define _SEH2_LEAVE   goto __seh2$$leave_scope__

Definition at line 167 of file pseh2_64.h.

◆ _SEH2_TRY

#define _SEH2_TRY
Value:
{ \
__label__ __seh2$$begin_try__; \
__label__ __seh2$$end_try__; \
/* \
* We close the current SEH block for this function and install our own. \
* At this point GCC emitted its prologue, and if it saves more \
* registers, the relevant instruction will be valid for our scope as well. \
* We also count the number of try blocks at assembly level \
* to properly set the handler data when we're done. \
*/ \
__seh2$$begin_try__: \
{ \
__label__ __seh2$$leave_scope__;

Definition at line 25 of file pseh2_64.h.

◆ _SEH2_VOLATILE

#define _SEH2_VOLATILE   volatile

Definition at line 169 of file pseh2_64.h.

◆ _SEH2_YIELD

#define _SEH2_YIELD (   __stmt)    __stmt

Definition at line 168 of file pseh2_64.h.

Function Documentation

◆ __asm__()

__asm__ ( ".p2align  4,
0x90\n" ".seh_proc __seh2_global_filter_func\n" "__seh2_global_filter_func:\n" "\tpush %rbp\n" "\t.seh_pushreg %rbp\n" "\tsub  $32,
%rsp\n" "\t.seh_stackalloc 32\n" "\t.seh_endprologue\n" "\tmov %  rdx,
%rbp\n" "\tjmp *%rax\n" "__seh2_global_filter_func_exit:\n" "\t.p2align 4\n" "\tadd  $32,
%rsp\n" "\tpop %rbp\n" "\tret\n" "\t.seh_endproc"   
)