VirtualBox

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

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

Devices/Main: vmsvga updates

  • 屬性 svn:eol-style 設為 native
  • 屬性 svn:keywords 設為 Author Date Id Revision
檔案大小: 2.8 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#ifndef __WINE_SETJMP_H
21#define __WINE_SETJMP_H
22
23#include <crtdefs.h>
24
25#include <pshpack8.h>
26
27#ifdef __i386__
28
29typedef struct __JUMP_BUFFER
30{
31 unsigned long Ebp;
32 unsigned long Ebx;
33 unsigned long Edi;
34 unsigned long Esi;
35 unsigned long Esp;
36 unsigned long Eip;
37 unsigned long Registration;
38 unsigned long TryLevel;
39 /* Start of new struct members */
40 unsigned long Cookie;
41 unsigned long UnwindFunc;
42 unsigned long UnwindData[6];
43} _JUMP_BUFFER;
44
45#define _JBLEN 16
46#define _JBTYPE int
47
48#elif defined(__x86_64__)
49
50typedef struct _SETJMP_FLOAT128
51{
52 unsigned __int64 DECLSPEC_ALIGN(16) Part[2];
53} SETJMP_FLOAT128;
54
55typedef struct _JUMP_BUFFER
56{
57 unsigned __int64 Frame;
58 unsigned __int64 Rbx;
59 unsigned __int64 Rsp;
60 unsigned __int64 Rbp;
61 unsigned __int64 Rsi;
62 unsigned __int64 Rdi;
63 unsigned __int64 R12;
64 unsigned __int64 R13;
65 unsigned __int64 R14;
66 unsigned __int64 R15;
67 unsigned __int64 Rip;
68 unsigned __int64 Spare;
69 SETJMP_FLOAT128 Xmm6;
70 SETJMP_FLOAT128 Xmm7;
71 SETJMP_FLOAT128 Xmm8;
72 SETJMP_FLOAT128 Xmm9;
73 SETJMP_FLOAT128 Xmm10;
74 SETJMP_FLOAT128 Xmm11;
75 SETJMP_FLOAT128 Xmm12;
76 SETJMP_FLOAT128 Xmm13;
77 SETJMP_FLOAT128 Xmm14;
78 SETJMP_FLOAT128 Xmm15;
79} _JUMP_BUFFER;
80
81#define _JBLEN 16
82typedef SETJMP_FLOAT128 _JBTYPE;
83
84#elif defined(__arm__)
85
86typedef struct _JUMP_BUFFER
87{
88 unsigned long Frame;
89 unsigned long R4;
90 unsigned long R5;
91 unsigned long R6;
92 unsigned long R7;
93 unsigned long R8;
94 unsigned long R9;
95 unsigned long R10;
96 unsigned long R11;
97 unsigned long Sp;
98 unsigned long Pc;
99 unsigned long Fpscr;
100 unsigned long long D[8];
101} _JUMP_BUFFER;
102
103#define _JBLEN 28
104#define _JBTYPE int
105
106#else
107
108#define _JBLEN 1
109#define _JBTYPE int
110
111#endif
112
113typedef _JBTYPE jmp_buf[_JBLEN];
114
115#ifdef __cplusplus
116extern "C" {
117#endif
118
119int __cdecl _setjmp(jmp_buf);
120void __cdecl longjmp(jmp_buf,int);
121
122#ifdef __cplusplus
123}
124#endif
125
126#define setjmp _setjmp
127
128#include <poppack.h>
129
130#endif /* __WINE_SETJMP_H */
注意: 瀏覽 TracBrowser 來幫助您使用儲存庫瀏覽器

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