VirtualBox

source: vbox/trunk/src/VBox/Devices/Graphics/shaderlib/wine/include/msvcrt/setjmp.h@ 53206

最後變更 在這個檔案從53206是 53206,由 vboxsync 提交於 10 年 前

Devices/vmsvga: header fixes

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 3.3 KB
 
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 * Oracle 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, Oracle 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#elif defined(__arm__)
95
96typedef struct _JUMP_BUFFER
97{
98 unsigned long Frame;
99 unsigned long R4;
100 unsigned long R5;
101 unsigned long R6;
102 unsigned long R7;
103 unsigned long R8;
104 unsigned long R9;
105 unsigned long R10;
106 unsigned long R11;
107 unsigned long Sp;
108 unsigned long Pc;
109 unsigned long Fpscr;
110 unsigned long long D[8];
111} _JUMP_BUFFER;
112
113#define _JBLEN 28
114#define _JBTYPE int
115
116#else
117
118#define _JBLEN 1
119#define _JBTYPE int
120
121#endif
122
123typedef _JBTYPE jmp_buf[_JBLEN];
124
125#ifdef __cplusplus
126extern "C" {
127#endif
128
129int __cdecl _setjmp(jmp_buf);
130void __cdecl longjmp(jmp_buf,int);
131
132#ifdef __cplusplus
133}
134#endif
135
136#define setjmp _setjmp
137
138#include <poppack.h>
139
140#endif /* __WINE_SETJMP_H */
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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