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
2a5191a7
Commit
2a5191a7
authored
Nov 10, 2022
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Use a separate function pointer for the TEB hack on ARM64.
parent
d3a68e43
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
12 additions
and
8 deletions
+12
-8
ntdll.spec
dlls/ntdll/ntdll.spec
+1
-0
signal_arm64.c
dlls/ntdll/signal_arm64.c
+3
-1
loader.c
dlls/ntdll/unix/loader.c
+7
-3
unixlib.h
dlls/ntdll/unixlib.h
+1
-4
No files found.
dlls/ntdll/ntdll.spec
View file @
2a5191a7
...
...
@@ -1696,6 +1696,7 @@
@ stdcall __wine_ctrl_routine(ptr)
@ extern __wine_syscall_dispatcher
@ extern -arch=i386 __wine_ldt_copy
@ extern -arch=arm64 __wine_current_teb
# Debugging
@ stdcall -syscall -norelay __wine_dbg_write(ptr long)
...
...
dlls/ntdll/signal_arm64.c
View file @
2a5191a7
...
...
@@ -40,6 +40,8 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
seh
);
WINE_DECLARE_DEBUG_CHANNEL
(
threadname
);
TEB
*
(
*
WINAPI
__wine_current_teb
)(
void
)
=
NULL
;
typedef
struct
_SCOPE_TABLE
{
ULONG
Count
;
...
...
@@ -1528,7 +1530,7 @@ __ASM_STDCALL_FUNC( DbgUserBreakPoint, 0, "brk #0xf000; ret"
*/
TEB
*
WINAPI
NtCurrentTeb
(
void
)
{
return
unix_funcs
->
NtCurrentT
eb
();
return
__wine_current_t
eb
();
}
#endif
/* __aarch64__ */
dlls/ntdll/unix/loader.c
View file @
2a5191a7
...
...
@@ -1071,6 +1071,13 @@ static void load_ntdll_functions( HMODULE module )
*
p__wine_ldt_copy
=
&
__wine_ldt_copy
;
}
#endif
#ifdef __aarch64__
{
void
**
p__wine_current_teb
;
GET_FUNC
(
__wine_current_teb
);
*
p__wine_current_teb
=
NtCurrentTeb
;
}
#endif
#undef GET_FUNC
}
...
...
@@ -2149,9 +2156,6 @@ static struct unix_funcs unix_funcs =
init_builtin_dll
,
unwind_builtin_dll
,
RtlGetSystemTimePrecise
,
#ifdef __aarch64__
NtCurrentTeb
,
#endif
};
...
...
dlls/ntdll/unixlib.h
View file @
2a5191a7
...
...
@@ -26,7 +26,7 @@
struct
_DISPATCHER_CONTEXT
;
/* increment this when you change the function table */
#define NTDLL_UNIXLIB_VERSION 13
4
#define NTDLL_UNIXLIB_VERSION 13
5
struct
unix_funcs
{
...
...
@@ -37,9 +37,6 @@ struct unix_funcs
CONTEXT
*
context
);
/* other Win32 API functions */
LONGLONG
(
WINAPI
*
RtlGetSystemTimePrecise
)(
void
);
#ifdef __aarch64__
TEB
*
(
WINAPI
*
NtCurrentTeb
)(
void
);
#endif
};
#endif
/* __NTDLL_UNIXLIB_H */
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