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
931292f1
Commit
931292f1
authored
Jun 09, 2023
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Use the sysv ABI for __wine_syscall_dispatcher_return().
Missing from
b337c5b1
, spotted by Fan WenJie.
parent
3b541194
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
7 additions
and
5 deletions
+7
-5
signal_x86_64.c
dlls/ntdll/unix/signal_x86_64.c
+6
-4
unix_private.h
dlls/ntdll/unix/unix_private.h
+1
-1
No files found.
dlls/ntdll/unix/signal_x86_64.c
View file @
931292f1
...
...
@@ -1861,8 +1861,8 @@ static BOOL handle_syscall_fault( ucontext_t *sigcontext, EXCEPTION_RECORD *rec,
else
{
TRACE_
(
seh
)(
"returning to user mode ip=%016lx ret=%08x
\n
"
,
frame
->
rip
,
rec
->
ExceptionCode
);
R
CX
_sig
(
sigcontext
)
=
(
ULONG_PTR
)
frame
;
R
DX
_sig
(
sigcontext
)
=
rec
->
ExceptionCode
;
R
DI
_sig
(
sigcontext
)
=
(
ULONG_PTR
)
frame
;
R
SI
_sig
(
sigcontext
)
=
rec
->
ExceptionCode
;
RIP_sig
(
sigcontext
)
=
(
ULONG_PTR
)
__wine_syscall_dispatcher_return
;
}
return
TRUE
;
...
...
@@ -2824,14 +2824,16 @@ __ASM_GLOBAL_FUNC( __wine_syscall_dispatcher,
__ASM_CFI_REG_IS_AT1
(
r14
,
rbp
,
0x48
)
__ASM_CFI_REG_IS_AT1
(
r15
,
rbp
,
0x50
)
__ASM_CFI_REG_IS_AT1
(
rbp
,
rbp
,
0x00
)
"5:
\t
movl $0xc000000d,%e
d
x
\n\t
"
/* STATUS_INVALID_PARAMETER */
"5:
\t
movl $0xc000000d,%e
a
x
\n\t
"
/* STATUS_INVALID_PARAMETER */
"movq %rsp,%rcx
\n\t
"
/* $rcx is now pointing to "frame" again */
__ASM_CFI
(
".cfi_restore_state
\n\t
"
)
"jmp "
__ASM_LOCAL_LABEL
(
"__wine_syscall_dispatcher_return"
)
"
\n\t
"
".globl "
__ASM_NAME
(
"__wine_syscall_dispatcher_return"
)
"
\n
"
__ASM_NAME
(
"__wine_syscall_dispatcher_return"
)
":
\n\t
"
"movq %rdi,%rcx
\n\t
"
"movl 0xb0(%rcx),%r14d
\n\t
"
/* frame->syscall_flags */
"movq %r
dx
,%rax
\n\t
"
"movq %r
si
,%rax
\n\t
"
"jmp "
__ASM_LOCAL_LABEL
(
"__wine_syscall_dispatcher_return"
)
)
...
...
dlls/ntdll/unix/unix_private.h
View file @
931292f1
...
...
@@ -266,7 +266,7 @@ extern void DECLSPEC_NORETURN signal_start_thread( PRTL_THREAD_START_ROUTINE ent
extern
void
DECLSPEC_NORETURN
signal_exit_thread
(
int
status
,
void
(
*
func
)(
int
),
TEB
*
teb
)
DECLSPEC_HIDDEN
;
extern
SYSTEM_SERVICE_TABLE
KeServiceDescriptorTable
[
4
]
DECLSPEC_HIDDEN
;
extern
void
__wine_syscall_dispatcher
(
void
)
DECLSPEC_HIDDEN
;
extern
void
WINAPI
DECLSPEC_NORETURN
__wine_syscall_dispatcher_return
(
void
*
frame
,
ULONG_PTR
retval
)
DECLSPEC_HIDDEN
;
extern
void
DECLSPEC_NORETURN
__wine_syscall_dispatcher_return
(
void
*
frame
,
ULONG_PTR
retval
)
DECLSPEC_HIDDEN
;
extern
void
__wine_unix_call_dispatcher
(
void
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
signal_set_full_context
(
CONTEXT
*
context
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
get_thread_wow64_context
(
HANDLE
handle
,
void
*
ctx
,
ULONG
size
)
DECLSPEC_HIDDEN
;
...
...
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