VirtualBox

source: vbox/trunk/src/VBox/Additions/WINNT/Graphics/Wine/include/msvcrt/setjmp.h@ 28475

Last change on this file since 28475 was 28475, checked in by vboxsync, 15 years ago

crOpenGL: update to wine 1.1.43

  • Property svn:eol-style set to native
File size: 2.9 KB
Line 
1/*
2 * Setjmp/Longjmp definitions
3 *
4 * Copyright 2001 Francois Gouget.
5 *
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
10 *
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
15 *
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
19 */
20
21/*
22 * Sun LGPL Disclaimer: For the avoidance of doubt, except that if any license choice
23 * other than GPL or LGPL is available it will apply instead, Sun elects to use only
24 * the Lesser General Public License version 2.1 (LGPLv2) at this time for any software where
25 * a choice of LGPL license versions is made available with the language indicating
26 * that LGPLv2 or any later version may be used, or where a choice of which version
27 * of the LGPL is applied is otherwise unspecified.
28 */
29
30#ifndef __WINE_SETJMP_H
31#define __WINE_SETJMP_H
32
33#include <crtdefs.h>
34
35#include <pshpack8.h>
36
37#ifdef __i386__
38
39typedef struct __JUMP_BUFFER
40{
41 unsigned long Ebp;
42 unsigned long Ebx;
43 unsigned long Edi;
44 unsigned long Esi;
45 unsigned long Esp;
46 unsigned long Eip;
47 unsigned long Registration;
48 unsigned long TryLevel;
49 /* Start of new struct members */
50 unsigned long Cookie;
51 unsigned long UnwindFunc;
52 unsigned long UnwindData[6];
53} _JUMP_BUFFER;
54
55#define _JBLEN 16
56#define _JBTYPE int
57
58#elif defined(__x86_64__)
59
60typedef struct _SETJMP_FLOAT128
61{
62 unsigned __int64 DECLSPEC_ALIGN(16) Part[2];
63} SETJMP_FLOAT128;
64
65typedef struct _JUMP_BUFFER
66{
67 unsigned __int64 Frame;
68 unsigned __int64 Rbx;
69 unsigned __int64 Rsp;
70 unsigned __int64 Rbp;
71 unsigned __int64 Rsi;
72 unsigned __int64 Rdi;
73 unsigned __int64 R12;
74 unsigned __int64 R13;
75 unsigned __int64 R14;
76 unsigned __int64 R15;
77 unsigned __int64 Rip;
78 unsigned __int64 Spare;
79 SETJMP_FLOAT128 Xmm6;
80 SETJMP_FLOAT128 Xmm7;
81 SETJMP_FLOAT128 Xmm8;
82 SETJMP_FLOAT128 Xmm9;
83 SETJMP_FLOAT128 Xmm10;
84 SETJMP_FLOAT128 Xmm11;
85 SETJMP_FLOAT128 Xmm12;
86 SETJMP_FLOAT128 Xmm13;
87 SETJMP_FLOAT128 Xmm14;
88 SETJMP_FLOAT128 Xmm15;
89} _JUMP_BUFFER;
90
91#define _JBLEN 16
92typedef SETJMP_FLOAT128 _JBTYPE;
93
94#else
95
96#define _JBLEN 1
97#define _JBTYPE int
98
99#endif
100
101typedef _JBTYPE jmp_buf[_JBLEN];
102
103#ifdef __cplusplus
104extern "C" {
105#endif
106
107int __cdecl _setjmp(jmp_buf);
108int __cdecl longjmp(jmp_buf,int);
109
110#ifdef __cplusplus
111}
112#endif
113
114#define setjmp _setjmp
115
116#include <poppack.h>
117
118#endif /* __WINE_SETJMP_H */
Note: See TracBrowser for help on using the repository browser.

© 2024 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette