OWLNext    7.0
Borland's Object Windows Library for the modern age
Loading...
Searching...
No Matches
unixxcpt.cpp File Reference

GNU support
More...

#include <owl/window.h>
#include <owl/registry.h>
#include <pshpack8.h>
#include <poppack.h>

Go to the source code of this file.

Namespaces

namespace  owl
 Object Windows Library (OWLNext Core)
 

Macros

#define _EXCPT_H
 
#define _EXCPT_H_
 
#define EH_NONCONTINUABLE   0x01
 
#define EH_UNWINDING   0x02
 
#define EH_EXIT_UNWIND   0x04
 
#define EH_STACK_INVALID   0x08
 
#define EH_NESTED_CALL   0x10
 
#define EXCEPTION_EXECUTE_HANDLER   1
 
#define EXCEPTION_CONTINUE_SEARCH   0
 
#define GetExceptionInformation()   __vcer.xcept_ptrs
 
#define GetExceptionCode()   (**((int**)__vcer.xcept_ptrs))
 
#define RpcExceptionCode()   GetExceptionCode()
 
#define _SXV(args...)
 
#define _try
 
#define _except(args...)
 
#define __try   _try
 
#define __try__   _try
 
#define __except   _except
 
#define __except__   _except
 
#define TRYLEVEL_NONE   -1
 

Enumerations

enum  EXCEPTION_DISPOSITION { ExceptionContinueExecution , ExceptionContinueSearch , ExceptionNestedException , ExceptionCollidedUnwind }
 

Functions

int mexcept_handler3 (struct _EXCEPTION_RECORD *pExceptionRecord, VC_EXCEPTION_REGISTRATION *pRegistrationFrame, struct _CONTEXT *pContextRecord, void *)
 
void _global_unwind2 (void *)
 
void _local_unwind2 (void *, int)
 
TDrawItemowl::lTCB (uint32 data)
 

Detailed Description

GNU support

Definition in file unixxcpt.cpp.

Macro Definition Documentation

◆ __except

#define __except   _except

Definition at line 144 of file unixxcpt.cpp.

◆ __except__

#define __except__   _except

Definition at line 145 of file unixxcpt.cpp.

◆ __try

#define __try   _try

Definition at line 142 of file unixxcpt.cpp.

◆ __try__

#define __try__   _try

Definition at line 143 of file unixxcpt.cpp.

◆ _except

#define _except ( args...)
Value:
__asm__ __volatile__("/BEGIN_EXCEPT\n");\
".section .rdata\n"\
".align 16, 0x0\n\t"\
"5:.int -1, 1f, 2f\n"\
".text\n\t"\
"jmp 2f\n"\
"1:\n");\
"cmpl $-1,%1\n\t"\
"je 4f\n\t"\
"incl %0\n\t"\
: "=m" (__xcpt_happened)\
);\
"4:ret\n\t"\
"2:\n"\
"/ reset __except_list to previous exception function\n\t"\
"movl %0,%%fs:__except_list\n" : : "r" (__vcer.prev) : "memory");\
--__vcer.trylevel;\
__asm__ __volatile__("/END_EXCEPT\n");\

Definition at line 115 of file unixxcpt.cpp.

◆ _EXCPT_H

#define _EXCPT_H

Definition at line 8 of file unixxcpt.cpp.

◆ _EXCPT_H_

#define _EXCPT_H_

Definition at line 9 of file unixxcpt.cpp.

◆ _SXV

#define _SXV ( args...)
Value:
__asm__ __volatile__("/BEGIN_SXV\n"); \
__asm__ __volatile__(".equ __except_list, 0\n"); \
__vcer.trylevel=(unsigned long)-1; \
__vcer.handler=(unsigned long)&mexcept_handler3; \
__asm__ __volatile__("/END_SXV\n");
int mexcept_handler3(struct _EXCEPTION_RECORD *pExceptionRecord, VC_EXCEPTION_REGISTRATION *pRegistrationFrame, struct _CONTEXT *pContextRecord, void *)
Definition unixxcpt.cpp:174

Definition at line 83 of file unixxcpt.cpp.

◆ _try

#define _try
Value:
"/ BEGIN_TRY\n\t"\
"movl %%esp, %0;\n\t"\
"movl %%ebp, %1;\n"\
: "=g" (__vcer.stan_stack), "=g" (__vcer._ebp) : );\
"movl %%fs:__except_list,%0\n\t"\
"movl %2,%%fs:__except_list\n\t"\
"/ ScopeTable Pointer\n\t"\
"movl $5f,%1\n"\
: "=g" (__vcer.prev), "=m" (__vcer.tbl_ptr): "r" (&__vcer.prev) : "memory");\
++__vcer.trylevel;\
__asm__ __volatile__("/ END_TRY");\
if(1)

Definition at line 94 of file unixxcpt.cpp.

◆ EH_EXIT_UNWIND

#define EH_EXIT_UNWIND   0x04

Definition at line 54 of file unixxcpt.cpp.

◆ EH_NESTED_CALL

#define EH_NESTED_CALL   0x10

Definition at line 56 of file unixxcpt.cpp.

◆ EH_NONCONTINUABLE

#define EH_NONCONTINUABLE   0x01

Definition at line 52 of file unixxcpt.cpp.

◆ EH_STACK_INVALID

#define EH_STACK_INVALID   0x08

Definition at line 55 of file unixxcpt.cpp.

◆ EH_UNWINDING

#define EH_UNWINDING   0x02

Definition at line 53 of file unixxcpt.cpp.

◆ EXCEPTION_CONTINUE_SEARCH

#define EXCEPTION_CONTINUE_SEARCH   0

Definition at line 60 of file unixxcpt.cpp.

◆ EXCEPTION_EXECUTE_HANDLER

#define EXCEPTION_EXECUTE_HANDLER   1

Definition at line 58 of file unixxcpt.cpp.

◆ GetExceptionCode

#define GetExceptionCode ( )    (**((int**)__vcer.xcept_ptrs))

Definition at line 74 of file unixxcpt.cpp.

◆ GetExceptionInformation

#define GetExceptionInformation ( )    __vcer.xcept_ptrs

Definition at line 71 of file unixxcpt.cpp.

◆ RpcExceptionCode

#define RpcExceptionCode ( )    GetExceptionCode()

Definition at line 77 of file unixxcpt.cpp.

◆ TRYLEVEL_NONE

#define TRYLEVEL_NONE   -1

Definition at line 162 of file unixxcpt.cpp.

Enumeration Type Documentation

◆ EXCEPTION_DISPOSITION

Enumerator
ExceptionContinueExecution 
ExceptionContinueSearch 
ExceptionNestedException 
ExceptionCollidedUnwind 

Definition at line 62 of file unixxcpt.cpp.

Function Documentation

◆ _global_unwind2()

void _global_unwind2 ( void * )

◆ _local_unwind2()

void _local_unwind2 ( void * ,
int  )

◆ mexcept_handler3()

int __cdecl mexcept_handler3 ( struct _EXCEPTION_RECORD * pExceptionRecord,
VC_EXCEPTION_REGISTRATION * pRegistrationFrame,
struct _CONTEXT * pContextRecord,
void *  )