Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-winehq
Commits
835a83e3
Commit
835a83e3
authored
Dec 04, 2020
by
Piotr Caban
Committed by
Alexandre Julliard
Dec 04, 2020
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
msvcrt: Use _JUMP_BUFFER from public header.
Signed-off-by:
Piotr Caban
<
piotr@codeweavers.com
>
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
494a7894
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
14 additions
and
96 deletions
+14
-96
except_arm.c
dlls/msvcrt/except_arm.c
+2
-1
except_arm64.c
dlls/msvcrt/except_arm64.c
+2
-1
except_i386.c
dlls/msvcrt/except_i386.c
+8
-7
except_x86_64.c
dlls/msvcrt/except_x86_64.c
+2
-1
msvcrt.h
dlls/msvcrt/msvcrt.h
+0
-86
No files found.
dlls/msvcrt/except_arm.c
View file @
835a83e3
...
...
@@ -21,6 +21,7 @@
#ifdef __arm__
#include <setjmp.h>
#include <stdarg.h>
#include <fpieee.h>
...
...
@@ -114,7 +115,7 @@ __ASM_GLOBAL_FUNC(MSVCRT__setjmp,
/*******************************************************************
* longjmp (MSVCRT.@)
*/
void
__cdecl
MSVCRT_longjmp
(
struct
MSVCRT__
_JUMP_BUFFER
*
jmp
,
int
retval
)
void
__cdecl
MSVCRT_longjmp
(
_JUMP_BUFFER
*
jmp
,
int
retval
)
{
EXCEPTION_RECORD
rec
;
...
...
dlls/msvcrt/except_arm64.c
View file @
835a83e3
...
...
@@ -22,6 +22,7 @@
#ifdef __aarch64__
#include <setjmp.h>
#include <stdarg.h>
#include <fpieee.h>
...
...
@@ -115,7 +116,7 @@ __ASM_GLOBAL_FUNC(MSVCRT__setjmp,
/*******************************************************************
* longjmp (MSVCRT.@)
*/
void
__cdecl
MSVCRT_longjmp
(
struct
MSVCRT__
_JUMP_BUFFER
*
jmp
,
int
retval
)
void
__cdecl
MSVCRT_longjmp
(
_JUMP_BUFFER
*
jmp
,
int
retval
)
{
EXCEPTION_RECORD
rec
;
...
...
dlls/msvcrt/except_i386.c
View file @
835a83e3
...
...
@@ -27,6 +27,7 @@
#ifdef __i386__
#include <setjmp.h>
#include <stdarg.h>
#include <fpieee.h>
...
...
@@ -691,7 +692,7 @@ __ASM_GLOBAL_FUNC( __CxxFrameHandler,
*
* Callback meant to be used as UnwindFunc for setjmp/longjmp.
*/
void
__stdcall
__CxxLongjmpUnwind
(
const
struct
MSVCRT__
_JUMP_BUFFER
*
buf
)
void
__stdcall
__CxxLongjmpUnwind
(
const
_JUMP_BUFFER
*
buf
)
{
cxx_exception_frame
*
frame
=
(
cxx_exception_frame
*
)
buf
->
Registration
;
const
cxx_function_descr
*
descr
=
(
const
cxx_function_descr
*
)
buf
->
UnwindData
[
0
];
...
...
@@ -1019,7 +1020,7 @@ int CDECL _except_handler4_common( ULONG *cookie, void (*check_cookie)(void),
*/
#define MSVCRT_JMP_MAGIC 0x56433230
/* ID value for new jump structure */
typedef
void
(
__stdcall
*
MSVCRT_unwind_function
)(
const
struct
MSVCRT__
_JUMP_BUFFER
*
);
typedef
void
(
__stdcall
*
MSVCRT_unwind_function
)(
const
_JUMP_BUFFER
*
);
/* define an entrypoint for setjmp/setjmp3 that stores the registers in the jmp buf */
/* and then jumps to the C backend function */
...
...
@@ -1039,7 +1040,7 @@ typedef void (__stdcall *MSVCRT_unwind_function)(const struct MSVCRT___JUMP_BUFF
* _setjmp (MSVCRT.@)
*/
DEFINE_SETJMP_ENTRYPOINT
(
MSVCRT__setjmp
)
int
CDECL
DECLSPEC_HIDDEN
__regs_MSVCRT__setjmp
(
struct
MSVCRT__
_JUMP_BUFFER
*
jmp
)
int
CDECL
DECLSPEC_HIDDEN
__regs_MSVCRT__setjmp
(
_JUMP_BUFFER
*
jmp
)
{
jmp
->
Registration
=
(
unsigned
long
)
NtCurrentTeb
()
->
Tib
.
ExceptionList
;
if
(
jmp
->
Registration
==
~
0UL
)
...
...
@@ -1056,7 +1057,7 @@ int CDECL DECLSPEC_HIDDEN __regs_MSVCRT__setjmp(struct MSVCRT___JUMP_BUFFER *jmp
* _setjmp3 (MSVCRT.@)
*/
DEFINE_SETJMP_ENTRYPOINT
(
MSVCRT__setjmp3
)
int
WINAPIV
DECLSPEC_HIDDEN
__regs_MSVCRT__setjmp3
(
struct
MSVCRT__
_JUMP_BUFFER
*
jmp
,
int
nb_args
,
...)
int
WINAPIV
DECLSPEC_HIDDEN
__regs_MSVCRT__setjmp3
(
_JUMP_BUFFER
*
jmp
,
int
nb_args
,
...)
{
jmp
->
Cookie
=
MSVCRT_JMP_MAGIC
;
jmp
->
UnwindFunc
=
0
;
...
...
@@ -1087,7 +1088,7 @@ int WINAPIV DECLSPEC_HIDDEN __regs_MSVCRT__setjmp3(struct MSVCRT___JUMP_BUFFER *
/*********************************************************************
* longjmp (MSVCRT.@)
*/
void
CDECL
MSVCRT_longjmp
(
struct
MSVCRT__
_JUMP_BUFFER
*
jmp
,
int
retval
)
void
CDECL
MSVCRT_longjmp
(
_JUMP_BUFFER
*
jmp
,
int
retval
)
{
unsigned
long
cur_frame
=
0
;
...
...
@@ -1125,7 +1126,7 @@ void CDECL MSVCRT_longjmp(struct MSVCRT___JUMP_BUFFER *jmp, int retval)
/*********************************************************************
* _seh_longjmp_unwind (MSVCRT.@)
*/
void
__stdcall
_seh_longjmp_unwind
(
struct
MSVCRT__
_JUMP_BUFFER
*
jmp
)
void
__stdcall
_seh_longjmp_unwind
(
_JUMP_BUFFER
*
jmp
)
{
msvcrt_local_unwind2
(
(
MSVCRT_EXCEPTION_FRAME
*
)
jmp
->
Registration
,
jmp
->
TryLevel
,
(
void
*
)
jmp
->
Ebp
);
}
...
...
@@ -1133,7 +1134,7 @@ void __stdcall _seh_longjmp_unwind(struct MSVCRT___JUMP_BUFFER *jmp)
/*********************************************************************
* _seh_longjmp_unwind4 (MSVCRT.@)
*/
void
__stdcall
_seh_longjmp_unwind4
(
struct
MSVCRT__
_JUMP_BUFFER
*
jmp
)
void
__stdcall
_seh_longjmp_unwind4
(
_JUMP_BUFFER
*
jmp
)
{
msvcrt_local_unwind4
(
(
ULONG
*
)
&
jmp
->
Cookie
,
(
MSVCRT_EXCEPTION_FRAME
*
)
jmp
->
Registration
,
jmp
->
TryLevel
,
(
void
*
)
jmp
->
Ebp
);
...
...
dlls/msvcrt/except_x86_64.c
View file @
835a83e3
...
...
@@ -20,6 +20,7 @@
#ifdef __x86_64__
#include <setjmp.h>
#include <stdarg.h>
#include <fpieee.h>
...
...
@@ -705,7 +706,7 @@ __ASM_GLOBAL_FUNC( MSVCRT__setjmp,
/*******************************************************************
* longjmp (MSVCRT.@)
*/
void
__cdecl
MSVCRT_longjmp
(
struct
MSVCRT__
_JUMP_BUFFER
*
jmp
,
int
retval
)
void
__cdecl
MSVCRT_longjmp
(
_JUMP_BUFFER
*
jmp
,
int
retval
)
{
EXCEPTION_RECORD
rec
;
...
...
dlls/msvcrt/msvcrt.h
View file @
835a83e3
...
...
@@ -283,92 +283,6 @@ extern unsigned msvcrt_create_io_inherit_block(WORD*, BYTE**) DECLSPEC_HIDDEN;
extern
FILE
MSVCRT__iob
[];
#ifdef __i386__
struct
MSVCRT___JUMP_BUFFER
{
unsigned
long
Ebp
;
unsigned
long
Ebx
;
unsigned
long
Edi
;
unsigned
long
Esi
;
unsigned
long
Esp
;
unsigned
long
Eip
;
unsigned
long
Registration
;
unsigned
long
TryLevel
;
/* Start of new struct members */
unsigned
long
Cookie
;
unsigned
long
UnwindFunc
;
unsigned
long
UnwindData
[
6
];
};
#elif defined(__x86_64__)
struct
MSVCRT__SETJMP_FLOAT128
{
unsigned
__int64
DECLSPEC_ALIGN
(
16
)
Part
[
2
];
};
struct
MSVCRT___JUMP_BUFFER
{
unsigned
__int64
Frame
;
unsigned
__int64
Rbx
;
unsigned
__int64
Rsp
;
unsigned
__int64
Rbp
;
unsigned
__int64
Rsi
;
unsigned
__int64
Rdi
;
unsigned
__int64
R12
;
unsigned
__int64
R13
;
unsigned
__int64
R14
;
unsigned
__int64
R15
;
unsigned
__int64
Rip
;
unsigned
__int64
Spare
;
struct
MSVCRT__SETJMP_FLOAT128
Xmm6
;
struct
MSVCRT__SETJMP_FLOAT128
Xmm7
;
struct
MSVCRT__SETJMP_FLOAT128
Xmm8
;
struct
MSVCRT__SETJMP_FLOAT128
Xmm9
;
struct
MSVCRT__SETJMP_FLOAT128
Xmm10
;
struct
MSVCRT__SETJMP_FLOAT128
Xmm11
;
struct
MSVCRT__SETJMP_FLOAT128
Xmm12
;
struct
MSVCRT__SETJMP_FLOAT128
Xmm13
;
struct
MSVCRT__SETJMP_FLOAT128
Xmm14
;
struct
MSVCRT__SETJMP_FLOAT128
Xmm15
;
};
#elif defined(__arm__)
struct
MSVCRT___JUMP_BUFFER
{
unsigned
long
Frame
;
unsigned
long
R4
;
unsigned
long
R5
;
unsigned
long
R6
;
unsigned
long
R7
;
unsigned
long
R8
;
unsigned
long
R9
;
unsigned
long
R10
;
unsigned
long
R11
;
unsigned
long
Sp
;
unsigned
long
Pc
;
unsigned
long
Fpscr
;
unsigned
long
long
D
[
8
];
};
#elif defined(__aarch64__)
struct
MSVCRT___JUMP_BUFFER
{
unsigned
__int64
Frame
;
unsigned
__int64
Reserved
;
unsigned
__int64
X19
;
unsigned
__int64
X20
;
unsigned
__int64
X21
;
unsigned
__int64
X22
;
unsigned
__int64
X23
;
unsigned
__int64
X24
;
unsigned
__int64
X25
;
unsigned
__int64
X26
;
unsigned
__int64
X27
;
unsigned
__int64
X28
;
unsigned
__int64
Fp
;
unsigned
__int64
Lr
;
unsigned
__int64
Sp
;
unsigned
long
Fpcr
;
unsigned
long
Fpsr
;
double
D
[
8
];
};
#endif
/* __i386__ */
struct
MSVCRT__finddata32_t
{
unsigned
int
attrib
;
__time32_t
time_create
;
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment