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
59126688
Commit
59126688
authored
Jun 27, 2019
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
kernel32: Move semaphore functions to kernelbase.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
93a54511
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
78 additions
and
74 deletions
+78
-74
kernel32.spec
dlls/kernel32/kernel32.spec
+4
-4
sync.c
dlls/kernel32/sync.c
+0
-66
kernelbase.spec
dlls/kernelbase/kernelbase.spec
+4
-4
sync.c
dlls/kernelbase/sync.c
+70
-0
No files found.
dlls/kernel32/kernel32.spec
View file @
59126688
...
...
@@ -320,8 +320,8 @@
@ stdcall CreateRemoteThreadEx(long ptr long ptr ptr long ptr ptr)
@ stdcall CreateSemaphoreA(ptr long long str)
@ stdcall CreateSemaphoreExA(ptr long long str long long)
@ stdcall CreateSemaphoreExW(ptr long long wstr long long)
@ stdcall CreateSemaphoreW(ptr long long wstr)
@ stdcall
-import
CreateSemaphoreExW(ptr long long wstr long long)
@ stdcall
-import
CreateSemaphoreW(ptr long long wstr)
@ stdcall CreateSocketHandle()
@ stdcall CreateSymbolicLinkA(str str long)
# @ stub CreateSymbolicLinkTransactedA
...
...
@@ -1128,7 +1128,7 @@
# @ stub OpenProcessToken
@ stdcall OpenProfileUserMapping()
@ stdcall OpenSemaphoreA(long long str)
@ stdcall OpenSemaphoreW(long long wstr)
@ stdcall
-import
OpenSemaphoreW(long long wstr)
@ stdcall OpenThread(long long long)
# @ stub OpenThreadToken
@ stdcall -i386 OpenVxDHandle(long)
...
...
@@ -1258,7 +1258,7 @@
@ stdcall ReleaseActCtx(ptr)
@ stdcall -import ReleaseMutex(long)
@ stdcall ReleaseMutexWhenCallbackReturns(ptr long) ntdll.TpCallbackReleaseMutexOnCompletion
@ stdcall ReleaseSemaphore(long long ptr)
@ stdcall
-import
ReleaseSemaphore(long long ptr)
@ stdcall ReleaseSemaphoreWhenCallbackReturns(ptr long long) ntdll.TpCallbackReleaseSemaphoreOnCompletion
@ stdcall ReleaseSRWLockExclusive(ptr) ntdll.RtlReleaseSRWLockExclusive
@ stdcall ReleaseSRWLockShared(ptr) ntdll.RtlReleaseSRWLockShared
...
...
dlls/kernel32/sync.c
View file @
59126688
...
...
@@ -453,15 +453,6 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateSemaphoreA( SECURITY_ATTRIBUTES *sa, LONG
/***********************************************************************
* CreateSemaphoreW (KERNEL32.@)
*/
HANDLE
WINAPI
DECLSPEC_HOTPATCH
CreateSemaphoreW
(
SECURITY_ATTRIBUTES
*
sa
,
LONG
initial
,
LONG
max
,
LPCWSTR
name
)
{
return
CreateSemaphoreExW
(
sa
,
initial
,
max
,
name
,
0
,
SEMAPHORE_ALL_ACCESS
);
}
/***********************************************************************
* CreateSemaphoreExA (KERNEL32.@)
*/
HANDLE
WINAPI
DECLSPEC_HOTPATCH
CreateSemaphoreExA
(
SECURITY_ATTRIBUTES
*
sa
,
LONG
initial
,
LONG
max
,
...
...
@@ -481,28 +472,6 @@ HANDLE WINAPI DECLSPEC_HOTPATCH CreateSemaphoreExA( SECURITY_ATTRIBUTES *sa, LON
/***********************************************************************
* CreateSemaphoreExW (KERNEL32.@)
*/
HANDLE
WINAPI
DECLSPEC_HOTPATCH
CreateSemaphoreExW
(
SECURITY_ATTRIBUTES
*
sa
,
LONG
initial
,
LONG
max
,
LPCWSTR
name
,
DWORD
flags
,
DWORD
access
)
{
HANDLE
ret
=
0
;
UNICODE_STRING
nameW
;
OBJECT_ATTRIBUTES
attr
;
NTSTATUS
status
;
get_create_object_attributes
(
&
attr
,
&
nameW
,
sa
,
name
);
status
=
NtCreateSemaphore
(
&
ret
,
access
,
&
attr
,
initial
,
max
);
if
(
status
==
STATUS_OBJECT_NAME_EXISTS
)
SetLastError
(
ERROR_ALREADY_EXISTS
);
else
SetLastError
(
RtlNtStatusToDosError
(
status
)
);
return
ret
;
}
/***********************************************************************
* OpenSemaphoreA (KERNEL32.@)
*/
HANDLE
WINAPI
DECLSPEC_HOTPATCH
OpenSemaphoreA
(
DWORD
access
,
BOOL
inherit
,
LPCSTR
name
)
...
...
@@ -520,41 +489,6 @@ HANDLE WINAPI DECLSPEC_HOTPATCH OpenSemaphoreA( DWORD access, BOOL inherit, LPCS
}
/***********************************************************************
* OpenSemaphoreW (KERNEL32.@)
*/
HANDLE
WINAPI
DECLSPEC_HOTPATCH
OpenSemaphoreW
(
DWORD
access
,
BOOL
inherit
,
LPCWSTR
name
)
{
HANDLE
ret
;
UNICODE_STRING
nameW
;
OBJECT_ATTRIBUTES
attr
;
NTSTATUS
status
;
if
(
!
is_version_nt
())
access
=
SEMAPHORE_ALL_ACCESS
;
if
(
!
get_open_object_attributes
(
&
attr
,
&
nameW
,
inherit
,
name
))
return
0
;
status
=
NtOpenSemaphore
(
&
ret
,
access
,
&
attr
);
if
(
status
!=
STATUS_SUCCESS
)
{
SetLastError
(
RtlNtStatusToDosError
(
status
)
);
return
0
;
}
return
ret
;
}
/***********************************************************************
* ReleaseSemaphore (KERNEL32.@)
*/
BOOL
WINAPI
DECLSPEC_HOTPATCH
ReleaseSemaphore
(
HANDLE
handle
,
LONG
count
,
LONG
*
previous
)
{
NTSTATUS
status
=
NtReleaseSemaphore
(
handle
,
count
,
(
PULONG
)
previous
);
if
(
status
)
SetLastError
(
RtlNtStatusToDosError
(
status
)
);
return
!
status
;
}
/*
* Jobs
*/
...
...
dlls/kernelbase/kernelbase.spec
View file @
59126688
...
...
@@ -214,8 +214,8 @@
@ stdcall CreateRemoteThread(long ptr long ptr long long ptr) kernel32.CreateRemoteThread
@ stdcall CreateRemoteThreadEx(long ptr long ptr ptr long ptr ptr) kernel32.CreateRemoteThreadEx
@ stdcall CreateRestrictedToken(long long long ptr long ptr long ptr ptr)
@ stdcall CreateSemaphoreExW(ptr long long wstr long long)
kernel32.CreateSemaphoreExW
@ stdcall CreateSemaphoreW(ptr long long wstr)
kernel32.CreateSemaphoreW
@ stdcall CreateSemaphoreExW(ptr long long wstr long long)
@ stdcall CreateSemaphoreW(ptr long long wstr)
# @ stub CreateStateAtom
# @ stub CreateStateChangeNotification
# @ stub CreateStateContainer
...
...
@@ -994,7 +994,7 @@
@ stdcall OpenProcess(long long long) kernel32.OpenProcess
@ stdcall OpenProcessToken(long long ptr)
@ stub OpenRegKey
@ stdcall OpenSemaphoreW(long long wstr)
kernel32.OpenSemaphoreW
@ stdcall OpenSemaphoreW(long long wstr)
# @ stub OpenState
# @ stub OpenStateAtom
# @ stub OpenStateExplicit
...
...
@@ -1328,7 +1328,7 @@
@ stdcall ReleaseMutexWhenCallbackReturns(ptr long) kernel32.ReleaseMutexWhenCallbackReturns
@ stdcall ReleaseSRWLockExclusive(ptr) kernel32.ReleaseSRWLockExclusive
@ stdcall ReleaseSRWLockShared(ptr) kernel32.ReleaseSRWLockShared
@ stdcall ReleaseSemaphore(long long ptr)
kernel32.ReleaseSemaphore
@ stdcall ReleaseSemaphore(long long ptr)
@ stdcall ReleaseSemaphoreWhenCallbackReturns(ptr long long) kernel32.ReleaseSemaphoreWhenCallbackReturns
# @ stub ReleaseStateLock
@ stdcall RemapPredefinedHandleInternal(long long)
...
...
dlls/kernelbase/sync.c
View file @
59126688
...
...
@@ -363,3 +363,73 @@ BOOL WINAPI DECLSPEC_HOTPATCH ReleaseMutex( HANDLE handle )
{
return
set_ntstatus
(
NtReleaseMutant
(
handle
,
NULL
));
}
/***********************************************************************
* Semaphores
***********************************************************************/
/***********************************************************************
* CreateSemaphoreW (kernelbase.@)
*/
HANDLE
WINAPI
DECLSPEC_HOTPATCH
CreateSemaphoreW
(
SECURITY_ATTRIBUTES
*
sa
,
LONG
initial
,
LONG
max
,
LPCWSTR
name
)
{
return
CreateSemaphoreExW
(
sa
,
initial
,
max
,
name
,
0
,
SEMAPHORE_ALL_ACCESS
);
}
/***********************************************************************
* CreateSemaphoreExW (kernelbase.@)
*/
HANDLE
WINAPI
DECLSPEC_HOTPATCH
CreateSemaphoreExW
(
SECURITY_ATTRIBUTES
*
sa
,
LONG
initial
,
LONG
max
,
LPCWSTR
name
,
DWORD
flags
,
DWORD
access
)
{
HANDLE
ret
=
0
;
UNICODE_STRING
nameW
;
OBJECT_ATTRIBUTES
attr
;
NTSTATUS
status
;
get_create_object_attributes
(
&
attr
,
&
nameW
,
sa
,
name
);
status
=
NtCreateSemaphore
(
&
ret
,
access
,
&
attr
,
initial
,
max
);
if
(
status
==
STATUS_OBJECT_NAME_EXISTS
)
SetLastError
(
ERROR_ALREADY_EXISTS
);
else
SetLastError
(
RtlNtStatusToDosError
(
status
)
);
return
ret
;
}
/***********************************************************************
* OpenSemaphoreW (kernelbase.@)
*/
HANDLE
WINAPI
DECLSPEC_HOTPATCH
OpenSemaphoreW
(
DWORD
access
,
BOOL
inherit
,
LPCWSTR
name
)
{
HANDLE
ret
;
UNICODE_STRING
nameW
;
OBJECT_ATTRIBUTES
attr
;
NTSTATUS
status
;
if
(
!
is_version_nt
())
access
=
SEMAPHORE_ALL_ACCESS
;
if
(
!
get_open_object_attributes
(
&
attr
,
&
nameW
,
inherit
,
name
))
return
0
;
status
=
NtOpenSemaphore
(
&
ret
,
access
,
&
attr
);
if
(
status
!=
STATUS_SUCCESS
)
{
SetLastError
(
RtlNtStatusToDosError
(
status
)
);
return
0
;
}
return
ret
;
}
/***********************************************************************
* ReleaseSemaphore (kernelbase.@)
*/
BOOL
WINAPI
DECLSPEC_HOTPATCH
ReleaseSemaphore
(
HANDLE
handle
,
LONG
count
,
LONG
*
previous
)
{
return
set_ntstatus
(
NtReleaseSemaphore
(
handle
,
count
,
(
PULONG
)
previous
));
}
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