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)
 


OSCL API
Posting Version: CORE_8.000.1.1_RC4