Skip to content
GitLab
Explore
Sign in
Register
Primary navigation
Search or go to…
Project
wine
Manage
Activity
Members
Labels
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Package registry
Container Registry
Model registry
Operate
Terraform modules
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Alexey Alyaev
wine
Commits
66e6d87a
Commit
66e6d87a
authored
4 years ago
by
Alexandre Julliard
Browse files
Options
Downloads
Patches
Plain Diff
ntdll: Use syscall thunks for job functions.
Signed-off-by:
Alexandre Julliard
<
julliard@winehq.org
>
parent
3f51cb63
No related branches found
Branches containing commit
No related tags found
Tags containing commit
No related merge requests found
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
dlls/ntdll/ntdll.spec
+14
-14
14 additions, 14 deletions
dlls/ntdll/ntdll.spec
dlls/ntdll/sync.c
+0
-68
0 additions, 68 deletions
dlls/ntdll/sync.c
dlls/ntdll/unix/loader.c
+0
-7
0 additions, 7 deletions
dlls/ntdll/unix/loader.c
dlls/ntdll/unixlib.h
+1
-12
1 addition, 12 deletions
dlls/ntdll/unixlib.h
with
15 additions
and
101 deletions
dlls/ntdll/ntdll.spec
+
14
−
14
View file @
66e6d87a
...
...
@@ -142,7 +142,7 @@
@ stdcall NtAllocateUuids(ptr ptr ptr ptr)
@ stdcall NtAllocateVirtualMemory(long ptr long ptr long long)
@ stdcall NtAreMappedFilesTheSame(ptr ptr)
@ stdcall NtAssignProcessToJobObject(long long)
@ stdcall
-syscall
NtAssignProcessToJobObject(long long)
@ stub NtCallbackReturn
# @ stub NtCancelDeviceWakeupRequest
@ stdcall NtCancelIoFile(long ptr)
...
...
@@ -164,7 +164,7 @@
@ stub NtCreateEventPair
@ stdcall -syscall NtCreateFile(ptr long ptr ptr ptr long long long long ptr long)
@ stdcall NtCreateIoCompletion(ptr long ptr long)
@ stdcall NtCreateJobObject(ptr long ptr)
@ stdcall
-syscall
NtCreateJobObject(ptr long ptr)
# @ stub NtCreateJobSet
@ stdcall NtCreateKey(ptr long ptr long ptr long ptr)
@ stdcall NtCreateKeyTransacted(ptr long ptr long ptr long long ptr)
...
...
@@ -231,7 +231,7 @@
@ stub NtImpersonateThread
@ stub NtInitializeRegistry
@ stdcall NtInitiatePowerAction (long long long long)
@ stdcall NtIsProcessInJob(long long)
@ stdcall
-syscall
NtIsProcessInJob(long long)
# @ stub NtIsSystemResumeAutomatic
@ stdcall NtListenPort(ptr ptr)
@ stdcall NtLoadDriver(ptr)
...
...
@@ -255,7 +255,7 @@
@ stub NtOpenEventPair
@ stdcall -syscall NtOpenFile(ptr long ptr ptr long long)
@ stdcall NtOpenIoCompletion(ptr long ptr)
@ stdcall NtOpenJobObject(ptr long ptr)
@ stdcall
-syscall
NtOpenJobObject(ptr long ptr)
@ stdcall NtOpenKey(ptr long ptr)
@ stdcall NtOpenKeyEx(ptr long ptr long)
@ stdcall NtOpenKeyTransacted(ptr long ptr long)
...
...
@@ -293,7 +293,7 @@
@ stdcall NtQueryFullAttributesFile(ptr ptr)
@ stdcall NtQueryInformationAtom(long long ptr long ptr)
@ stdcall NtQueryInformationFile(long ptr ptr long long)
@ stdcall NtQueryInformationJobObject(long long ptr long ptr)
@ stdcall
-syscall
NtQueryInformationJobObject(long long ptr long ptr)
@ stub NtQueryInformationPort
@ stdcall NtQueryInformationProcess(long long ptr long ptr)
@ stdcall NtQueryInformationThread(long long ptr long ptr)
...
...
@@ -374,7 +374,7 @@
@ stub NtSetHighWaitLowThread
# @ stub NtSetInformationDebugObject
@ stdcall NtSetInformationFile(long ptr ptr long long)
@ stdcall NtSetInformationJobObject(long long ptr long)
@ stdcall
-syscall
NtSetInformationJobObject(long long ptr long)
@ stdcall NtSetInformationKey(long long ptr long)
@ stdcall NtSetInformationObject(long long ptr long)
@ stdcall NtSetInformationProcess(long long ptr long)
...
...
@@ -407,7 +407,7 @@
@ stdcall NtSuspendProcess(long)
@ stdcall NtSuspendThread(long ptr)
@ stdcall NtSystemDebugControl(long ptr long ptr long ptr)
@ stdcall NtTerminateJobObject(long long)
@ stdcall
-syscall
NtTerminateJobObject(long long)
@ stdcall NtTerminateProcess(long long)
@ stdcall NtTerminateThread(long long)
@ stub NtTestAlert
...
...
@@ -1131,7 +1131,7 @@
@ stdcall -private ZwAllocateUuids(ptr ptr ptr ptr) NtAllocateUuids
@ stdcall -private ZwAllocateVirtualMemory(long ptr long ptr long long) NtAllocateVirtualMemory
@ stdcall -private ZwAreMappedFilesTheSame(ptr ptr) NtAreMappedFilesTheSame
@ stdcall -private ZwAssignProcessToJobObject(long long) NtAssignProcessToJobObject
@ stdcall -private
-syscall
ZwAssignProcessToJobObject(long long) NtAssignProcessToJobObject
@ stub ZwCallbackReturn
# @ stub ZwCancelDeviceWakeupRequest
@ stdcall -private ZwCancelIoFile(long ptr) NtCancelIoFile
...
...
@@ -1153,7 +1153,7 @@
@ stub ZwCreateEventPair
@ stdcall -private -syscall ZwCreateFile(ptr long ptr ptr ptr long long long long ptr long) NtCreateFile
@ stdcall -private ZwCreateIoCompletion(ptr long ptr long) NtCreateIoCompletion
@ stdcall -private ZwCreateJobObject(ptr long ptr) NtCreateJobObject
@ stdcall -private
-syscall
ZwCreateJobObject(ptr long ptr) NtCreateJobObject
# @ stub ZwCreateJobSet
@ stdcall -private ZwCreateKey(ptr long ptr long ptr long ptr) NtCreateKey
@ stdcall -private ZwCreateKeyTransacted(ptr long ptr long ptr long long ptr) NtCreateKeyTransacted
...
...
@@ -1215,7 +1215,7 @@
@ stub ZwImpersonateThread
@ stub ZwInitializeRegistry
@ stdcall -private ZwInitiatePowerAction(long long long long) NtInitiatePowerAction
@ stdcall -private ZwIsProcessInJob(long long) NtIsProcessInJob
@ stdcall -private
-syscall
ZwIsProcessInJob(long long) NtIsProcessInJob
# @ stub ZwIsSystemResumeAutomatic
@ stdcall -private ZwListenPort(ptr ptr) NtListenPort
@ stdcall -private ZwLoadDriver(ptr) NtLoadDriver
...
...
@@ -1239,7 +1239,7 @@
@ stub ZwOpenEventPair
@ stdcall -private -syscall ZwOpenFile(ptr long ptr ptr long long) NtOpenFile
@ stdcall -private ZwOpenIoCompletion(ptr long ptr) NtOpenIoCompletion
@ stdcall -private ZwOpenJobObject(ptr long ptr) NtOpenJobObject
@ stdcall -private
-syscall
ZwOpenJobObject(ptr long ptr) NtOpenJobObject
@ stdcall -private ZwOpenKey(ptr long ptr) NtOpenKey
@ stdcall -private ZwOpenKeyEx(ptr long ptr long) NtOpenKeyEx
@ stdcall -private ZwOpenKeyTransacted(ptr long ptr long) NtOpenKeyTransacted
...
...
@@ -1277,7 +1277,7 @@
@ stdcall -private ZwQueryFullAttributesFile(ptr ptr) NtQueryFullAttributesFile
@ stdcall -private ZwQueryInformationAtom(long long ptr long ptr) NtQueryInformationAtom
@ stdcall -private ZwQueryInformationFile(long ptr ptr long long) NtQueryInformationFile
@ stdcall -private ZwQueryInformationJobObject(long long ptr long ptr) NtQueryInformationJobObject
@ stdcall -private
-syscall
ZwQueryInformationJobObject(long long ptr long ptr) NtQueryInformationJobObject
@ stub ZwQueryInformationPort
@ stdcall -private ZwQueryInformationProcess(long long ptr long ptr) NtQueryInformationProcess
@ stdcall -private ZwQueryInformationThread(long long ptr long ptr) NtQueryInformationThread
...
...
@@ -1358,7 +1358,7 @@
@ stub ZwSetHighWaitLowThread
# @ stub ZwSetInformationDebugObject
@ stdcall -private ZwSetInformationFile(long ptr ptr long long) NtSetInformationFile
@ stdcall -private ZwSetInformationJobObject(long long ptr long) NtSetInformationJobObject
@ stdcall -private
-syscall
ZwSetInformationJobObject(long long ptr long) NtSetInformationJobObject
@ stdcall -private ZwSetInformationKey(long long ptr long) NtSetInformationKey
@ stdcall -private ZwSetInformationObject(long long ptr long) NtSetInformationObject
@ stdcall -private ZwSetInformationProcess(long long ptr long) NtSetInformationProcess
...
...
@@ -1391,7 +1391,7 @@
@ stdcall -private ZwSuspendProcess(long) NtSuspendProcess
@ stdcall -private ZwSuspendThread(long ptr) NtSuspendThread
@ stdcall -private ZwSystemDebugControl(long ptr long ptr long ptr) NtSystemDebugControl
@ stdcall -private ZwTerminateJobObject(long long) NtTerminateJobObject
@ stdcall -private
-syscall
ZwTerminateJobObject(long long) NtTerminateJobObject
@ stdcall -private ZwTerminateProcess(long long) NtTerminateProcess
@ stdcall -private ZwTerminateThread(long long) NtTerminateThread
@ stub ZwTestAlert
...
...
This diff is collapsed.
Click to expand it.
dlls/ntdll/sync.c
+
0
−
68
View file @
66e6d87a
...
...
@@ -135,74 +135,6 @@ NTSTATUS validate_open_object_attributes( const OBJECT_ATTRIBUTES *attr )
return
STATUS_SUCCESS
;
}
/*
* Jobs
*/
/******************************************************************************
* NtCreateJobObject [NTDLL.@]
* ZwCreateJobObject [NTDLL.@]
*/
NTSTATUS
WINAPI
NtCreateJobObject
(
PHANDLE
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
)
{
return
unix_funcs
->
NtCreateJobObject
(
handle
,
access
,
attr
);
}
/******************************************************************************
* NtOpenJobObject [NTDLL.@]
* ZwOpenJobObject [NTDLL.@]
*/
NTSTATUS
WINAPI
NtOpenJobObject
(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
)
{
return
unix_funcs
->
NtOpenJobObject
(
handle
,
access
,
attr
);
}
/******************************************************************************
* NtTerminateJobObject [NTDLL.@]
* ZwTerminateJobObject [NTDLL.@]
*/
NTSTATUS
WINAPI
NtTerminateJobObject
(
HANDLE
handle
,
NTSTATUS
status
)
{
return
unix_funcs
->
NtTerminateJobObject
(
handle
,
status
);
}
/******************************************************************************
* NtQueryInformationJobObject [NTDLL.@]
* ZwQueryInformationJobObject [NTDLL.@]
*/
NTSTATUS
WINAPI
NtQueryInformationJobObject
(
HANDLE
handle
,
JOBOBJECTINFOCLASS
class
,
PVOID
info
,
ULONG
len
,
PULONG
ret_len
)
{
return
unix_funcs
->
NtQueryInformationJobObject
(
handle
,
class
,
info
,
len
,
ret_len
);
}
/******************************************************************************
* NtSetInformationJobObject [NTDLL.@]
* ZwSetInformationJobObject [NTDLL.@]
*/
NTSTATUS
WINAPI
NtSetInformationJobObject
(
HANDLE
handle
,
JOBOBJECTINFOCLASS
class
,
PVOID
info
,
ULONG
len
)
{
return
unix_funcs
->
NtSetInformationJobObject
(
handle
,
class
,
info
,
len
);
}
/******************************************************************************
* NtIsProcessInJob [NTDLL.@]
* ZwIsProcessInJob [NTDLL.@]
*/
NTSTATUS
WINAPI
NtIsProcessInJob
(
HANDLE
process
,
HANDLE
job
)
{
return
unix_funcs
->
NtIsProcessInJob
(
process
,
job
);
}
/******************************************************************************
* NtAssignProcessToJobObject [NTDLL.@]
* ZwAssignProcessToJobObject [NTDLL.@]
*/
NTSTATUS
WINAPI
NtAssignProcessToJobObject
(
HANDLE
job
,
HANDLE
process
)
{
return
unix_funcs
->
NtAssignProcessToJobObject
(
job
,
process
);
}
/*
* Timers
*/
...
...
This diff is collapsed.
Click to expand it.
dlls/ntdll/unix/loader.c
+
0
−
7
View file @
66e6d87a
...
...
@@ -1362,12 +1362,10 @@ static struct unix_funcs unix_funcs =
NtAlertThread
,
NtAllocateVirtualMemory
,
NtAreMappedFilesTheSame
,
NtAssignProcessToJobObject
,
NtCancelTimer
,
NtClose
,
NtContinue
,
NtCreateIoCompletion
,
NtCreateJobObject
,
NtCreateKeyedEvent
,
NtCreateMailslotFile
,
NtCreateNamedPipeFile
,
...
...
@@ -1389,12 +1387,10 @@ static struct unix_funcs unix_funcs =
NtGetContextThread
,
NtGetCurrentProcessorNumber
,
NtGetWriteWatch
,
NtIsProcessInJob
,
NtLockVirtualMemory
,
NtMapViewOfSection
,
NtNotifyChangeDirectoryFile
,
NtOpenIoCompletion
,
NtOpenJobObject
,
NtOpenKeyedEvent
,
NtOpenProcess
,
NtOpenSection
,
...
...
@@ -1406,7 +1402,6 @@ static struct unix_funcs unix_funcs =
NtQueryDirectoryFile
,
NtQueryFullAttributesFile
,
NtQueryInformationFile
,
NtQueryInformationJobObject
,
NtQueryInformationProcess
,
NtQueryInformationThread
,
NtQueryIoCompletion
,
...
...
@@ -1432,7 +1427,6 @@ static struct unix_funcs unix_funcs =
NtResumeThread
,
NtSetContextThread
,
NtSetInformationFile
,
NtSetInformationJobObject
,
NtSetInformationObject
,
NtSetInformationProcess
,
NtSetInformationThread
,
...
...
@@ -1444,7 +1438,6 @@ static struct unix_funcs unix_funcs =
NtSignalAndWaitForSingleObject
,
NtSuspendProcess
,
NtSuspendThread
,
NtTerminateJobObject
,
NtTerminateProcess
,
NtTerminateThread
,
NtUnlockVirtualMemory
,
...
...
This diff is collapsed.
Click to expand it.
dlls/ntdll/unixlib.h
+
1
−
12
View file @
66e6d87a
...
...
@@ -28,7 +28,7 @@ struct msghdr;
struct
_DISPATCHER_CONTEXT
;
/* increment this when you change the function table */
#define NTDLL_UNIXLIB_VERSION 7
7
#define NTDLL_UNIXLIB_VERSION 7
8
struct
unix_funcs
{
...
...
@@ -38,14 +38,11 @@ struct unix_funcs
NTSTATUS
(
WINAPI
*
NtAllocateVirtualMemory
)(
HANDLE
process
,
PVOID
*
ret
,
ULONG_PTR
zero_bits
,
SIZE_T
*
size_ptr
,
ULONG
type
,
ULONG
protect
);
NTSTATUS
(
WINAPI
*
NtAreMappedFilesTheSame
)(
PVOID
addr1
,
PVOID
addr2
);
NTSTATUS
(
WINAPI
*
NtAssignProcessToJobObject
)(
HANDLE
job
,
HANDLE
process
);
NTSTATUS
(
WINAPI
*
NtCancelTimer
)(
HANDLE
handle
,
BOOLEAN
*
state
);
NTSTATUS
(
WINAPI
*
NtClose
)(
HANDLE
handle
);
NTSTATUS
(
WINAPI
*
NtContinue
)(
CONTEXT
*
context
,
BOOLEAN
alertable
);
NTSTATUS
(
WINAPI
*
NtCreateIoCompletion
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
OBJECT_ATTRIBUTES
*
attr
,
ULONG
threads
);
NTSTATUS
(
WINAPI
*
NtCreateJobObject
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
);
NTSTATUS
(
WINAPI
*
NtCreateKeyedEvent
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
,
ULONG
flags
);
NTSTATUS
(
WINAPI
*
NtCreateMailslotFile
)(
HANDLE
*
handle
,
ULONG
access
,
OBJECT_ATTRIBUTES
*
attr
,
...
...
@@ -97,7 +94,6 @@ struct unix_funcs
ULONG
(
WINAPI
*
NtGetCurrentProcessorNumber
)(
void
);
NTSTATUS
(
WINAPI
*
NtGetWriteWatch
)(
HANDLE
process
,
ULONG
flags
,
PVOID
base
,
SIZE_T
size
,
PVOID
*
addresses
,
ULONG_PTR
*
count
,
ULONG
*
granularity
);
NTSTATUS
(
WINAPI
*
NtIsProcessInJob
)(
HANDLE
process
,
HANDLE
job
);
NTSTATUS
(
WINAPI
*
NtLockVirtualMemory
)(
HANDLE
process
,
PVOID
*
addr
,
SIZE_T
*
size
,
ULONG
unknown
);
NTSTATUS
(
WINAPI
*
NtMapViewOfSection
)(
HANDLE
handle
,
HANDLE
process
,
PVOID
*
addr_ptr
,
ULONG_PTR
zero_bits
,
SIZE_T
commit_size
,
...
...
@@ -109,8 +105,6 @@ struct unix_funcs
ULONG
filter
,
BOOLEAN
subtree
);
NTSTATUS
(
WINAPI
*
NtOpenIoCompletion
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
);
NTSTATUS
(
WINAPI
*
NtOpenJobObject
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
);
NTSTATUS
(
WINAPI
*
NtOpenKeyedEvent
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
const
OBJECT_ATTRIBUTES
*
attr
);
NTSTATUS
(
WINAPI
*
NtOpenProcess
)(
HANDLE
*
handle
,
ACCESS_MASK
access
,
...
...
@@ -135,8 +129,6 @@ struct unix_funcs
FILE_NETWORK_OPEN_INFORMATION
*
info
);
NTSTATUS
(
WINAPI
*
NtQueryInformationFile
)(
HANDLE
hFile
,
IO_STATUS_BLOCK
*
io
,
void
*
ptr
,
LONG
len
,
FILE_INFORMATION_CLASS
class
);
NTSTATUS
(
WINAPI
*
NtQueryInformationJobObject
)(
HANDLE
handle
,
JOBOBJECTINFOCLASS
class
,
void
*
info
,
ULONG
len
,
ULONG
*
ret_len
);
NTSTATUS
(
WINAPI
*
NtQueryInformationProcess
)(
HANDLE
handle
,
PROCESSINFOCLASS
class
,
void
*
info
,
ULONG
size
,
ULONG
*
ret_len
);
NTSTATUS
(
WINAPI
*
NtQueryInformationThread
)(
HANDLE
handle
,
THREADINFOCLASS
class
,
...
...
@@ -187,8 +179,6 @@ struct unix_funcs
NTSTATUS
(
WINAPI
*
NtSetContextThread
)(
HANDLE
handle
,
const
CONTEXT
*
context
);
NTSTATUS
(
WINAPI
*
NtSetInformationFile
)(
HANDLE
handle
,
IO_STATUS_BLOCK
*
io
,
void
*
ptr
,
ULONG
len
,
FILE_INFORMATION_CLASS
class
);
NTSTATUS
(
WINAPI
*
NtSetInformationJobObject
)(
HANDLE
handle
,
JOBOBJECTINFOCLASS
class
,
void
*
info
,
ULONG
len
);
NTSTATUS
(
WINAPI
*
NtSetInformationObject
)(
HANDLE
handle
,
OBJECT_INFORMATION_CLASS
info_class
,
void
*
ptr
,
ULONG
len
);
NTSTATUS
(
WINAPI
*
NtSetInformationProcess
)(
HANDLE
handle
,
PROCESSINFOCLASS
class
,
...
...
@@ -208,7 +198,6 @@ struct unix_funcs
BOOLEAN
alertable
,
const
LARGE_INTEGER
*
timeout
);
NTSTATUS
(
WINAPI
*
NtSuspendProcess
)(
HANDLE
handle
);
NTSTATUS
(
WINAPI
*
NtSuspendThread
)(
HANDLE
handle
,
ULONG
*
count
);
NTSTATUS
(
WINAPI
*
NtTerminateJobObject
)(
HANDLE
handle
,
NTSTATUS
status
);
NTSTATUS
(
WINAPI
*
NtTerminateProcess
)(
HANDLE
handle
,
LONG
exit_code
);
NTSTATUS
(
WINAPI
*
NtTerminateThread
)(
HANDLE
handle
,
LONG
exit_code
);
NTSTATUS
(
WINAPI
*
NtUnlockVirtualMemory
)(
HANDLE
process
,
PVOID
*
addr
,
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment