summaryrefslogtreecommitdiff
path: root/com32/include/setjmp.h
blob: e70909559c1c3833f465558863221c1a9e71e5a5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
/*
 * setjmp.h
 */

#ifndef _SETJMP_H
#define _SETJMP_H

#include <klibc/extern.h>
#include <klibc/compiler.h>
#include <stddef.h>

#if __SIZEOF_POINTER__ == 4
#include <klibc/i386/archsetjmp.h>
#elif __SIZEOF_POINTER__ == 8
#include <klibc/x86_64/archsetjmp.h>
#else
#error "unsupported architecture"
#endif

__extern int setjmp(jmp_buf);
__extern __noreturn longjmp(jmp_buf, int);

typedef jmp_buf sigjmp_buf;

#define sigsetjmp(__env, __save) setjmp(__env)
#define siglongjmp(__env, __val) longjmp(__env, __val)

#endif /* _SETJMP_H */