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
90adeb12
Commit
90adeb12
authored
Nov 30, 2022
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Export the Unix call dispatcher function pointer.
parent
0f67dbb5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
10 additions
and
8 deletions
+10
-8
loader.c
dlls/ntdll/loader.c
+1
-0
ntdll.spec
dlls/ntdll/ntdll.spec
+2
-1
unix_lib.c
dlls/winecrt0/unix_lib.c
+4
-4
loader.c
dlls/winevulkan/loader.c
+1
-1
unixlib.h
include/wine/unixlib.h
+2
-2
No files found.
dlls/ntdll/loader.c
View file @
90adeb12
...
...
@@ -71,6 +71,7 @@ typedef DWORD (CALLBACK *DLLENTRYPROC)(HMODULE,DWORD,LPVOID);
typedef
void
(
CALLBACK
*
LDRENUMPROC
)(
LDR_DATA_TABLE_ENTRY
*
,
void
*
,
BOOLEAN
*
);
void
(
FASTCALL
*
pBaseThreadInitThunk
)(
DWORD
,
LPTHREAD_START_ROUTINE
,
void
*
)
=
NULL
;
NTSTATUS
(
WINAPI
*
__wine_unix_call_dispatcher
)(
unixlib_handle_t
,
unsigned
int
,
void
*
)
=
__wine_unix_call
;
static
DWORD
(
WINAPI
*
pCtrlRoutine
)(
void
*
);
...
...
dlls/ntdll/ntdll.spec
View file @
90adeb12
...
...
@@ -1693,7 +1693,8 @@
@ stdcall -syscall __wine_unix_call(int64 long ptr)
@ stdcall -syscall __wine_unix_spawnvp(long ptr)
@ stdcall __wine_ctrl_routine(ptr)
@ extern __wine_syscall_dispatcher
@ extern -private __wine_syscall_dispatcher
@ extern -private __wine_unix_call_dispatcher
@ extern -arch=arm64 __wine_current_teb
# Debugging
...
...
dlls/winecrt0/unix_lib.c
View file @
90adeb12
...
...
@@ -44,17 +44,17 @@ static NTSTATUS WINAPI unix_call_fallback( unixlib_handle_t handle, unsigned int
}
unixlib_handle_t
__wine_unixlib_handle
=
0
;
NTSTATUS
(
WINAPI
*
__wine_unix_call_
pt
r
)(
unixlib_handle_t
,
unsigned
int
,
void
*
)
=
unix_call_fallback
;
NTSTATUS
(
WINAPI
*
__wine_unix_call_
dispatche
r
)(
unixlib_handle_t
,
unsigned
int
,
void
*
)
=
unix_call_fallback
;
NTSTATUS
WINAPI
__wine_init_unix_call
(
void
)
{
NTSTATUS
status
;
HMODULE
module
=
GetModuleHandleW
(
L"ntdll.dll"
);
void
*
proc
=
GetProcAddress
(
module
,
"__wine_unix_call
"
);
void
*
*
p__wine_unix_call_dispatcher
=
(
void
**
)
GetProcAddress
(
module
,
"__wine_unix_call_dispatcher
"
);
if
(
!
p
roc
)
return
STATUS_DLL_NOT_FOUND
;
if
(
!
p
__wine_unix_call_dispatcher
)
return
STATUS_DLL_NOT_FOUND
;
status
=
NtQueryVirtualMemory
(
GetCurrentProcess
(),
image_base
(),
MemoryWineUnixFuncs
,
&
__wine_unixlib_handle
,
sizeof
(
__wine_unixlib_handle
),
NULL
);
if
(
!
status
)
__wine_unix_call_
ptr
=
proc
;
if
(
!
status
)
__wine_unix_call_
dispatcher
=
*
p__wine_unix_call_dispatcher
;
return
status
;
}
dlls/winevulkan/loader.c
View file @
90adeb12
...
...
@@ -236,7 +236,7 @@ static BOOL WINAPI wine_vk_init(INIT_ONCE *once, void *param, void **context)
{
NTSTATUS
status
=
__wine_init_unix_call
();
p_vk_direct_unix_call
=
__wine_unix_call_
pt
r
;
p_vk_direct_unix_call
=
__wine_unix_call_
dispatche
r
;
if
(
status
)
return
FALSE
;
return
!
vk_unix_call
(
unix_init
,
&
p_vk_direct_unix_call
);
}
...
...
include/wine/unixlib.h
View file @
90adeb12
...
...
@@ -268,10 +268,10 @@ static inline ULONG ntdll_wcstoul( const WCHAR *s, WCHAR **end, int base )
#else
/* WINE_UNIX_LIB */
extern
unixlib_handle_t
__wine_unixlib_handle
DECLSPEC_HIDDEN
;
extern
NTSTATUS
(
WINAPI
*
__wine_unix_call_
pt
r
)(
unixlib_handle_t
,
unsigned
int
,
void
*
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
(
WINAPI
*
__wine_unix_call_
dispatche
r
)(
unixlib_handle_t
,
unsigned
int
,
void
*
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
WINAPI
__wine_init_unix_call
(
void
)
DECLSPEC_HIDDEN
;
#define WINE_UNIX_CALL(code,args) __wine_unix_call_
pt
r( __wine_unixlib_handle, (code), (args) )
#define WINE_UNIX_CALL(code,args) __wine_unix_call_
dispatche
r( __wine_unixlib_handle, (code), (args) )
#endif
/* WINE_UNIX_LIB */
...
...
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