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
59485f00
Commit
59485f00
authored
Nov 15, 2023
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
ntdll: Remove DECLSPEC_HIDDEN usage.
parent
40601653
Show whitespace changes
Inline
Side-by-side
Showing
12 changed files
with
244 additions
and
244 deletions
+244
-244
ntdll_misc.h
dlls/ntdll/ntdll_misc.h
+33
-33
relay.c
dlls/ntdll/relay.c
+10
-10
resource.c
dlls/ntdll/resource.c
+1
-1
signal_i386.c
dlls/ntdll/signal_i386.c
+3
-3
signal_x86_64.c
dlls/ntdll/signal_x86_64.c
+1
-1
signal_arm.c
dlls/ntdll/unix/signal_arm.c
+3
-3
signal_arm64.c
dlls/ntdll/unix/signal_arm64.c
+4
-4
signal_i386.c
dlls/ntdll/unix/signal_i386.c
+7
-7
signal_x86_64.c
dlls/ntdll/unix/signal_x86_64.c
+7
-7
system.c
dlls/ntdll/unix/system.c
+2
-2
unix_private.h
dlls/ntdll/unix/unix_private.h
+172
-172
unixlib.h
dlls/ntdll/unixlib.h
+1
-1
No files found.
dlls/ntdll/ntdll_misc.h
View file @
59485f00
...
...
@@ -44,55 +44,55 @@
#if defined(__i386__) || defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
static
const
UINT_PTR
page_size
=
0x1000
;
#else
extern
UINT_PTR
page_size
DECLSPEC_HIDDEN
;
extern
UINT_PTR
page_size
;
#endif
/* exceptions */
extern
LONG
call_vectored_handlers
(
EXCEPTION_RECORD
*
rec
,
CONTEXT
*
context
)
DECLSPEC_HIDDEN
;
extern
void
DECLSPEC_NORETURN
raise_status
(
NTSTATUS
status
,
EXCEPTION_RECORD
*
rec
)
DECLSPEC_HIDDEN
;
extern
LONG
WINAPI
call_unhandled_exception_filter
(
PEXCEPTION_POINTERS
eptr
)
DECLSPEC_HIDDEN
;
extern
LONG
call_vectored_handlers
(
EXCEPTION_RECORD
*
rec
,
CONTEXT
*
context
);
extern
void
DECLSPEC_NORETURN
raise_status
(
NTSTATUS
status
,
EXCEPTION_RECORD
*
rec
);
extern
LONG
WINAPI
call_unhandled_exception_filter
(
PEXCEPTION_POINTERS
eptr
);
extern
void
WINAPI
LdrInitializeThunk
(
CONTEXT
*
,
ULONG_PTR
,
ULONG_PTR
,
ULONG_PTR
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
WINAPI
KiUserExceptionDispatcher
(
EXCEPTION_RECORD
*
,
CONTEXT
*
)
DECLSPEC_HIDDEN
;
extern
void
WINAPI
KiUserApcDispatcher
(
CONTEXT
*
,
ULONG_PTR
,
ULONG_PTR
,
ULONG_PTR
,
PNTAPCFUNC
)
DECLSPEC_HIDDEN
;
extern
void
WINAPI
KiUserCallbackDispatcher
(
ULONG
,
void
*
,
ULONG
)
DECLSPEC_HIDDEN
;
extern
void
(
WINAPI
*
pWow64PrepareForException
)(
EXCEPTION_RECORD
*
rec
,
CONTEXT
*
context
)
DECLSPEC_HIDDEN
;
extern
void
WINAPI
LdrInitializeThunk
(
CONTEXT
*
,
ULONG_PTR
,
ULONG_PTR
,
ULONG_PTR
);
extern
NTSTATUS
WINAPI
KiUserExceptionDispatcher
(
EXCEPTION_RECORD
*
,
CONTEXT
*
);
extern
void
WINAPI
KiUserApcDispatcher
(
CONTEXT
*
,
ULONG_PTR
,
ULONG_PTR
,
ULONG_PTR
,
PNTAPCFUNC
);
extern
void
WINAPI
KiUserCallbackDispatcher
(
ULONG
,
void
*
,
ULONG
);
extern
void
(
WINAPI
*
pWow64PrepareForException
)(
EXCEPTION_RECORD
*
rec
,
CONTEXT
*
context
);
#if defined(__x86_64__) || defined(__arm__) || defined(__aarch64__)
extern
RUNTIME_FUNCTION
*
lookup_function_info
(
ULONG_PTR
pc
,
ULONG_PTR
*
base
,
LDR_DATA_TABLE_ENTRY
**
module
)
DECLSPEC_HIDDEN
;
extern
RUNTIME_FUNCTION
*
lookup_function_info
(
ULONG_PTR
pc
,
ULONG_PTR
*
base
,
LDR_DATA_TABLE_ENTRY
**
module
);
#endif
/* debug helpers */
extern
LPCSTR
debugstr_us
(
const
UNICODE_STRING
*
str
)
DECLSPEC_HIDDEN
;
extern
const
char
*
debugstr_exception_code
(
DWORD
code
)
DECLSPEC_HIDDEN
;
extern
void
set_native_thread_name
(
DWORD
tid
,
const
char
*
name
)
DECLSPEC_HIDDEN
;
extern
LPCSTR
debugstr_us
(
const
UNICODE_STRING
*
str
);
extern
const
char
*
debugstr_exception_code
(
DWORD
code
);
extern
void
set_native_thread_name
(
DWORD
tid
,
const
char
*
name
);
/* init routines */
extern
void
loader_init
(
CONTEXT
*
context
,
void
**
entry
)
DECLSPEC_HIDDEN
;
extern
void
version_init
(
void
)
DECLSPEC_HIDDEN
;
extern
void
debug_init
(
void
)
DECLSPEC_HIDDEN
;
extern
void
actctx_init
(
void
)
DECLSPEC_HIDDEN
;
extern
void
locale_init
(
void
)
DECLSPEC_HIDDEN
;
extern
void
init_user_process_params
(
void
)
DECLSPEC_HIDDEN
;
extern
void
get_resource_lcids
(
LANGID
*
user
,
LANGID
*
user_neutral
,
LANGID
*
system
)
DECLSPEC_HIDDEN
;
extern
void
loader_init
(
CONTEXT
*
context
,
void
**
entry
);
extern
void
version_init
(
void
);
extern
void
debug_init
(
void
);
extern
void
actctx_init
(
void
);
extern
void
locale_init
(
void
);
extern
void
init_user_process_params
(
void
);
extern
void
get_resource_lcids
(
LANGID
*
user
,
LANGID
*
user_neutral
,
LANGID
*
system
);
/* module handling */
extern
LIST_ENTRY
tls_links
DECLSPEC_HIDDEN
;
extern
LIST_ENTRY
tls_links
;
extern
FARPROC
RELAY_GetProcAddress
(
HMODULE
module
,
const
IMAGE_EXPORT_DIRECTORY
*
exports
,
DWORD
exp_size
,
FARPROC
proc
,
DWORD
ordinal
,
const
WCHAR
*
user
)
DECLSPEC_HIDDEN
;
DWORD
exp_size
,
FARPROC
proc
,
DWORD
ordinal
,
const
WCHAR
*
user
);
extern
FARPROC
SNOOP_GetProcAddress
(
HMODULE
hmod
,
const
IMAGE_EXPORT_DIRECTORY
*
exports
,
DWORD
exp_size
,
FARPROC
origfun
,
DWORD
ordinal
,
const
WCHAR
*
user
)
DECLSPEC_HIDDEN
;
extern
void
RELAY_SetupDLL
(
HMODULE
hmod
)
DECLSPEC_HIDDEN
;
extern
void
SNOOP_SetupDLL
(
HMODULE
hmod
)
DECLSPEC_HIDDEN
;
extern
const
WCHAR
windows_dir
[]
DECLSPEC_HIDDEN
;
extern
const
WCHAR
system_dir
[]
DECLSPEC_HIDDEN
;
FARPROC
origfun
,
DWORD
ordinal
,
const
WCHAR
*
user
);
extern
void
RELAY_SetupDLL
(
HMODULE
hmod
);
extern
void
SNOOP_SetupDLL
(
HMODULE
hmod
);
extern
const
WCHAR
windows_dir
[];
extern
const
WCHAR
system_dir
[];
extern
void
(
FASTCALL
*
pBaseThreadInitThunk
)(
DWORD
,
LPTHREAD_START_ROUTINE
,
void
*
)
DECLSPEC_HIDDEN
;
extern
void
(
FASTCALL
*
pBaseThreadInitThunk
)(
DWORD
,
LPTHREAD_START_ROUTINE
,
void
*
);
extern
struct
_KUSER_SHARED_DATA
*
user_shared_data
DECLSPEC_HIDDEN
;
extern
struct
_KUSER_SHARED_DATA
*
user_shared_data
;
extern
int
CDECL
NTDLL__vsnprintf
(
char
*
str
,
SIZE_T
len
,
const
char
*
format
,
va_list
args
)
DECLSPEC_HIDDEN
;
extern
int
CDECL
NTDLL__vsnwprintf
(
WCHAR
*
str
,
SIZE_T
len
,
const
WCHAR
*
format
,
va_list
args
)
DECLSPEC_HIDDEN
;
extern
int
CDECL
NTDLL__vsnprintf
(
char
*
str
,
SIZE_T
len
,
const
char
*
format
,
va_list
args
);
extern
int
CDECL
NTDLL__vsnwprintf
(
WCHAR
*
str
,
SIZE_T
len
,
const
WCHAR
*
format
,
va_list
args
);
struct
dllredirect_data
{
...
...
@@ -128,8 +128,8 @@ static inline void ascii_to_unicode( WCHAR *dst, const char *src, size_t len )
}
/* FLS data */
extern
TEB_FLS_DATA
*
fls_alloc_data
(
void
)
DECLSPEC_HIDDEN
;
extern
void
heap_thread_detach
(
void
)
DECLSPEC_HIDDEN
;
extern
TEB_FLS_DATA
*
fls_alloc_data
(
void
);
extern
void
heap_thread_detach
(
void
);
#ifdef __arm64ec__
...
...
dlls/ntdll/relay.c
View file @
59485f00
...
...
@@ -307,7 +307,7 @@ static void trace_string_w( INT_PTR ptr )
/***********************************************************************
* relay_trace_entry
*/
DECLSPEC_HIDDEN
void
*
WINAPI
relay_trace_entry
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
void
*
WINAPI
relay_trace_entry
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
const
DWORD
*
stack
,
unsigned
int
*
nb_args
)
{
WORD
ordinal
=
LOWORD
(
idx
);
...
...
@@ -363,7 +363,7 @@ DECLSPEC_HIDDEN void * WINAPI relay_trace_entry( struct relay_descr *descr, unsi
/***********************************************************************
* relay_trace_exit
*/
DECLSPEC_HIDDEN
void
WINAPI
relay_trace_exit
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
void
WINAPI
relay_trace_exit
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
void
*
retaddr
,
LONGLONG
retval
)
{
const
char
*
arg_types
=
descr
->
args_string
+
HIWORD
(
idx
);
...
...
@@ -446,7 +446,7 @@ __ASM_STDCALL_FUNC( relay_call, 8,
/***********************************************************************
* relay_trace_entry
*/
DECLSPEC_HIDDEN
void
*
WINAPI
relay_trace_entry
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
void
*
WINAPI
relay_trace_entry
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
const
DWORD
*
stack
,
unsigned
int
*
nb_args
)
{
WORD
ordinal
=
LOWORD
(
idx
);
...
...
@@ -527,7 +527,7 @@ DECLSPEC_HIDDEN void * WINAPI relay_trace_entry( struct relay_descr *descr, unsi
/***********************************************************************
* relay_trace_exit
*/
DECLSPEC_HIDDEN
void
WINAPI
relay_trace_exit
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
void
WINAPI
relay_trace_exit
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
DWORD
retaddr
,
LONGLONG
retval
)
{
const
char
*
arg_types
=
descr
->
args_string
+
HIWORD
(
idx
);
...
...
@@ -600,7 +600,7 @@ __ASM_GLOBAL_FUNC( relay_call,
/***********************************************************************
* relay_trace_entry
*/
DECLSPEC_HIDDEN
void
*
WINAPI
relay_trace_entry
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
void
*
WINAPI
relay_trace_entry
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
const
INT_PTR
*
stack
,
unsigned
int
*
nb_args
)
{
WORD
ordinal
=
LOWORD
(
idx
);
...
...
@@ -636,7 +636,7 @@ DECLSPEC_HIDDEN void * WINAPI relay_trace_entry( struct relay_descr *descr, unsi
/***********************************************************************
* relay_trace_exit
*/
DECLSPEC_HIDDEN
void
WINAPI
relay_trace_exit
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
void
WINAPI
relay_trace_exit
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
INT_PTR
retaddr
,
INT_PTR
retval
)
{
TRACE
(
"
\1
Ret %s() retval=%08Ix ret=%08Ix
\n
"
,
...
...
@@ -700,7 +700,7 @@ static LONGLONG WINAPI relay_call( struct relay_descr *descr, unsigned int idx,
/***********************************************************************
* relay_trace_entry
*/
DECLSPEC_HIDDEN
void
*
WINAPI
relay_trace_entry
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
void
*
WINAPI
relay_trace_entry
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
const
INT_PTR
*
stack
,
unsigned
int
*
nb_args
)
{
WORD
ordinal
=
LOWORD
(
idx
);
...
...
@@ -742,7 +742,7 @@ DECLSPEC_HIDDEN void * WINAPI relay_trace_entry( struct relay_descr *descr, unsi
/***********************************************************************
* relay_trace_exit
*/
DECLSPEC_HIDDEN
void
WINAPI
relay_trace_exit
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
void
WINAPI
relay_trace_exit
(
struct
relay_descr
*
descr
,
unsigned
int
idx
,
INT_PTR
retaddr
,
INT_PTR
retval
)
{
TRACE
(
"
\1
Ret %s() retval=%08Ix ret=%08Ix
\n
"
,
...
...
@@ -1189,7 +1189,7 @@ static void SNOOP_PrintArg(DWORD x)
__ENDTRY
}
void
WINAPI
DECLSPEC_HIDDEN
__regs_SNOOP_Entry
(
void
**
stack
)
void
WINAPI
__regs_SNOOP_Entry
(
void
**
stack
)
{
SNOOP_DLL
*
dll
;
SNOOP_FUN
*
fun
=
(
SNOOP_FUN
*
)((
char
*
)
stack
[
0
]
-
5
);
...
...
@@ -1273,7 +1273,7 @@ void WINAPI DECLSPEC_HIDDEN __regs_SNOOP_Entry( void **stack )
TRACE_
(
snoop
)(
") ret=%08lx
\n
"
,(
DWORD
)
ret
->
origreturn
);
}
void
WINAPI
DECLSPEC_HIDDEN
__regs_SNOOP_Return
(
void
**
stack
)
void
WINAPI
__regs_SNOOP_Return
(
void
**
stack
)
{
SNOOP_RETURNENTRY
*
ret
=
(
SNOOP_RETURNENTRY
*
)((
char
*
)
stack
[
0
]
-
5
);
SNOOP_FUN
*
fun
=
&
ret
->
dll
->
funs
[
ret
->
ordinal
];
...
...
dlls/ntdll/resource.c
View file @
59485f00
...
...
@@ -309,7 +309,7 @@ NTSTATUS WINAPI DECLSPEC_HOTPATCH LdrFindResource_U( HMODULE hmod, const LDR_RES
/* don't penalize other platforms with stuff needed on i386 for compatibility */
#ifdef __i386__
NTSTATUS
WINAPI
DECLSPEC_HIDDEN
access_resource
(
HMODULE
hmod
,
const
IMAGE_RESOURCE_DATA_ENTRY
*
entry
,
NTSTATUS
WINAPI
access_resource
(
HMODULE
hmod
,
const
IMAGE_RESOURCE_DATA_ENTRY
*
entry
,
void
**
ptr
,
ULONG
*
size
)
#else
static
inline
NTSTATUS
access_resource
(
HMODULE
hmod
,
const
IMAGE_RESOURCE_DATA_ENTRY
*
entry
,
...
...
dlls/ntdll/signal_i386.c
View file @
59485f00
...
...
@@ -371,7 +371,7 @@ void CDECL RtlRestoreContext( CONTEXT *context, EXCEPTION_RECORD *rec )
/*******************************************************************
* RtlUnwind (NTDLL.@)
*/
void
WINAPI
DECLSPEC_HIDDEN
__regs_RtlUnwind
(
EXCEPTION_REGISTRATION_RECORD
*
pEndFrame
,
PVOID
targetIp
,
void
WINAPI
__regs_RtlUnwind
(
EXCEPTION_REGISTRATION_RECORD
*
pEndFrame
,
PVOID
targetIp
,
PEXCEPTION_RECORD
pRecord
,
PVOID
retval
,
CONTEXT
*
context
)
{
EXCEPTION_RECORD
record
;
...
...
@@ -559,7 +559,7 @@ __ASM_GLOBAL_FUNC( call_thread_func_wrapper,
"movl %eax,(%esp)
\n\t
"
"call *8(%ebp)"
)
void
DECLSPEC_HIDDEN
call_thread_func
(
PRTL_THREAD_START_ROUTINE
entry
,
void
*
arg
)
void
call_thread_func
(
PRTL_THREAD_START_ROUTINE
entry
,
void
*
arg
)
{
__TRY
{
...
...
@@ -575,7 +575,7 @@ void DECLSPEC_HIDDEN call_thread_func( PRTL_THREAD_START_ROUTINE entry, void *ar
/***********************************************************************
* signal_start_thread
*/
extern
void
CDECL
DECLSPEC_NORETURN
signal_start_thread
(
CONTEXT
*
ctx
)
DECLSPEC_HIDDEN
;
extern
void
CDECL
DECLSPEC_NORETURN
signal_start_thread
(
CONTEXT
*
ctx
);
__ASM_GLOBAL_FUNC
(
signal_start_thread
,
"movl 4(%esp),%esi
\n\t
"
/* context */
"leal -12(%esi),%edi
\n\t
"
...
...
dlls/ntdll/signal_x86_64.c
View file @
59485f00
...
...
@@ -1680,7 +1680,7 @@ void WINAPI RtlUserThreadStart( PRTL_THREAD_START_ROUTINE entry, void *arg )
/***********************************************************************
* signal_start_thread
*/
extern
void
CDECL
DECLSPEC_NORETURN
signal_start_thread
(
CONTEXT
*
ctx
)
DECLSPEC_HIDDEN
;
extern
void
CDECL
DECLSPEC_NORETURN
signal_start_thread
(
CONTEXT
*
ctx
);
__ASM_GLOBAL_FUNC
(
signal_start_thread
,
"movq %rcx,%rbx
\n\t
"
/* context */
/* clear the thread stack */
...
...
dlls/ntdll/unix/signal_arm.c
View file @
59485f00
...
...
@@ -1153,7 +1153,7 @@ NTSTATUS call_user_exception_dispatcher( EXCEPTION_RECORD *rec, CONTEXT *context
* call_user_mode_callback
*/
extern
NTSTATUS
call_user_mode_callback
(
ULONG
id
,
void
*
args
,
ULONG
len
,
void
**
ret_ptr
,
ULONG
*
ret_len
,
void
*
func
,
TEB
*
teb
)
DECLSPEC_HIDDEN
;
ULONG
*
ret_len
,
void
*
func
,
TEB
*
teb
);
__ASM_GLOBAL_FUNC
(
call_user_mode_callback
,
"push {r4-r12,lr}
\n\t
"
"ldr ip, [sp, #0x2c]
\n\t
"
/* func */
...
...
@@ -1181,7 +1181,7 @@ __ASM_GLOBAL_FUNC( call_user_mode_callback,
* user_mode_callback_return
*/
extern
void
DECLSPEC_NORETURN
user_mode_callback_return
(
void
*
ret_ptr
,
ULONG
ret_len
,
NTSTATUS
status
,
TEB
*
teb
)
DECLSPEC_HIDDEN
;
NTSTATUS
status
,
TEB
*
teb
);
__ASM_GLOBAL_FUNC
(
user_mode_callback_return
,
"ldr r4, [r3, #0x1d8]
\n\t
"
/* arm_thread_data()->syscall_frame */
"ldr r5, [r4, #0x4c]
\n\t
"
/* frame->prev_frame */
...
...
@@ -1570,7 +1570,7 @@ void signal_init_process(void)
/***********************************************************************
* call_init_thunk
*/
void
DECLSPEC_HIDDEN
call_init_thunk
(
LPTHREAD_START_ROUTINE
entry
,
void
*
arg
,
BOOL
suspend
,
TEB
*
teb
)
void
call_init_thunk
(
LPTHREAD_START_ROUTINE
entry
,
void
*
arg
,
BOOL
suspend
,
TEB
*
teb
)
{
struct
arm_thread_data
*
thread_data
=
(
struct
arm_thread_data
*
)
&
teb
->
GdiTebBatch
;
struct
syscall_frame
*
frame
=
thread_data
->
syscall_frame
;
...
...
dlls/ntdll/unix/signal_arm64.c
View file @
59485f00
...
...
@@ -1108,7 +1108,7 @@ NTSTATUS call_user_exception_dispatcher( EXCEPTION_RECORD *rec, CONTEXT *context
* call_user_mode_callback
*/
extern
NTSTATUS
call_user_mode_callback
(
ULONG
id
,
void
*
args
,
ULONG
len
,
void
**
ret_ptr
,
ULONG
*
ret_len
,
void
*
func
,
TEB
*
teb
)
DECLSPEC_HIDDEN
;
ULONG
*
ret_len
,
void
*
func
,
TEB
*
teb
);
__ASM_GLOBAL_FUNC
(
call_user_mode_callback
,
"stp x29, x30, [sp,#-0xc0]!
\n\t
"
"mov x29, sp
\n\t
"
...
...
@@ -1142,7 +1142,7 @@ __ASM_GLOBAL_FUNC( call_user_mode_callback,
* user_mode_callback_return
*/
extern
void
DECLSPEC_NORETURN
user_mode_callback_return
(
void
*
ret_ptr
,
ULONG
ret_len
,
NTSTATUS
status
,
TEB
*
teb
)
DECLSPEC_HIDDEN
;
NTSTATUS
status
,
TEB
*
teb
);
__ASM_GLOBAL_FUNC
(
user_mode_callback_return
,
"ldr x4, [x3, #0x2f8]
\n\t
"
/* arm64_thread_data()->syscall_frame */
"ldr x5, [x4, #0x110]
\n\t
"
/* prev_frame */
...
...
@@ -1596,7 +1596,7 @@ void signal_init_process(void)
/***********************************************************************
* syscall_dispatcher_return_slowpath
*/
void
DECLSPEC_HIDDEN
syscall_dispatcher_return_slowpath
(
void
)
void
syscall_dispatcher_return_slowpath
(
void
)
{
raise
(
SIGUSR2
);
}
...
...
@@ -1604,7 +1604,7 @@ void DECLSPEC_HIDDEN syscall_dispatcher_return_slowpath(void)
/***********************************************************************
* call_init_thunk
*/
void
DECLSPEC_HIDDEN
call_init_thunk
(
LPTHREAD_START_ROUTINE
entry
,
void
*
arg
,
BOOL
suspend
,
TEB
*
teb
)
void
call_init_thunk
(
LPTHREAD_START_ROUTINE
entry
,
void
*
arg
,
BOOL
suspend
,
TEB
*
teb
)
{
struct
arm64_thread_data
*
thread_data
=
(
struct
arm64_thread_data
*
)
&
teb
->
GdiTebBatch
;
struct
syscall_frame
*
frame
=
thread_data
->
syscall_frame
;
...
...
dlls/ntdll/unix/signal_i386.c
View file @
59485f00
...
...
@@ -566,7 +566,7 @@ struct xcontext
ULONG64
host_compaction_mask
;
};
extern
BOOL
xstate_compaction_enabled
DECLSPEC_HIDDEN
;
extern
BOOL
xstate_compaction_enabled
;
static
inline
XSTATE
*
xstate_from_context
(
const
CONTEXT
*
context
)
{
...
...
@@ -652,7 +652,7 @@ static int solaris_sigaction( int sig, const struct sigaction *new, struct sigac
#endif
extern
void
clear_alignment_flag
(
void
)
DECLSPEC_HIDDEN
;
extern
void
clear_alignment_flag
(
void
);
__ASM_GLOBAL_FUNC
(
clear_alignment_flag
,
"pushfl
\n\t
"
__ASM_CFI
(
".cfi_adjust_cfa_offset 4
\n\t
"
)
...
...
@@ -1575,7 +1575,7 @@ NTSTATUS call_user_exception_dispatcher( EXCEPTION_RECORD *rec, CONTEXT *context
* call_user_mode_callback
*/
extern
NTSTATUS
call_user_mode_callback
(
ULONG
id
,
void
*
args
,
ULONG
len
,
void
**
ret_ptr
,
ULONG
*
ret_len
,
void
*
func
,
TEB
*
teb
)
DECLSPEC_HIDDEN
;
ULONG
*
ret_len
,
void
*
func
,
TEB
*
teb
);
__ASM_GLOBAL_FUNC
(
call_user_mode_callback
,
"pushl %ebp
\n\t
"
__ASM_CFI
(
".cfi_adjust_cfa_offset 4
\n\t
"
)
...
...
@@ -1615,7 +1615,7 @@ __ASM_GLOBAL_FUNC( call_user_mode_callback,
* user_mode_callback_return
*/
extern
void
DECLSPEC_NORETURN
user_mode_callback_return
(
void
*
ret_ptr
,
ULONG
ret_len
,
NTSTATUS
status
,
TEB
*
teb
)
DECLSPEC_HIDDEN
;
NTSTATUS
status
,
TEB
*
teb
);
__ASM_GLOBAL_FUNC
(
user_mode_callback_return
,
"movl 16(%esp),%edx
\n
"
/* teb */
"movl 0x1f8(%edx),%eax
\n\t
"
/* x86_thread_data()->syscall_frame */
...
...
@@ -1814,13 +1814,13 @@ static BOOL handle_syscall_trap( ucontext_t *sigcontext )
if
((
void
*
)
EIP_sig
(
sigcontext
)
==
__wine_syscall_dispatcher
)
{
extern
void
__wine_syscall_dispatcher_prolog_end
(
void
)
DECLSPEC_HIDDEN
;
extern
void
__wine_syscall_dispatcher_prolog_end
(
void
);
EIP_sig
(
sigcontext
)
=
(
ULONG
)
__wine_syscall_dispatcher_prolog_end
;
}
else
if
((
void
*
)
EIP_sig
(
sigcontext
)
==
__wine_unix_call_dispatcher
)
{
extern
void
__wine_unix_call_dispatcher_prolog_end
(
void
)
DECLSPEC_HIDDEN
;
extern
void
__wine_unix_call_dispatcher_prolog_end
(
void
);
EIP_sig
(
sigcontext
)
=
(
ULONG
)
__wine_unix_call_dispatcher_prolog_end
;
}
...
...
@@ -2414,7 +2414,7 @@ void signal_init_process(void)
/***********************************************************************
* call_init_thunk
*/
void
DECLSPEC_HIDDEN
call_init_thunk
(
LPTHREAD_START_ROUTINE
entry
,
void
*
arg
,
BOOL
suspend
,
TEB
*
teb
)
void
call_init_thunk
(
LPTHREAD_START_ROUTINE
entry
,
void
*
arg
,
BOOL
suspend
,
TEB
*
teb
)
{
struct
x86_thread_data
*
thread_data
=
(
struct
x86_thread_data
*
)
&
teb
->
GdiTebBatch
;
struct
syscall_frame
*
frame
=
thread_data
->
syscall_frame
;
...
...
dlls/ntdll/unix/signal_x86_64.c
View file @
59485f00
...
...
@@ -88,7 +88,7 @@ WINE_DECLARE_DEBUG_CHANNEL(seh);
#include <asm/prctl.h>
static
inline
int
arch_prctl
(
int
func
,
void
*
ptr
)
{
return
syscall
(
__NR_arch_prctl
,
func
,
ptr
);
}
extern
int
alloc_fs_sel
(
int
sel
,
void
*
base
)
DECLSPEC_HIDDEN
;
extern
int
alloc_fs_sel
(
int
sel
,
void
*
base
);
__ASM_GLOBAL_FUNC
(
alloc_fs_sel
,
/* switch to 32-bit stack */
"pushq %rbx
\n\t
"
...
...
@@ -457,7 +457,7 @@ struct xcontext
ULONG64
host_compaction_mask
;
};
extern
BOOL
xstate_compaction_enabled
DECLSPEC_HIDDEN
;
extern
BOOL
xstate_compaction_enabled
;
static
inline
XSTATE
*
xstate_from_context
(
const
CONTEXT
*
context
)
{
...
...
@@ -1549,7 +1549,7 @@ NTSTATUS call_user_exception_dispatcher( EXCEPTION_RECORD *rec, CONTEXT *context
* call_user_mode_callback
*/
extern
NTSTATUS
call_user_mode_callback
(
ULONG
id
,
void
*
args
,
ULONG
len
,
void
**
ret_ptr
,
ULONG
*
ret_len
,
void
*
func
,
TEB
*
teb
)
DECLSPEC_HIDDEN
;
ULONG
*
ret_len
,
void
*
func
,
TEB
*
teb
);
__ASM_GLOBAL_FUNC
(
call_user_mode_callback
,
"subq $0x48,%rsp
\n\t
"
__ASM_CFI
(
".cfi_adjust_cfa_offset 0x48
\n\t
"
)
...
...
@@ -1602,7 +1602,7 @@ __ASM_GLOBAL_FUNC( call_user_mode_callback,
* user_mode_callback_return
*/
extern
void
DECLSPEC_NORETURN
user_mode_callback_return
(
void
*
ret_ptr
,
ULONG
ret_len
,
NTSTATUS
status
,
TEB
*
teb
)
DECLSPEC_HIDDEN
;
NTSTATUS
status
,
TEB
*
teb
);
__ASM_GLOBAL_FUNC
(
user_mode_callback_return
,
"movq 0x328(%rcx),%r10
\n\t
"
/* amd64_thread_data()->syscall_frame */
"movq 0xa0(%r10),%r11
\n\t
"
/* frame->prev_frame */
...
...
@@ -1857,13 +1857,13 @@ static BOOL handle_syscall_trap( ucontext_t *sigcontext )
if
((
void
*
)
RIP_sig
(
sigcontext
)
==
__wine_syscall_dispatcher
)
{
extern
void
__wine_syscall_dispatcher_prolog_end
(
void
)
DECLSPEC_HIDDEN
;
extern
void
__wine_syscall_dispatcher_prolog_end
(
void
);
RIP_sig
(
sigcontext
)
=
(
ULONG64
)
__wine_syscall_dispatcher_prolog_end
;
}
else
if
((
void
*
)
RIP_sig
(
sigcontext
)
==
__wine_unix_call_dispatcher
)
{
extern
void
__wine_unix_call_dispatcher_prolog_end
(
void
)
DECLSPEC_HIDDEN
;
extern
void
__wine_unix_call_dispatcher_prolog_end
(
void
);
RIP_sig
(
sigcontext
)
=
(
ULONG64
)
__wine_unix_call_dispatcher_prolog_end
;
R10_sig
(
sigcontext
)
=
RCX_sig
(
sigcontext
);
...
...
@@ -2434,7 +2434,7 @@ void signal_init_process(void)
/***********************************************************************
* call_init_thunk
*/
void
DECLSPEC_HIDDEN
call_init_thunk
(
LPTHREAD_START_ROUTINE
entry
,
void
*
arg
,
BOOL
suspend
,
TEB
*
teb
)
void
call_init_thunk
(
LPTHREAD_START_ROUTINE
entry
,
void
*
arg
,
BOOL
suspend
,
TEB
*
teb
)
{
struct
amd64_thread_data
*
thread_data
=
(
struct
amd64_thread_data
*
)
&
teb
->
GdiTebBatch
;
struct
syscall_frame
*
frame
=
thread_data
->
syscall_frame
;
...
...
dlls/ntdll/unix/system.c
View file @
59485f00
...
...
@@ -257,7 +257,7 @@ BOOL xstate_compaction_enabled = FALSE;
#define INEI 0x49656e69
/* "ineI" */
#define NTEL 0x6c65746e
/* "ntel" */
extern
void
do_cpuid
(
unsigned
int
ax
,
unsigned
int
cx
,
unsigned
int
*
p
)
DECLSPEC_HIDDEN
;
extern
void
do_cpuid
(
unsigned
int
ax
,
unsigned
int
cx
,
unsigned
int
*
p
);
#ifdef __i386__
__ASM_GLOBAL_FUNC
(
do_cpuid
,
"pushl %esi
\n\t
"
...
...
@@ -289,7 +289,7 @@ __ASM_GLOBAL_FUNC( do_cpuid,
#endif
#ifdef __i386__
extern
int
have_cpuid
(
void
)
DECLSPEC_HIDDEN
;
extern
int
have_cpuid
(
void
);
__ASM_GLOBAL_FUNC
(
have_cpuid
,
"pushfl
\n\t
"
"pushfl
\n\t
"
...
...
dlls/ntdll/unix/unix_private.h
View file @
59485f00
...
...
@@ -40,7 +40,7 @@ static const WORD current_machine = IMAGE_FILE_MACHINE_ARMNT;
#elif defined(__aarch64__)
static
const
WORD
current_machine
=
IMAGE_FILE_MACHINE_ARM64
;
#endif
extern
WORD
native_machine
DECLSPEC_HIDDEN
;
extern
WORD
native_machine
;
static
const
BOOL
is_win64
=
(
sizeof
(
void
*
)
>
sizeof
(
int
));
...
...
@@ -62,9 +62,9 @@ typedef PEB64 WOW_PEB;
static
inline
TEB64
*
NtCurrentTeb64
(
void
)
{
return
(
TEB64
*
)
NtCurrentTeb
()
->
GdiBatchCount
;
}
#endif
extern
WOW_PEB
*
wow_peb
DECLSPEC_HIDDEN
;
extern
ULONG_PTR
user_space_wow_limit
DECLSPEC_HIDDEN
;
extern
SECTION_IMAGE_INFORMATION
main_image_info
DECLSPEC_HIDDEN
;
extern
WOW_PEB
*
wow_peb
;
extern
ULONG_PTR
user_space_wow_limit
;
extern
SECTION_IMAGE_INFORMATION
main_image_info
;
static
inline
WOW_TEB
*
get_wow_teb
(
TEB
*
teb
)
{
...
...
@@ -132,213 +132,213 @@ static const LONG teb_offset = 0x2000;
#define FILE_USE_FILE_POINTER_POSITION ((LONGLONG)-2)
/* callbacks to PE ntdll from the Unix side */
extern
void
*
pDbgUiRemoteBreakin
DECLSPEC_HIDDEN
;
extern
void
*
pKiRaiseUserExceptionDispatcher
DECLSPEC_HIDDEN
;
extern
void
*
pKiUserExceptionDispatcher
DECLSPEC_HIDDEN
;
extern
void
*
pKiUserApcDispatcher
DECLSPEC_HIDDEN
;
extern
void
*
pKiUserCallbackDispatcher
DECLSPEC_HIDDEN
;
extern
void
*
pLdrInitializeThunk
DECLSPEC_HIDDEN
;
extern
void
*
pRtlUserThreadStart
DECLSPEC_HIDDEN
;
extern
void
*
p__wine_ctrl_routine
DECLSPEC_HIDDEN
;
extern
SYSTEM_DLL_INIT_BLOCK
*
pLdrSystemDllInitBlock
DECLSPEC_HIDDEN
;
extern
void
*
pDbgUiRemoteBreakin
;
extern
void
*
pKiRaiseUserExceptionDispatcher
;
extern
void
*
pKiUserExceptionDispatcher
;
extern
void
*
pKiUserApcDispatcher
;
extern
void
*
pKiUserCallbackDispatcher
;
extern
void
*
pLdrInitializeThunk
;
extern
void
*
pRtlUserThreadStart
;
extern
void
*
p__wine_ctrl_routine
;
extern
SYSTEM_DLL_INIT_BLOCK
*
pLdrSystemDllInitBlock
;
struct
_FILE_FS_DEVICE_INFORMATION
;
extern
const
char
wine_build
[]
DECLSPEC_HIDDEN
;
extern
const
char
*
home_dir
DECLSPEC_HIDDEN
;
extern
const
char
*
data_dir
DECLSPEC_HIDDEN
;
extern
const
char
*
build_dir
DECLSPEC_HIDDEN
;
extern
const
char
*
config_dir
DECLSPEC_HIDDEN
;
extern
const
char
*
user_name
DECLSPEC_HIDDEN
;
extern
const
char
**
dll_paths
DECLSPEC_HIDDEN
;
extern
const
char
**
system_dll_paths
DECLSPEC_HIDDEN
;
extern
pthread_key_t
teb_key
DECLSPEC_HIDDEN
;
extern
PEB
*
peb
DECLSPEC_HIDDEN
;
extern
USHORT
*
uctable
DECLSPEC_HIDDEN
;
extern
USHORT
*
lctable
DECLSPEC_HIDDEN
;
extern
SIZE_T
startup_info_size
DECLSPEC_HIDDEN
;
extern
BOOL
is_prefix_bootstrap
DECLSPEC_HIDDEN
;
extern
int
main_argc
DECLSPEC_HIDDEN
;
extern
char
**
main_argv
DECLSPEC_HIDDEN
;
extern
char
**
main_envp
DECLSPEC_HIDDEN
;
extern
WCHAR
**
main_wargv
DECLSPEC_HIDDEN
;
extern
const
WCHAR
system_dir
[]
DECLSPEC_HIDDEN
;
extern
unsigned
int
supported_machines_count
DECLSPEC_HIDDEN
;
extern
USHORT
supported_machines
[
8
]
DECLSPEC_HIDDEN
;
extern
BOOL
process_exiting
DECLSPEC_HIDDEN
;
extern
HANDLE
keyed_event
DECLSPEC_HIDDEN
;
extern
timeout_t
server_start_time
DECLSPEC_HIDDEN
;
extern
sigset_t
server_block_set
DECLSPEC_HIDDEN
;
extern
struct
_KUSER_SHARED_DATA
*
user_shared_data
DECLSPEC_HIDDEN
;
extern
SYSTEM_CPU_INFORMATION
cpu_info
DECLSPEC_HIDDEN
;
extern
const
char
wine_build
[];
extern
const
char
*
home_dir
;
extern
const
char
*
data_dir
;
extern
const
char
*
build_dir
;
extern
const
char
*
config_dir
;
extern
const
char
*
user_name
;
extern
const
char
**
dll_paths
;
extern
const
char
**
system_dll_paths
;
extern
pthread_key_t
teb_key
;
extern
PEB
*
peb
;
extern
USHORT
*
uctable
;
extern
USHORT
*
lctable
;
extern
SIZE_T
startup_info_size
;
extern
BOOL
is_prefix_bootstrap
;
extern
int
main_argc
;
extern
char
**
main_argv
;
extern
char
**
main_envp
;
extern
WCHAR
**
main_wargv
;
extern
const
WCHAR
system_dir
[];
extern
unsigned
int
supported_machines_count
;
extern
USHORT
supported_machines
[
8
];
extern
BOOL
process_exiting
;
extern
HANDLE
keyed_event
;
extern
timeout_t
server_start_time
;
extern
sigset_t
server_block_set
;
extern
struct
_KUSER_SHARED_DATA
*
user_shared_data
;
extern
SYSTEM_CPU_INFORMATION
cpu_info
;
#ifdef __i386__
extern
struct
ldt_copy
__wine_ldt_copy
DECLSPEC_HIDDEN
;
extern
struct
ldt_copy
__wine_ldt_copy
;
#endif
extern
void
init_environment
(
int
argc
,
char
*
argv
[],
char
*
envp
[]
)
DECLSPEC_HIDDEN
;
extern
void
init_startup_info
(
void
)
DECLSPEC_HIDDEN
;
extern
void
init_environment
(
int
argc
,
char
*
argv
[],
char
*
envp
[]
);
extern
void
init_startup_info
(
void
);
extern
void
*
create_startup_info
(
const
UNICODE_STRING
*
nt_image
,
const
RTL_USER_PROCESS_PARAMETERS
*
params
,
const
pe_image_info_t
*
pe_info
,
DWORD
*
info_size
)
DECLSPEC_HIDDEN
;
extern
char
**
build_envp
(
const
WCHAR
*
envW
)
DECLSPEC_HIDDEN
;
extern
char
*
get_alternate_wineloader
(
WORD
machine
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
exec_wineloader
(
char
**
argv
,
int
socketfd
,
const
pe_image_info_t
*
pe_info
)
DECLSPEC_HIDDEN
;
const
pe_image_info_t
*
pe_info
,
DWORD
*
info_size
);
extern
char
**
build_envp
(
const
WCHAR
*
envW
);
extern
char
*
get_alternate_wineloader
(
WORD
machine
);
extern
NTSTATUS
exec_wineloader
(
char
**
argv
,
int
socketfd
,
const
pe_image_info_t
*
pe_info
);
extern
NTSTATUS
load_builtin
(
const
pe_image_info_t
*
image_info
,
WCHAR
*
filename
,
USHORT
machine
,
void
**
addr_ptr
,
SIZE_T
*
size_ptr
,
ULONG_PTR
limit_low
,
ULONG_PTR
limit_high
)
DECLSPEC_HIDDEN
;
extern
BOOL
is_builtin_path
(
const
UNICODE_STRING
*
path
,
WORD
*
machine
)
DECLSPEC_HIDDEN
;
void
**
addr_ptr
,
SIZE_T
*
size_ptr
,
ULONG_PTR
limit_low
,
ULONG_PTR
limit_high
);
extern
BOOL
is_builtin_path
(
const
UNICODE_STRING
*
path
,
WORD
*
machine
);
extern
NTSTATUS
load_main_exe
(
const
WCHAR
*
name
,
const
char
*
unix_name
,
const
WCHAR
*
curdir
,
USHORT
load_machine
,
WCHAR
**
image
,
void
**
module
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
load_start_exe
(
WCHAR
**
image
,
void
**
module
)
DECLSPEC_HIDDEN
;
extern
void
start_server
(
BOOL
debug
)
DECLSPEC_HIDDEN
;
USHORT
load_machine
,
WCHAR
**
image
,
void
**
module
);
extern
NTSTATUS
load_start_exe
(
WCHAR
**
image
,
void
**
module
);
extern
void
start_server
(
BOOL
debug
);
extern
unsigned
int
server_call_unlocked
(
void
*
req_ptr
)
DECLSPEC_HIDDEN
;
extern
void
server_enter_uninterrupted_section
(
pthread_mutex_t
*
mutex
,
sigset_t
*
sigset
)
DECLSPEC_HIDDEN
;
extern
void
server_leave_uninterrupted_section
(
pthread_mutex_t
*
mutex
,
sigset_t
*
sigset
)
DECLSPEC_HIDDEN
;
extern
unsigned
int
server_call_unlocked
(
void
*
req_ptr
);
extern
void
server_enter_uninterrupted_section
(
pthread_mutex_t
*
mutex
,
sigset_t
*
sigset
);
extern
void
server_leave_uninterrupted_section
(
pthread_mutex_t
*
mutex
,
sigset_t
*
sigset
);
extern
unsigned
int
server_select
(
const
select_op_t
*
select_op
,
data_size_t
size
,
UINT
flags
,
timeout_t
abs_timeout
,
context_t
*
context
,
user_apc_t
*
user_apc
)
DECLSPEC_HIDDEN
;
timeout_t
abs_timeout
,
context_t
*
context
,
user_apc_t
*
user_apc
);
extern
unsigned
int
server_wait
(
const
select_op_t
*
select_op
,
data_size_t
size
,
UINT
flags
,
const
LARGE_INTEGER
*
timeout
)
DECLSPEC_HIDDEN
;
const
LARGE_INTEGER
*
timeout
);
extern
unsigned
int
server_queue_process_apc
(
HANDLE
process
,
const
apc_call_t
*
call
,
apc_result_t
*
result
)
DECLSPEC_HIDDEN
;
apc_result_t
*
result
);
extern
int
server_get_unix_fd
(
HANDLE
handle
,
unsigned
int
wanted_access
,
int
*
unix_fd
,
int
*
needs_close
,
enum
server_fd_type
*
type
,
unsigned
int
*
options
)
DECLSPEC_HIDDEN
;
extern
void
wine_server_send_fd
(
int
fd
)
DECLSPEC_HIDDEN
;
extern
void
process_exit_wrapper
(
int
status
)
DECLSPEC_HIDDEN
;
extern
size_t
server_init_process
(
void
)
DECLSPEC_HIDDEN
;
extern
void
server_init_process_done
(
void
)
DECLSPEC_HIDDEN
;
extern
void
server_init_thread
(
void
*
entry_point
,
BOOL
*
suspend
)
DECLSPEC_HIDDEN
;
extern
int
server_pipe
(
int
fd
[
2
]
)
DECLSPEC_HIDDEN
;
extern
void
fpux_to_fpu
(
I386_FLOATING_SAVE_AREA
*
fpu
,
const
XSAVE_FORMAT
*
fpux
)
DECLSPEC_HIDDEN
;
extern
void
fpu_to_fpux
(
XSAVE_FORMAT
*
fpux
,
const
I386_FLOATING_SAVE_AREA
*
fpu
)
DECLSPEC_HIDDEN
;
extern
void
*
get_cpu_area
(
USHORT
machine
)
DECLSPEC_HIDDEN
;
extern
void
set_thread_id
(
TEB
*
teb
,
DWORD
pid
,
DWORD
tid
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
init_thread_stack
(
TEB
*
teb
,
ULONG_PTR
limit
,
SIZE_T
reserve_size
,
SIZE_T
commit_size
)
DECLSPEC_HIDDEN
;
extern
void
DECLSPEC_NORETURN
abort_thread
(
int
status
)
DECLSPEC_HIDDEN
;
extern
void
DECLSPEC_NORETURN
abort_process
(
int
status
)
DECLSPEC_HIDDEN
;
extern
void
DECLSPEC_NORETURN
exit_process
(
int
status
)
DECLSPEC_HIDDEN
;
extern
void
wait_suspend
(
CONTEXT
*
context
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
send_debug_event
(
EXCEPTION_RECORD
*
rec
,
CONTEXT
*
context
,
BOOL
first_chance
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
set_thread_context
(
HANDLE
handle
,
const
void
*
context
,
BOOL
*
self
,
USHORT
machine
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
get_thread_context
(
HANDLE
handle
,
void
*
context
,
BOOL
*
self
,
USHORT
machine
)
DECLSPEC_HIDDEN
;
int
*
needs_close
,
enum
server_fd_type
*
type
,
unsigned
int
*
options
);
extern
void
wine_server_send_fd
(
int
fd
);
extern
void
process_exit_wrapper
(
int
status
);
extern
size_t
server_init_process
(
void
);
extern
void
server_init_process_done
(
void
);
extern
void
server_init_thread
(
void
*
entry_point
,
BOOL
*
suspend
);
extern
int
server_pipe
(
int
fd
[
2
]
);
extern
void
fpux_to_fpu
(
I386_FLOATING_SAVE_AREA
*
fpu
,
const
XSAVE_FORMAT
*
fpux
);
extern
void
fpu_to_fpux
(
XSAVE_FORMAT
*
fpux
,
const
I386_FLOATING_SAVE_AREA
*
fpu
);
extern
void
*
get_cpu_area
(
USHORT
machine
);
extern
void
set_thread_id
(
TEB
*
teb
,
DWORD
pid
,
DWORD
tid
);
extern
NTSTATUS
init_thread_stack
(
TEB
*
teb
,
ULONG_PTR
limit
,
SIZE_T
reserve_size
,
SIZE_T
commit_size
);
extern
void
DECLSPEC_NORETURN
abort_thread
(
int
status
);
extern
void
DECLSPEC_NORETURN
abort_process
(
int
status
);
extern
void
DECLSPEC_NORETURN
exit_process
(
int
status
);
extern
void
wait_suspend
(
CONTEXT
*
context
);
extern
NTSTATUS
send_debug_event
(
EXCEPTION_RECORD
*
rec
,
CONTEXT
*
context
,
BOOL
first_chance
);
extern
NTSTATUS
set_thread_context
(
HANDLE
handle
,
const
void
*
context
,
BOOL
*
self
,
USHORT
machine
);
extern
NTSTATUS
get_thread_context
(
HANDLE
handle
,
void
*
context
,
BOOL
*
self
,
USHORT
machine
);
extern
unsigned
int
alloc_object_attributes
(
const
OBJECT_ATTRIBUTES
*
attr
,
struct
object_attributes
**
ret
,
data_size_t
*
ret_len
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
system_time_precise
(
void
*
args
)
DECLSPEC_HIDDEN
;
extern
void
*
anon_mmap_fixed
(
void
*
start
,
size_t
size
,
int
prot
,
int
flags
)
DECLSPEC_HIDDEN
;
extern
void
*
anon_mmap_alloc
(
size_t
size
,
int
prot
)
DECLSPEC_HIDDEN
;
extern
void
virtual_init
(
void
)
DECLSPEC_HIDDEN
;
extern
ULONG_PTR
get_system_affinity_mask
(
void
)
DECLSPEC_HIDDEN
;
extern
void
virtual_get_system_info
(
SYSTEM_BASIC_INFORMATION
*
info
,
BOOL
wow64
)
DECLSPEC_HIDDEN
;
data_size_t
*
ret_len
);
extern
NTSTATUS
system_time_precise
(
void
*
args
);
extern
void
*
anon_mmap_fixed
(
void
*
start
,
size_t
size
,
int
prot
,
int
flags
);
extern
void
*
anon_mmap_alloc
(
size_t
size
,
int
prot
);
extern
void
virtual_init
(
void
);
extern
ULONG_PTR
get_system_affinity_mask
(
void
);
extern
void
virtual_get_system_info
(
SYSTEM_BASIC_INFORMATION
*
info
,
BOOL
wow64
);
extern
NTSTATUS
virtual_map_builtin_module
(
HANDLE
mapping
,
void
**
module
,
SIZE_T
*
size
,
SECTION_IMAGE_INFORMATION
*
info
,
ULONG_PTR
limit_low
,
ULONG_PTR
limit_high
,
WORD
machine
,
BOOL
prefer_native
)
DECLSPEC_HIDDEN
;
ULONG_PTR
limit_high
,
WORD
machine
,
BOOL
prefer_native
);
extern
NTSTATUS
virtual_map_module
(
HANDLE
mapping
,
void
**
module
,
SIZE_T
*
size
,
SECTION_IMAGE_INFORMATION
*
info
,
ULONG_PTR
limit_low
,
ULONG_PTR
limit_high
,
USHORT
machine
)
DECLSPEC_HIDDEN
;
ULONG_PTR
limit_high
,
USHORT
machine
);
extern
NTSTATUS
virtual_create_builtin_view
(
void
*
module
,
const
UNICODE_STRING
*
nt_name
,
pe_image_info_t
*
info
,
void
*
so_handle
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
virtual_relocate_module
(
void
*
module
)
DECLSPEC_HIDDEN
;
extern
TEB
*
virtual_alloc_first_teb
(
void
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
virtual_alloc_teb
(
TEB
**
ret_teb
)
DECLSPEC_HIDDEN
;
extern
void
virtual_free_teb
(
TEB
*
teb
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
virtual_clear_tls_index
(
ULONG
index
)
DECLSPEC_HIDDEN
;
pe_image_info_t
*
info
,
void
*
so_handle
);
extern
NTSTATUS
virtual_relocate_module
(
void
*
module
);
extern
TEB
*
virtual_alloc_first_teb
(
void
);
extern
NTSTATUS
virtual_alloc_teb
(
TEB
**
ret_teb
);
extern
void
virtual_free_teb
(
TEB
*
teb
);
extern
NTSTATUS
virtual_clear_tls_index
(
ULONG
index
);
extern
NTSTATUS
virtual_alloc_thread_stack
(
INITIAL_TEB
*
stack
,
ULONG_PTR
limit_low
,
ULONG_PTR
limit_high
,
SIZE_T
reserve_size
,
SIZE_T
commit_size
,
BOOL
guard_page
)
DECLSPEC_HIDDEN
;
extern
void
virtual_map_user_shared_data
(
void
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
virtual_handle_fault
(
void
*
addr
,
DWORD
err
,
void
*
stack
)
DECLSPEC_HIDDEN
;
extern
unsigned
int
virtual_locked_server_call
(
void
*
req_ptr
)
DECLSPEC_HIDDEN
;
extern
ssize_t
virtual_locked_read
(
int
fd
,
void
*
addr
,
size_t
size
)
DECLSPEC_HIDDEN
;
extern
ssize_t
virtual_locked_pread
(
int
fd
,
void
*
addr
,
size_t
size
,
off_t
offset
)
DECLSPEC_HIDDEN
;
extern
ssize_t
virtual_locked_recvmsg
(
int
fd
,
struct
msghdr
*
hdr
,
int
flags
)
DECLSPEC_HIDDEN
;
extern
BOOL
virtual_is_valid_code_address
(
const
void
*
addr
,
SIZE_T
size
)
DECLSPEC_HIDDEN
;
extern
void
*
virtual_setup_exception
(
void
*
stack_ptr
,
size_t
size
,
EXCEPTION_RECORD
*
rec
)
DECLSPEC_HIDDEN
;
extern
BOOL
virtual_check_buffer_for_read
(
const
void
*
ptr
,
SIZE_T
size
)
DECLSPEC_HIDDEN
;
extern
BOOL
virtual_check_buffer_for_write
(
void
*
ptr
,
SIZE_T
size
)
DECLSPEC_HIDDEN
;
extern
SIZE_T
virtual_uninterrupted_read_memory
(
const
void
*
addr
,
void
*
buffer
,
SIZE_T
size
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
virtual_uninterrupted_write_memory
(
void
*
addr
,
const
void
*
buffer
,
SIZE_T
size
)
DECLSPEC_HIDDEN
;
extern
void
virtual_set_force_exec
(
BOOL
enable
)
DECLSPEC_HIDDEN
;
extern
void
virtual_set_large_address_space
(
void
)
DECLSPEC_HIDDEN
;
SIZE_T
reserve_size
,
SIZE_T
commit_size
,
BOOL
guard_page
);
extern
void
virtual_map_user_shared_data
(
void
);
extern
NTSTATUS
virtual_handle_fault
(
void
*
addr
,
DWORD
err
,
void
*
stack
);
extern
unsigned
int
virtual_locked_server_call
(
void
*
req_ptr
);
extern
ssize_t
virtual_locked_read
(
int
fd
,
void
*
addr
,
size_t
size
);
extern
ssize_t
virtual_locked_pread
(
int
fd
,
void
*
addr
,
size_t
size
,
off_t
offset
);
extern
ssize_t
virtual_locked_recvmsg
(
int
fd
,
struct
msghdr
*
hdr
,
int
flags
);
extern
BOOL
virtual_is_valid_code_address
(
const
void
*
addr
,
SIZE_T
size
);
extern
void
*
virtual_setup_exception
(
void
*
stack_ptr
,
size_t
size
,
EXCEPTION_RECORD
*
rec
);
extern
BOOL
virtual_check_buffer_for_read
(
const
void
*
ptr
,
SIZE_T
size
);
extern
BOOL
virtual_check_buffer_for_write
(
void
*
ptr
,
SIZE_T
size
);
extern
SIZE_T
virtual_uninterrupted_read_memory
(
const
void
*
addr
,
void
*
buffer
,
SIZE_T
size
);
extern
NTSTATUS
virtual_uninterrupted_write_memory
(
void
*
addr
,
const
void
*
buffer
,
SIZE_T
size
);
extern
void
virtual_set_force_exec
(
BOOL
enable
);
extern
void
virtual_set_large_address_space
(
void
);
extern
void
virtual_fill_image_information
(
const
pe_image_info_t
*
pe_info
,
SECTION_IMAGE_INFORMATION
*
info
)
DECLSPEC_HIDDEN
;
extern
void
*
get_builtin_so_handle
(
void
*
module
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
load_builtin_unixlib
(
void
*
module
,
const
char
*
name
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
unwind_builtin_dll
(
void
*
args
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
get_thread_ldt_entry
(
HANDLE
handle
,
void
*
data
,
ULONG
len
,
ULONG
*
ret_len
)
DECLSPEC_HIDDEN
;
extern
void
*
get_native_context
(
CONTEXT
*
context
)
DECLSPEC_HIDDEN
;
extern
void
*
get_wow_context
(
CONTEXT
*
context
)
DECLSPEC_HIDDEN
;
SECTION_IMAGE_INFORMATION
*
info
);
extern
void
*
get_builtin_so_handle
(
void
*
module
);
extern
NTSTATUS
load_builtin_unixlib
(
void
*
module
,
const
char
*
name
);
extern
NTSTATUS
unwind_builtin_dll
(
void
*
args
);
extern
NTSTATUS
get_thread_ldt_entry
(
HANDLE
handle
,
void
*
data
,
ULONG
len
,
ULONG
*
ret_len
);
extern
void
*
get_native_context
(
CONTEXT
*
context
);
extern
void
*
get_wow_context
(
CONTEXT
*
context
);
extern
BOOL
get_thread_times
(
int
unix_pid
,
int
unix_tid
,
LARGE_INTEGER
*
kernel_time
,
LARGE_INTEGER
*
user_time
)
DECLSPEC_HIDDEN
;
extern
void
signal_init_threading
(
void
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
signal_alloc_thread
(
TEB
*
teb
)
DECLSPEC_HIDDEN
;
extern
void
signal_free_thread
(
TEB
*
teb
)
DECLSPEC_HIDDEN
;
extern
void
signal_init_process
(
void
)
DECLSPEC_HIDDEN
;
LARGE_INTEGER
*
user_time
);
extern
void
signal_init_threading
(
void
);
extern
NTSTATUS
signal_alloc_thread
(
TEB
*
teb
);
extern
void
signal_free_thread
(
TEB
*
teb
);
extern
void
signal_init_process
(
void
);
extern
void
DECLSPEC_NORETURN
signal_start_thread
(
PRTL_THREAD_START_ROUTINE
entry
,
void
*
arg
,
BOOL
suspend
,
TEB
*
teb
)
DECLSPEC_HIDDEN
;
extern
void
DECLSPEC_NORETURN
signal_exit_thread
(
int
status
,
void
(
*
func
)(
int
),
TEB
*
teb
)
DECLSPEC_HIDDEN
;
extern
SYSTEM_SERVICE_TABLE
KeServiceDescriptorTable
[
4
]
DECLSPEC_HIDDEN
;
extern
void
__wine_syscall_dispatcher
(
void
)
DECLSPEC_HIDDEN
;
extern
void
DECLSPEC_NORETURN
__wine_syscall_dispatcher_return
(
void
*
frame
,
ULONG_PTR
retval
)
DECLSPEC_HIDDEN
;
extern
void
__wine_unix_call_dispatcher
(
void
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
signal_set_full_context
(
CONTEXT
*
context
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
get_thread_wow64_context
(
HANDLE
handle
,
void
*
ctx
,
ULONG
size
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
set_thread_wow64_context
(
HANDLE
handle
,
const
void
*
ctx
,
ULONG
size
)
DECLSPEC_HIDDEN
;
extern
void
fill_vm_counters
(
VM_COUNTERS_EX
*
pvmi
,
int
unix_pid
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
open_hkcu_key
(
const
char
*
path
,
HANDLE
*
key
)
DECLSPEC_HIDDEN
;
BOOL
suspend
,
TEB
*
teb
);
extern
void
DECLSPEC_NORETURN
signal_exit_thread
(
int
status
,
void
(
*
func
)(
int
),
TEB
*
teb
);
extern
SYSTEM_SERVICE_TABLE
KeServiceDescriptorTable
[
4
];
extern
void
__wine_syscall_dispatcher
(
void
);
extern
void
DECLSPEC_NORETURN
__wine_syscall_dispatcher_return
(
void
*
frame
,
ULONG_PTR
retval
);
extern
void
__wine_unix_call_dispatcher
(
void
);
extern
NTSTATUS
signal_set_full_context
(
CONTEXT
*
context
);
extern
NTSTATUS
get_thread_wow64_context
(
HANDLE
handle
,
void
*
ctx
,
ULONG
size
);
extern
NTSTATUS
set_thread_wow64_context
(
HANDLE
handle
,
const
void
*
ctx
,
ULONG
size
);
extern
void
fill_vm_counters
(
VM_COUNTERS_EX
*
pvmi
,
int
unix_pid
);
extern
NTSTATUS
open_hkcu_key
(
const
char
*
path
,
HANDLE
*
key
);
extern
NTSTATUS
cdrom_DeviceIoControl
(
HANDLE
device
,
HANDLE
event
,
PIO_APC_ROUTINE
apc
,
void
*
apc_user
,
IO_STATUS_BLOCK
*
io
,
UINT
code
,
void
*
in_buffer
,
UINT
in_size
,
void
*
out_buffer
,
UINT
out_size
)
DECLSPEC_HIDDEN
;
UINT
in_size
,
void
*
out_buffer
,
UINT
out_size
);
extern
NTSTATUS
serial_DeviceIoControl
(
HANDLE
device
,
HANDLE
event
,
PIO_APC_ROUTINE
apc
,
void
*
apc_user
,
IO_STATUS_BLOCK
*
io
,
UINT
code
,
void
*
in_buffer
,
UINT
in_size
,
void
*
out_buffer
,
UINT
out_size
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
serial_FlushBuffersFile
(
int
fd
)
DECLSPEC_HIDDEN
;
UINT
in_size
,
void
*
out_buffer
,
UINT
out_size
);
extern
NTSTATUS
serial_FlushBuffersFile
(
int
fd
);
extern
NTSTATUS
sock_ioctl
(
HANDLE
handle
,
HANDLE
event
,
PIO_APC_ROUTINE
apc
,
void
*
apc_user
,
IO_STATUS_BLOCK
*
io
,
UINT
code
,
void
*
in_buffer
,
UINT
in_size
,
void
*
out_buffer
,
UINT
out_size
)
DECLSPEC_HIDDEN
;
UINT
code
,
void
*
in_buffer
,
UINT
in_size
,
void
*
out_buffer
,
UINT
out_size
);
extern
NTSTATUS
sock_read
(
HANDLE
handle
,
int
fd
,
HANDLE
event
,
PIO_APC_ROUTINE
apc
,
void
*
apc_user
,
IO_STATUS_BLOCK
*
io
,
void
*
buffer
,
ULONG
length
)
DECLSPEC_HIDDEN
;
IO_STATUS_BLOCK
*
io
,
void
*
buffer
,
ULONG
length
);
extern
NTSTATUS
sock_write
(
HANDLE
handle
,
int
fd
,
HANDLE
event
,
PIO_APC_ROUTINE
apc
,
void
*
apc_user
,
IO_STATUS_BLOCK
*
io
,
const
void
*
buffer
,
ULONG
length
)
DECLSPEC_HIDDEN
;
IO_STATUS_BLOCK
*
io
,
const
void
*
buffer
,
ULONG
length
);
extern
NTSTATUS
tape_DeviceIoControl
(
HANDLE
device
,
HANDLE
event
,
PIO_APC_ROUTINE
apc
,
void
*
apc_user
,
IO_STATUS_BLOCK
*
io
,
UINT
code
,
void
*
in_buffer
,
UINT
in_size
,
void
*
out_buffer
,
UINT
out_size
)
DECLSPEC_HIDDEN
;
extern
struct
async_fileio
*
alloc_fileio
(
DWORD
size
,
async_callback_t
callback
,
HANDLE
handle
)
DECLSPEC_HIDDEN
;
extern
void
release_fileio
(
struct
async_fileio
*
io
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
errno_to_status
(
int
err
)
DECLSPEC_HIDDEN
;
extern
BOOL
get_redirect
(
OBJECT_ATTRIBUTES
*
attr
,
UNICODE_STRING
*
redir
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
nt_to_unix_file_name
(
const
OBJECT_ATTRIBUTES
*
attr
,
char
**
name_ret
,
UINT
disposition
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
unix_to_nt_file_name
(
const
char
*
name
,
WCHAR
**
nt
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
get_full_path
(
const
WCHAR
*
name
,
const
WCHAR
*
curdir
,
WCHAR
**
path
)
DECLSPEC_HIDDEN
;
UINT
in_size
,
void
*
out_buffer
,
UINT
out_size
);
extern
struct
async_fileio
*
alloc_fileio
(
DWORD
size
,
async_callback_t
callback
,
HANDLE
handle
);
extern
void
release_fileio
(
struct
async_fileio
*
io
);
extern
NTSTATUS
errno_to_status
(
int
err
);
extern
BOOL
get_redirect
(
OBJECT_ATTRIBUTES
*
attr
,
UNICODE_STRING
*
redir
);
extern
NTSTATUS
nt_to_unix_file_name
(
const
OBJECT_ATTRIBUTES
*
attr
,
char
**
name_ret
,
UINT
disposition
);
extern
NTSTATUS
unix_to_nt_file_name
(
const
char
*
name
,
WCHAR
**
nt
);
extern
NTSTATUS
get_full_path
(
const
WCHAR
*
name
,
const
WCHAR
*
curdir
,
WCHAR
**
path
);
extern
NTSTATUS
open_unix_file
(
HANDLE
*
handle
,
const
char
*
unix_name
,
ACCESS_MASK
access
,
OBJECT_ATTRIBUTES
*
attr
,
ULONG
attributes
,
ULONG
sharing
,
ULONG
disposition
,
ULONG
options
,
void
*
ea_buffer
,
ULONG
ea_length
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
get_device_info
(
int
fd
,
struct
_FILE_FS_DEVICE_INFORMATION
*
info
)
DECLSPEC_HIDDEN
;
extern
void
init_files
(
void
)
DECLSPEC_HIDDEN
;
extern
void
init_cpu_info
(
void
)
DECLSPEC_HIDDEN
;
extern
void
add_completion
(
HANDLE
handle
,
ULONG_PTR
value
,
NTSTATUS
status
,
ULONG
info
,
BOOL
async
)
DECLSPEC_HIDDEN
;
extern
void
set_async_direct_result
(
HANDLE
*
async_handle
,
NTSTATUS
status
,
ULONG_PTR
information
,
BOOL
mark_pending
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
unixcall_wine_dbg_write
(
void
*
args
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
unixcall_wine_server_call
(
void
*
args
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
unixcall_wine_server_fd_to_handle
(
void
*
args
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
unixcall_wine_server_handle_to_fd
(
void
*
args
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
unixcall_wine_spawnvp
(
void
*
args
)
DECLSPEC_HIDDEN
;
ULONG
options
,
void
*
ea_buffer
,
ULONG
ea_length
);
extern
NTSTATUS
get_device_info
(
int
fd
,
struct
_FILE_FS_DEVICE_INFORMATION
*
info
);
extern
void
init_files
(
void
);
extern
void
init_cpu_info
(
void
);
extern
void
add_completion
(
HANDLE
handle
,
ULONG_PTR
value
,
NTSTATUS
status
,
ULONG
info
,
BOOL
async
);
extern
void
set_async_direct_result
(
HANDLE
*
async_handle
,
NTSTATUS
status
,
ULONG_PTR
information
,
BOOL
mark_pending
);
extern
NTSTATUS
unixcall_wine_dbg_write
(
void
*
args
);
extern
NTSTATUS
unixcall_wine_server_call
(
void
*
args
);
extern
NTSTATUS
unixcall_wine_server_fd_to_handle
(
void
*
args
);
extern
NTSTATUS
unixcall_wine_server_handle_to_fd
(
void
*
args
);
extern
NTSTATUS
unixcall_wine_spawnvp
(
void
*
args
);
#ifdef _WIN64
extern
NTSTATUS
wow64_wine_dbg_write
(
void
*
args
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
wow64_wine_server_call
(
void
*
args
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
wow64_wine_server_fd_to_handle
(
void
*
args
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
wow64_wine_server_handle_to_fd
(
void
*
args
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
wow64_wine_spawnvp
(
void
*
args
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
wow64_wine_dbg_write
(
void
*
args
);
extern
NTSTATUS
wow64_wine_server_call
(
void
*
args
);
extern
NTSTATUS
wow64_wine_server_fd_to_handle
(
void
*
args
);
extern
NTSTATUS
wow64_wine_server_handle_to_fd
(
void
*
args
);
extern
NTSTATUS
wow64_wine_spawnvp
(
void
*
args
);
#endif
extern
void
dbg_init
(
void
)
DECLSPEC_HIDDEN
;
extern
void
dbg_init
(
void
);
extern
NTSTATUS
call_user_apc_dispatcher
(
CONTEXT
*
context_ptr
,
ULONG_PTR
arg1
,
ULONG_PTR
arg2
,
ULONG_PTR
arg3
,
PNTAPCFUNC
func
,
NTSTATUS
status
)
DECLSPEC_HIDDEN
;
extern
NTSTATUS
call_user_exception_dispatcher
(
EXCEPTION_RECORD
*
rec
,
CONTEXT
*
context
)
DECLSPEC_HIDDEN
;
extern
void
call_raise_user_exception_dispatcher
(
void
)
DECLSPEC_HIDDEN
;
PNTAPCFUNC
func
,
NTSTATUS
status
);
extern
NTSTATUS
call_user_exception_dispatcher
(
EXCEPTION_RECORD
*
rec
,
CONTEXT
*
context
);
extern
void
call_raise_user_exception_dispatcher
(
void
);
#define IMAGE_DLLCHARACTERISTICS_PREFER_NATIVE 0x0010
/* Wine extension */
...
...
@@ -489,8 +489,8 @@ enum loadorder
LO_DEFAULT
/* nothing specified, use default strategy */
};
extern
void
set_load_order_app_name
(
const
WCHAR
*
app_name
)
DECLSPEC_HIDDEN
;
extern
enum
loadorder
get_load_order
(
const
UNICODE_STRING
*
nt_name
)
DECLSPEC_HIDDEN
;
extern
void
set_load_order_app_name
(
const
WCHAR
*
app_name
);
extern
enum
loadorder
get_load_order
(
const
UNICODE_STRING
*
nt_name
);
static
inline
WCHAR
ntdll_towupper
(
WCHAR
ch
)
{
...
...
dlls/ntdll/unixlib.h
View file @
59485f00
...
...
@@ -78,6 +78,6 @@ enum ntdll_unix_funcs
unix_system_time_precise
,
};
extern
unixlib_handle_t
__wine_unixlib_handle
DECLSPEC_HIDDEN
;
extern
unixlib_handle_t
__wine_unixlib_handle
;
#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