Fix compilation errors on FreeBSD.
[wine] / include / msvcrt / setjmp.h
1 /*
2  * Setjmp/Longjmp definitions
3  *
4  * Copyright 2001 Francois Gouget.
5  */
6 #ifndef __WINE_SETJMP_H
7 #define __WINE_SETJMP_H
8 #define __WINE_USE_MSVCRT
9
10 #ifdef USE_MSVCRT_PREFIX
11 #define MSVCRT(x)    MSVCRT_##x
12 #else
13 #define MSVCRT(x)    x
14 #endif
15
16
17 #ifdef __i386__
18
19 #define _JBLEN                     16
20 #define _JBTYPE                    int
21
22 typedef struct __JUMP_BUFFER
23 {
24     unsigned long Ebp;
25     unsigned long Ebx;
26     unsigned long Edi;
27     unsigned long Esi;
28     unsigned long Esp;
29     unsigned long Eip;
30     unsigned long Registration;
31     unsigned long TryLevel;
32     /* Start of new struct members */
33     unsigned long Cookie;
34     unsigned long UnwindFunc;
35     unsigned long UnwindData[6];
36 } _JUMP_BUFFER;
37
38 #endif /* __i386__ */
39
40 typedef _JBTYPE MSVCRT(jmp_buf)[_JBLEN];
41
42
43 #ifdef __cplusplus
44 extern "C" {
45 #endif
46
47 int         MSVCRT(_setjmp)( MSVCRT(jmp_buf));
48 int         MSVCRT(longjmp)( MSVCRT(jmp_buf),int);
49
50 #ifdef __cplusplus
51 }
52 #endif
53
54 #ifndef USE_MSVCRT_PREFIX
55 #define setjmp _setjmp
56 #endif
57
58 #endif /* __WINE_SETJMP_H */