You've already forked wine-staging
mirror of
https://gitlab.winehq.org/wine/wine-staging.git
synced 2025-09-12 18:50:20 -07:00
Rebase against 3fc1180623b9a0c9fc9e16abf358b179f2eff49b
This commit is contained in:
@@ -1,7 +1,7 @@
|
||||
From 90f3317910fccc6cf7fc8126fa5d3ff8616df9de Mon Sep 17 00:00:00 2001
|
||||
From 3581c738e28a94fedb1c768b61242b5482f98f60 Mon Sep 17 00:00:00 2001
|
||||
From: =?UTF-8?q?Michael=20M=C3=BCller?= <michael@fds-team.de>
|
||||
Date: Thu, 11 May 2017 05:32:55 +0200
|
||||
Subject: winebuild: Generate syscall thunks for ntdll exports.
|
||||
Subject: [PATCH] winebuild: Generate syscall thunks for ntdll exports.
|
||||
|
||||
Based on a patch by Erich E. Hoover.
|
||||
---
|
||||
@@ -17,12 +17,12 @@ Based on a patch by Erich E. Hoover.
|
||||
9 files changed, 195 insertions(+), 27 deletions(-)
|
||||
|
||||
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
|
||||
index 0ad5e1a..9acf8ec 100644
|
||||
index c64cb05..ca91ec1 100644
|
||||
--- a/dlls/ntdll/signal_i386.c
|
||||
+++ b/dlls/ntdll/signal_i386.c
|
||||
@@ -429,6 +429,9 @@ static wine_signal_handler handlers[256];
|
||||
@@ -427,6 +427,9 @@ static size_t signal_stack_size;
|
||||
|
||||
static BOOL fpux_support; /* whether the CPU supports extended fpu context */
|
||||
static wine_signal_handler handlers[256];
|
||||
|
||||
+extern void DECLSPEC_NORETURN __wine_syscall_dispatcher( void );
|
||||
+extern NTSTATUS WINAPI __syscall_NtGetContextThread( HANDLE handle, CONTEXT *context );
|
||||
@@ -30,7 +30,7 @@ index 0ad5e1a..9acf8ec 100644
|
||||
enum i386_trap_code
|
||||
{
|
||||
TRAP_x86_UNKNOWN = -1, /* Unknown fault (TRAP_sig not defined) */
|
||||
@@ -1404,7 +1407,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi,
|
||||
@@ -1430,7 +1433,7 @@ NTSTATUS CDECL DECLSPEC_HIDDEN __regs_NtGetContextThread( DWORD edi, DWORD esi,
|
||||
{
|
||||
context->Ebp = ebp;
|
||||
context->Esp = (DWORD)&retaddr;
|
||||
@@ -39,7 +39,7 @@ index 0ad5e1a..9acf8ec 100644
|
||||
context->SegCs = wine_get_cs();
|
||||
context->SegSs = wine_get_ss();
|
||||
context->EFlags = eflags;
|
||||
@@ -2290,6 +2293,7 @@ NTSTATUS signal_alloc_thread( TEB **teb )
|
||||
@@ -2330,6 +2333,7 @@ NTSTATUS signal_alloc_thread( TEB **teb )
|
||||
*teb = addr;
|
||||
(*teb)->Tib.Self = &(*teb)->Tib;
|
||||
(*teb)->Tib.ExceptionList = (void *)~0UL;
|
||||
@@ -48,10 +48,10 @@ index 0ad5e1a..9acf8ec 100644
|
||||
if (!(thread_data->fs = wine_ldt_alloc_fs()))
|
||||
{
|
||||
diff --git a/dlls/ntdll/tests/exception.c b/dlls/ntdll/tests/exception.c
|
||||
index 5998f54..5925aee 100644
|
||||
index 2f9d642..9bece2a 100644
|
||||
--- a/dlls/ntdll/tests/exception.c
|
||||
+++ b/dlls/ntdll/tests/exception.c
|
||||
@@ -1612,6 +1612,8 @@ static void test_thread_context(void)
|
||||
@@ -1618,6 +1618,8 @@ static void test_thread_context(void)
|
||||
ok( (char *)context.Eip >= (char *)pNtGetContextThread - 0x10000 &&
|
||||
(char *)context.Eip <= (char *)pNtGetContextThread + 0x10000,
|
||||
"wrong Eip %08x/%08x\n", context.Eip, (DWORD)pNtGetContextThread );
|
||||
@@ -61,10 +61,10 @@ index 5998f54..5925aee 100644
|
||||
ok( context.SegCs == LOWORD(expect.SegCs), "wrong SegCs %08x/%08x\n", context.SegCs, expect.SegCs );
|
||||
ok( context.SegDs == LOWORD(expect.SegDs), "wrong SegDs %08x/%08x\n", context.SegDs, expect.SegDs );
|
||||
diff --git a/include/winternl.h b/include/winternl.h
|
||||
index f4dd7ca..9cb9a77 100644
|
||||
index 152d596..953c055 100644
|
||||
--- a/include/winternl.h
|
||||
+++ b/include/winternl.h
|
||||
@@ -357,7 +357,7 @@ typedef struct _TEB
|
||||
@@ -358,7 +358,7 @@ typedef struct _TEB
|
||||
PVOID CsrClientThread; /* 03c/0070 */
|
||||
PVOID Win32ThreadInfo; /* 040/0078 */
|
||||
ULONG Win32ClientInfo[31]; /* 044/0080 used for user32 private data in Wine */
|
||||
@@ -74,7 +74,7 @@ index f4dd7ca..9cb9a77 100644
|
||||
ULONG FpSoftwareStatusRegister; /* 0c8/010c */
|
||||
PVOID SystemReserved1[54]; /* 0cc/0110 used for krnl386.exe16 private data in Wine */
|
||||
diff --git a/tools/winebuild/build.h b/tools/winebuild/build.h
|
||||
index 90e8e34..df04ef5 100644
|
||||
index fbc2cd9..086ff07 100644
|
||||
--- a/tools/winebuild/build.h
|
||||
+++ b/tools/winebuild/build.h
|
||||
@@ -103,6 +103,7 @@ typedef struct
|
||||
@@ -402,10 +402,10 @@ index 3552eca..d851537 100644
|
||||
output_exports( spec );
|
||||
output_imports( spec );
|
||||
diff --git a/tools/winebuild/utils.c b/tools/winebuild/utils.c
|
||||
index 6e01f1a..925054b 100644
|
||||
index 95da175..b01d598 100644
|
||||
--- a/tools/winebuild/utils.c
|
||||
+++ b/tools/winebuild/utils.c
|
||||
@@ -792,6 +792,7 @@ void free_dll_spec( DLLSPEC *spec )
|
||||
@@ -794,6 +794,7 @@ void free_dll_spec( DLLSPEC *spec )
|
||||
free( odp->name );
|
||||
free( odp->export_name );
|
||||
free( odp->link_name );
|
||||
@@ -413,7 +413,7 @@ index 6e01f1a..925054b 100644
|
||||
}
|
||||
free( spec->file_name );
|
||||
free( spec->dll_name );
|
||||
@@ -801,6 +802,7 @@ void free_dll_spec( DLLSPEC *spec )
|
||||
@@ -803,6 +804,7 @@ void free_dll_spec( DLLSPEC *spec )
|
||||
free( spec->names );
|
||||
free( spec->ordinals );
|
||||
free( spec->resources );
|
||||
@@ -421,7 +421,7 @@ index 6e01f1a..925054b 100644
|
||||
free( spec );
|
||||
}
|
||||
|
||||
@@ -1128,3 +1130,22 @@ const char *get_asm_string_section(void)
|
||||
@@ -1130,3 +1132,22 @@ const char *get_asm_string_section(void)
|
||||
default: return ".section .rodata";
|
||||
}
|
||||
}
|
||||
@@ -445,5 +445,5 @@ index 6e01f1a..925054b 100644
|
||||
+ return j + 1;
|
||||
+}
|
||||
--
|
||||
2.7.4
|
||||
1.9.1
|
||||
|
||||
|
Reference in New Issue
Block a user