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
3f51cb63
Commit
3f51cb63
authored
Jul 16, 2020
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Use syscall thunks for mutex functions.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
f4c403d1
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
9 additions
and
62 deletions
+9
-62
ntdll.spec
dlls/ntdll/ntdll.spec
+8
-8
sync.c
dlls/ntdll/sync.c
+0
-42
loader.c
dlls/ntdll/unix/loader.c
+0
-4
unixlib.h
dlls/ntdll/unixlib.h
+1
-8
No files found.
dlls/ntdll/ntdll.spec
View file @
3f51cb63
...
...
@@ -171,7 +171,7 @@
@ stdcall NtCreateKeyedEvent(ptr long ptr long)
@ stdcall NtCreateLowBoxToken(ptr long long ptr ptr long ptr long ptr)
@ stdcall NtCreateMailslotFile(ptr long ptr ptr long long long ptr)
@ stdcall NtCreateMutant(ptr long ptr long)
@ stdcall
-syscall
NtCreateMutant(ptr long ptr long)
@ stdcall NtCreateNamedPipeFile(ptr long ptr ptr long long long long long long long long long ptr)
@ stdcall NtCreatePagingFile(ptr ptr ptr ptr)
@ stdcall NtCreatePort(ptr ptr long long ptr)
...
...
@@ -261,7 +261,7 @@
@ stdcall NtOpenKeyTransacted(ptr long ptr long)
@ stdcall NtOpenKeyTransactedEx(ptr long ptr long long)
@ stdcall NtOpenKeyedEvent(ptr long ptr)
@ stdcall NtOpenMutant(ptr long ptr)
@ stdcall
-syscall
NtOpenMutant(ptr long ptr)
@ stub NtOpenObjectAuditAlarm
@ stdcall NtOpenProcess(ptr long ptr ptr)
@ stdcall NtOpenProcessToken(long long ptr)
...
...
@@ -304,7 +304,7 @@
@ stdcall NtQueryKey (long long ptr long ptr)
@ stdcall NtQueryLicenseValue(ptr ptr ptr long ptr)
@ stdcall NtQueryMultipleValueKey(long ptr long ptr long ptr)
@ stdcall NtQueryMutant(long long ptr long ptr)
@ stdcall
-syscall
NtQueryMutant(long long ptr long ptr)
@ stdcall NtQueryObject(long long ptr long ptr)
@ stub NtQueryOpenSubKeys
@ stdcall NtQueryPerformanceCounter(ptr ptr)
...
...
@@ -334,7 +334,7 @@
@ stub NtRegisterNewDevice
@ stdcall NtRegisterThreadTerminatePort(ptr)
@ stdcall NtReleaseKeyedEvent(long ptr long ptr)
@ stdcall NtReleaseMutant(long ptr)
@ stdcall
-syscall
NtReleaseMutant(long ptr)
@ stub NtReleaseProcessMutant
@ stdcall -syscall NtReleaseSemaphore(long long ptr)
@ stdcall NtRemoveIoCompletion(ptr ptr ptr ptr ptr)
...
...
@@ -1159,7 +1159,7 @@
@ stdcall -private ZwCreateKeyTransacted(ptr long ptr long ptr long long ptr) NtCreateKeyTransacted
@ stdcall -private ZwCreateKeyedEvent(ptr long ptr long) NtCreateKeyedEvent
@ stdcall -private ZwCreateMailslotFile(ptr long ptr ptr long long long ptr) NtCreateMailslotFile
@ stdcall -private ZwCreateMutant(ptr long ptr long) NtCreateMutant
@ stdcall -private
-syscall
ZwCreateMutant(ptr long ptr long) NtCreateMutant
@ stdcall -private ZwCreateNamedPipeFile(ptr long ptr ptr long long long long long long long long long ptr) NtCreateNamedPipeFile
@ stdcall -private ZwCreatePagingFile(ptr ptr ptr ptr) NtCreatePagingFile
@ stdcall -private ZwCreatePort(ptr ptr long long ptr) NtCreatePort
...
...
@@ -1245,7 +1245,7 @@
@ stdcall -private ZwOpenKeyTransacted(ptr long ptr long) NtOpenKeyTransacted
@ stdcall -private ZwOpenKeyTransactedEx(ptr long ptr long long) NtOpenKeyTransactedEx
@ stdcall -private ZwOpenKeyedEvent(ptr long ptr) NtOpenKeyedEvent
@ stdcall -private ZwOpenMutant(ptr long ptr) NtOpenMutant
@ stdcall -private
-syscall
ZwOpenMutant(ptr long ptr) NtOpenMutant
@ stub ZwOpenObjectAuditAlarm
@ stdcall -private ZwOpenProcess(ptr long ptr ptr) NtOpenProcess
@ stdcall -private ZwOpenProcessToken(long long ptr) NtOpenProcessToken
...
...
@@ -1288,7 +1288,7 @@
@ stdcall -private ZwQueryKey(long long ptr long ptr) NtQueryKey
@ stdcall -private ZwQueryLicenseValue(ptr ptr ptr long ptr) NtQueryLicenseValue
@ stdcall -private ZwQueryMultipleValueKey(long ptr long ptr long ptr) NtQueryMultipleValueKey
@ stdcall -private ZwQueryMutant(long long ptr long ptr) NtQueryMutant
@ stdcall -private
-syscall
ZwQueryMutant(long long ptr long ptr) NtQueryMutant
@ stdcall -private ZwQueryObject(long long ptr long ptr) NtQueryObject
@ stub ZwQueryOpenSubKeys
@ stdcall -private ZwQueryPerformanceCounter(ptr ptr) NtQueryPerformanceCounter
...
...
@@ -1318,7 +1318,7 @@
@ stub ZwRegisterNewDevice
@ stdcall -private ZwRegisterThreadTerminatePort(ptr) NtRegisterThreadTerminatePort
@ stdcall -private ZwReleaseKeyedEvent(long ptr long ptr) NtReleaseKeyedEvent
@ stdcall -private ZwReleaseMutant(long ptr) NtReleaseMutant
@ stdcall -private
-syscall
ZwReleaseMutant(long ptr) NtReleaseMutant
@ stub ZwReleaseProcessMutant
@ stdcall -private -syscall ZwReleaseSemaphore(long long ptr) NtReleaseSemaphore
@ stdcall -private ZwRemoveIoCompletion(ptr ptr ptr ptr ptr) NtRemoveIoCompletion
...
...
dlls/ntdll/sync.c
View file @
3f51cb63
...
...
@@ -136,48 +136,6 @@ NTSTATUS validate_open_object_attributes( const OBJECT_ATTRIBUTES *attr )
}
/*
* Mutants (known as Mutexes in Kernel32)
*/
/******************************************************************************
* NtCreateMutant [NTDLL.@]
* ZwCreateMutant [NTDLL.@]
*/
NTSTATUS
WINAPI
NtCreateMutant
(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
,
BOOLEAN
owned
)
{
return
unix_funcs
->
NtCreateMutant
(
handle
,
access
,
attr
,
owned
);
}
/**************************************************************************
* NtOpenMutant [NTDLL.@]
* ZwOpenMutant [NTDLL.@]
*/
NTSTATUS
WINAPI
NtOpenMutant
(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
)
{
return
unix_funcs
->
NtOpenMutant
(
handle
,
access
,
attr
);
}
/**************************************************************************
* NtReleaseMutant [NTDLL.@]
* ZwReleaseMutant [NTDLL.@]
*/
NTSTATUS
WINAPI
NtReleaseMutant
(
HANDLE
handle
,
LONG
*
prev_count
)
{
return
unix_funcs
->
NtReleaseMutant
(
handle
,
prev_count
);
}
/******************************************************************
* NtQueryMutant [NTDLL.@]
* ZwQueryMutant [NTDLL.@]
*/
NTSTATUS
WINAPI
NtQueryMutant
(
HANDLE
handle
,
MUTANT_INFORMATION_CLASS
class
,
void
*
info
,
ULONG
len
,
ULONG
*
ret_len
)
{
return
unix_funcs
->
NtQueryMutant
(
handle
,
class
,
info
,
len
,
ret_len
);
}
/*
* Jobs
*/
...
...
dlls/ntdll/unix/loader.c
View file @
3f51cb63
...
...
@@ -1370,7 +1370,6 @@ static struct unix_funcs unix_funcs =
NtCreateJobObject
,
NtCreateKeyedEvent
,
NtCreateMailslotFile
,
NtCreateMutant
,
NtCreateNamedPipeFile
,
NtCreateSection
,
NtCreateThreadEx
,
...
...
@@ -1397,7 +1396,6 @@ static struct unix_funcs unix_funcs =
NtOpenIoCompletion
,
NtOpenJobObject
,
NtOpenKeyedEvent
,
NtOpenMutant
,
NtOpenProcess
,
NtOpenSection
,
NtOpenThread
,
...
...
@@ -1412,7 +1410,6 @@ static struct unix_funcs unix_funcs =
NtQueryInformationProcess
,
NtQueryInformationThread
,
NtQueryIoCompletion
,
NtQueryMutant
,
NtQueryObject
,
NtQueryPerformanceCounter
,
NtQuerySection
,
...
...
@@ -1428,7 +1425,6 @@ static struct unix_funcs unix_funcs =
NtReadFileScatter
,
NtReadVirtualMemory
,
NtReleaseKeyedEvent
,
NtReleaseMutant
,
NtRemoveIoCompletion
,
NtRemoveIoCompletionEx
,
NtResetWriteWatch
,
...
...
dlls/ntdll/unixlib.h
View file @
3f51cb63
...
...
@@ -28,7 +28,7 @@ struct msghdr;
struct
_DISPATCHER_CONTEXT
;
/* increment this when you change the function table */
#define NTDLL_UNIXLIB_VERSION 7
6
#define NTDLL_UNIXLIB_VERSION 7
7
struct
unix_funcs
{
...
...
@@ -51,8 +51,6 @@ struct unix_funcs
NTSTATUS
(
WINAPI
*
NtCreateMailslotFile
)(
HANDLE
*
handle
,
ULONG
access
,
OBJECT_ATTRIBUTES
*
attr
,
IO_STATUS_BLOCK
*
io
,
ULONG
options
,
ULONG
quota
,
ULONG
msg_size
,
LARGE_INTEGER
*
timeout
);
NTSTATUS
(
WINAPI
*
NtCreateMutant
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
,
BOOLEAN
owned
);
NTSTATUS
(
WINAPI
*
NtCreateNamedPipeFile
)(
HANDLE
*
handle
,
ULONG
access
,
OBJECT_ATTRIBUTES
*
attr
,
IO_STATUS_BLOCK
*
io
,
ULONG
sharing
,
ULONG
dispo
,
ULONG
options
,
ULONG
pipe_type
,
ULONG
read_mode
,
...
...
@@ -115,8 +113,6 @@ struct unix_funcs
const
OBJECT_ATTRIBUTES
*
attr
);
NTSTATUS
(
WINAPI
*
NtOpenKeyedEvent
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
);
NTSTATUS
(
WINAPI
*
NtOpenMutant
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
);
NTSTATUS
(
WINAPI
*
NtOpenProcess
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
,
const
CLIENT_ID
*
id
);
NTSTATUS
(
WINAPI
*
NtOpenSection
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
...
...
@@ -147,8 +143,6 @@ struct unix_funcs
void
*
data
,
ULONG
length
,
ULONG
*
ret_len
);
NTSTATUS
(
WINAPI
*
NtQueryIoCompletion
)(
HANDLE
handle
,
IO_COMPLETION_INFORMATION_CLASS
class
,
void
*
buffer
,
ULONG
len
,
ULONG
*
ret_len
);
NTSTATUS
(
WINAPI
*
NtQueryMutant
)(
HANDLE
handle
,
MUTANT_INFORMATION_CLASS
class
,
void
*
info
,
ULONG
len
,
ULONG
*
ret_len
);
NTSTATUS
(
WINAPI
*
NtQueryObject
)(
HANDLE
handle
,
OBJECT_INFORMATION_CLASS
info_class
,
void
*
ptr
,
ULONG
len
,
ULONG
*
used_len
);
NTSTATUS
(
WINAPI
*
NtQueryPerformanceCounter
)(
LARGE_INTEGER
*
counter
,
LARGE_INTEGER
*
frequency
);
...
...
@@ -182,7 +176,6 @@ struct unix_funcs
SIZE_T
size
,
SIZE_T
*
bytes_read
);
NTSTATUS
(
WINAPI
*
NtReleaseKeyedEvent
)(
HANDLE
handle
,
const
void
*
key
,
BOOLEAN
alertable
,
const
LARGE_INTEGER
*
timeout
);
NTSTATUS
(
WINAPI
*
NtReleaseMutant
)(
HANDLE
handle
,
LONG
*
prev_count
);
NTSTATUS
(
WINAPI
*
NtRemoveIoCompletion
)(
HANDLE
handle
,
ULONG_PTR
*
key
,
ULONG_PTR
*
value
,
IO_STATUS_BLOCK
*
io
,
LARGE_INTEGER
*
timeout
);
NTSTATUS
(
WINAPI
*
NtRemoveIoCompletionEx
)(
HANDLE
handle
,
FILE_IO_COMPLETION_INFORMATION
*
info
,
...
...
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