123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111 |
- #ifndef _SETJMP
- #define _SETJMP
- #include <linkage.h>
- #pragma diag_push
- #pragma CHECK_MISRA("-6.3")
- #pragma CHECK_MISRA("-19.7")
- #pragma CHECK_MISRA("-20.1")
- #pragma CHECK_MISRA("-20.2")
- #ifdef __cplusplus
- extern "C" namespace std {
- #endif
- #pragma diag_push
- #pragma CHECK_MISRA("-19.4")
- #if defined(__TMS320C6X__) && defined(__TI_EABI__)
- #define setjmp(x) setjmp(x)
- #else
- #define setjmp(x) _setjmp(x)
- #endif
- #pragma diag_pop
- typedef int jmp_buf[13];
- #if defined(__EDG_JMP_BUF_NUM_ELEMENTS)
- #if __EDG_JMP_BUF_NUM_ELEMENTS !=13
- #error "Front end and runtime disagree on size of jmp_buf"
- #endif
- #endif
- #pragma diag_push
- #pragma CHECK_MISRA("-20.7")
- #pragma CHECK_MISRA("-5.6")
- #if defined(__TMS320C6X__) && defined(__TI_EABI__)
- _CODE_ACCESS int setjmp(jmp_buf env);
- #else
- _CODE_ACCESS int _setjmp(jmp_buf env);
- #endif
- _CODE_ACCESS void longjmp(jmp_buf env, int val);
- #pragma diag_pop
- #ifdef __cplusplus
- }
- #endif
- #pragma diag_pop
- #endif
- #pragma diag_push
- #pragma CHECK_MISRA("-19.15")
- #if defined(__cplusplus) && !defined(_CPP_STYLE_HEADER)
- using std::jmp_buf;
- #if defined(__TMS320C6X__) && defined(__TI_EABI__)
- using std::setjmp;
- #else
- using std::_setjmp;
- #endif
- using std::longjmp;
- #endif
- #pragma diag_pop
|