Main Page Modules Class Hierarchy Data Structures File List Data Fields Globals Related Pages

# oscl_error_imp_jumps.h File Reference

Implemenation of using Setjmp / Longjmp. More...

`#include "oscl_error_trapcleanup.h"`
`#include "oscl_assert.h"`
`#include "osclconfig_error.h"`
`#include "oscl_defalloc.h"`
`#include "oscl_error.h"`

Go to the source code of this file.

## Data Structures
class | OsclJump
## Defines
#define | OSCL_JUMP_MAX_JUMP_MARKS OSCL_MAX_TRAP_LEVELS
#define | internalLeave (-1)
#define | PVError_DoLeave() OsclJump::StaticJump(internalLeave)
#define | _PV_TRAP(__r, __s)
#define | _PV_TRAP_NO_TLS(__trapimp, __r, __s)

## Detailed Description

Implemenation of using Setjmp / Longjmp.

## Define Documentation

#define _PV_TRAP | ( | __r,
|  | __s |  | ) |

| Value:
    __r=OsclErrNone;\
        {\
            OsclErrorTrapImp* __trap=OsclErrorTrapImp::Trap();\
            if(!__trap){__s;}else{\
            int __tr=setjmp(*(__trap->iJumpData->Top()));\
            if (__tr==0)\
            {__s;}\
            else if (__tr==internalLeave)\
            {__r=__trap->iLeave;}\
            __trap->UnTrap();}\
        }

#define _PV_TRAP_NO_TLS | ( | __trapimp,
|  | __r,
|  | __s |  | ) |

| Value:
    __r=OsclErrNone;\
        {\
            OsclErrorTrapImp* __trap=OsclErrorTrapImp::TrapNoTls(__trapimp);\
            if(!__trap){__s;}else{\
            int __tr=setjmp(*(__trap->iJumpData->Top()));\
            if (__tr==0)\
            {__s;}\
            else if (__tr==internalLeave)\
            {__r=__trap->iLeave;}\
            __trap->UnTrap();}\
        }

#define PVError_DoLeave | (
|  | ) | OsclJump::StaticJump(internalLeave)