17777dab0Sopenharmony_ci#ifndef _SETJMP_H 27777dab0Sopenharmony_ci#define _SETJMP_H 37777dab0Sopenharmony_ci 47777dab0Sopenharmony_ci#ifdef __cplusplus 57777dab0Sopenharmony_ciextern "C" { 67777dab0Sopenharmony_ci#endif 77777dab0Sopenharmony_ci 87777dab0Sopenharmony_ci#include <features.h> 97777dab0Sopenharmony_ci 107777dab0Sopenharmony_ci#include <bits/setjmp.h> 117777dab0Sopenharmony_ci 127777dab0Sopenharmony_citypedef struct __jmp_buf_tag { 137777dab0Sopenharmony_ci __jmp_buf __jb; 147777dab0Sopenharmony_ci unsigned long __fl; 157777dab0Sopenharmony_ci unsigned long __ss[128/sizeof(long)]; 167777dab0Sopenharmony_ci} jmp_buf[1]; 177777dab0Sopenharmony_ci 187777dab0Sopenharmony_ci#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) \ 197777dab0Sopenharmony_ci || defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 207777dab0Sopenharmony_ci || defined(_BSD_SOURCE) 217777dab0Sopenharmony_citypedef jmp_buf sigjmp_buf; 227777dab0Sopenharmony_ciint sigsetjmp (sigjmp_buf, int); 237777dab0Sopenharmony_ci_Noreturn void siglongjmp (sigjmp_buf, int); 247777dab0Sopenharmony_ci#endif 257777dab0Sopenharmony_ci 267777dab0Sopenharmony_ci#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) \ 277777dab0Sopenharmony_ci || defined(_BSD_SOURCE) 287777dab0Sopenharmony_ciint _setjmp (jmp_buf); 297777dab0Sopenharmony_ci_Noreturn void _longjmp (jmp_buf, int); 307777dab0Sopenharmony_ci#endif 317777dab0Sopenharmony_ci 327777dab0Sopenharmony_ciint setjmp (jmp_buf); 337777dab0Sopenharmony_ci_Noreturn void longjmp (jmp_buf, int); 347777dab0Sopenharmony_ci 357777dab0Sopenharmony_ci#define setjmp setjmp 367777dab0Sopenharmony_ci 377777dab0Sopenharmony_ci#ifdef __cplusplus 387777dab0Sopenharmony_ci} 397777dab0Sopenharmony_ci#endif 407777dab0Sopenharmony_ci 417777dab0Sopenharmony_ci#endif 42