#ifndef SYSROOT_SETJMP_H_
#define SYSROOT_SETJMP_H_

#ifdef __cplusplus
extern "C" {
#endif

#include <features.h>

#include <bits/setjmp.h>

typedef struct __jmp_buf_tag {
  __jmp_buf __jb;
  unsigned long __fl;
  unsigned long __ss[128 / sizeof(long)];
} jmp_buf[1];

#if defined(_POSIX_SOURCE) || defined(_POSIX_C_SOURCE) || defined(_XOPEN_SOURCE) || \
    defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
typedef jmp_buf sigjmp_buf;
int sigsetjmp(sigjmp_buf, int);
_Noreturn void siglongjmp(sigjmp_buf, int);
#endif

#if defined(_XOPEN_SOURCE) || defined(_GNU_SOURCE) || defined(_BSD_SOURCE)
int _setjmp(jmp_buf);
_Noreturn void _longjmp(jmp_buf, int);
#endif

int setjmp(jmp_buf);
_Noreturn void longjmp(jmp_buf, int);

#define setjmp setjmp

#ifdef __cplusplus
}
#endif

#endif  // SYSROOT_SETJMP_H_
