Commit 835a83e3 authored by Piotr Caban's avatar Piotr Caban Committed by Alexandre Julliard

msvcrt: Use _JUMP_BUFFER from public header.

parent 494a7894
...@@ -21,6 +21,7 @@ ...@@ -21,6 +21,7 @@
#ifdef __arm__ #ifdef __arm__
#include <setjmp.h>
#include <stdarg.h> #include <stdarg.h>
#include <fpieee.h> #include <fpieee.h>
...@@ -114,7 +115,7 @@ __ASM_GLOBAL_FUNC(MSVCRT__setjmp, ...@@ -114,7 +115,7 @@ __ASM_GLOBAL_FUNC(MSVCRT__setjmp,
/******************************************************************* /*******************************************************************
* longjmp (MSVCRT.@) * 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; EXCEPTION_RECORD rec;
......
...@@ -22,6 +22,7 @@ ...@@ -22,6 +22,7 @@
#ifdef __aarch64__ #ifdef __aarch64__
#include <setjmp.h>
#include <stdarg.h> #include <stdarg.h>
#include <fpieee.h> #include <fpieee.h>
...@@ -115,7 +116,7 @@ __ASM_GLOBAL_FUNC(MSVCRT__setjmp, ...@@ -115,7 +116,7 @@ __ASM_GLOBAL_FUNC(MSVCRT__setjmp,
/******************************************************************* /*******************************************************************
* longjmp (MSVCRT.@) * 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; EXCEPTION_RECORD rec;
......
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#ifdef __i386__ #ifdef __i386__
#include <setjmp.h>
#include <stdarg.h> #include <stdarg.h>
#include <fpieee.h> #include <fpieee.h>
...@@ -691,7 +692,7 @@ __ASM_GLOBAL_FUNC( __CxxFrameHandler, ...@@ -691,7 +692,7 @@ __ASM_GLOBAL_FUNC( __CxxFrameHandler,
* *
* Callback meant to be used as UnwindFunc for setjmp/longjmp. * 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; cxx_exception_frame *frame = (cxx_exception_frame *)buf->Registration;
const cxx_function_descr *descr = (const cxx_function_descr *)buf->UnwindData[0]; 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), ...@@ -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 */ #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 */ /* define an entrypoint for setjmp/setjmp3 that stores the registers in the jmp buf */
/* and then jumps to the C backend function */ /* and then jumps to the C backend function */
...@@ -1039,7 +1040,7 @@ typedef void (__stdcall *MSVCRT_unwind_function)(const struct MSVCRT___JUMP_BUFF ...@@ -1039,7 +1040,7 @@ typedef void (__stdcall *MSVCRT_unwind_function)(const struct MSVCRT___JUMP_BUFF
* _setjmp (MSVCRT.@) * _setjmp (MSVCRT.@)
*/ */
DEFINE_SETJMP_ENTRYPOINT(MSVCRT__setjmp) 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; jmp->Registration = (unsigned long)NtCurrentTeb()->Tib.ExceptionList;
if (jmp->Registration == ~0UL) if (jmp->Registration == ~0UL)
...@@ -1056,7 +1057,7 @@ int CDECL DECLSPEC_HIDDEN __regs_MSVCRT__setjmp(struct MSVCRT___JUMP_BUFFER *jmp ...@@ -1056,7 +1057,7 @@ int CDECL DECLSPEC_HIDDEN __regs_MSVCRT__setjmp(struct MSVCRT___JUMP_BUFFER *jmp
* _setjmp3 (MSVCRT.@) * _setjmp3 (MSVCRT.@)
*/ */
DEFINE_SETJMP_ENTRYPOINT( MSVCRT__setjmp3 ) 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->Cookie = MSVCRT_JMP_MAGIC;
jmp->UnwindFunc = 0; jmp->UnwindFunc = 0;
...@@ -1087,7 +1088,7 @@ int WINAPIV DECLSPEC_HIDDEN __regs_MSVCRT__setjmp3(struct MSVCRT___JUMP_BUFFER * ...@@ -1087,7 +1088,7 @@ int WINAPIV DECLSPEC_HIDDEN __regs_MSVCRT__setjmp3(struct MSVCRT___JUMP_BUFFER *
/********************************************************************* /*********************************************************************
* longjmp (MSVCRT.@) * 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; unsigned long cur_frame = 0;
...@@ -1125,7 +1126,7 @@ void CDECL MSVCRT_longjmp(struct MSVCRT___JUMP_BUFFER *jmp, int retval) ...@@ -1125,7 +1126,7 @@ void CDECL MSVCRT_longjmp(struct MSVCRT___JUMP_BUFFER *jmp, int retval)
/********************************************************************* /*********************************************************************
* _seh_longjmp_unwind (MSVCRT.@) * _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 ); 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) ...@@ -1133,7 +1134,7 @@ void __stdcall _seh_longjmp_unwind(struct MSVCRT___JUMP_BUFFER *jmp)
/********************************************************************* /*********************************************************************
* _seh_longjmp_unwind4 (MSVCRT.@) * _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, msvcrt_local_unwind4( (ULONG *)&jmp->Cookie, (MSVCRT_EXCEPTION_FRAME *)jmp->Registration,
jmp->TryLevel, (void *)jmp->Ebp ); jmp->TryLevel, (void *)jmp->Ebp );
......
...@@ -20,6 +20,7 @@ ...@@ -20,6 +20,7 @@
#ifdef __x86_64__ #ifdef __x86_64__
#include <setjmp.h>
#include <stdarg.h> #include <stdarg.h>
#include <fpieee.h> #include <fpieee.h>
...@@ -705,7 +706,7 @@ __ASM_GLOBAL_FUNC( MSVCRT__setjmp, ...@@ -705,7 +706,7 @@ __ASM_GLOBAL_FUNC( MSVCRT__setjmp,
/******************************************************************* /*******************************************************************
* longjmp (MSVCRT.@) * 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; EXCEPTION_RECORD rec;
......
...@@ -283,92 +283,6 @@ extern unsigned msvcrt_create_io_inherit_block(WORD*, BYTE**) DECLSPEC_HIDDEN; ...@@ -283,92 +283,6 @@ extern unsigned msvcrt_create_io_inherit_block(WORD*, BYTE**) DECLSPEC_HIDDEN;
extern FILE MSVCRT__iob[]; 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 { struct MSVCRT__finddata32_t {
unsigned int attrib; unsigned int attrib;
__time32_t time_create; __time32_t time_create;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment