Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
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-cw
Commits
63388ece
Commit
63388ece
authored
Nov 21, 2020
by
Vitaly Lipatov
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
commit 20.0.1 upon wine-5.0
parent
4d11c3eb
Hide whitespace changes
Inline
Side-by-side
Showing
30 changed files
with
189 additions
and
72 deletions
+189
-72
configure
configure
+1
-1
configure.ac
configure.ac
+1
-1
crypt32_private.h
dlls/crypt32/crypt32_private.h
+1
-1
dbghelp.spec
dlls/dbghelp/dbghelp.spec
+3
-3
elf_module.c
dlls/dbghelp/elf_module.c
+2
-3
macho_module.c
dlls/dbghelp/macho_module.c
+3
-4
gphoto2_i.h
dlls/gphoto2.ds/gphoto2_i.h
+3
-1
gphoto2_main.c
dlls/gphoto2.ds/gphoto2_main.c
+2
-0
function.c
dlls/jscript/function.c
+1
-1
module.c
dlls/kernel32/module.c
+13
-13
toolhelp.c
dlls/kernel32/toolhelp.c
+2
-2
diskarb.c
dlls/mountmgr.sys/diskarb.c
+3
-1
dispex.c
dlls/mshtml/dispex.c
+4
-0
ntdll.spec
dlls/ntdll/ntdll.spec
+1
-1
signal_x86_64.c
dlls/ntdll/signal_x86_64.c
+54
-22
thread.c
dlls/ntdll/thread.c
+1
-1
sane_i.h
dlls/sane.ds/sane_i.h
+4
-2
sane_main.c
dlls/sane.ds/sane_main.c
+19
-0
secur32_priv.h
dlls/secur32/secur32_priv.h
+2
-2
converter.c
dlls/windowscodecs/converter.c
+9
-0
bus.h
dlls/winebus.sys/bus.h
+2
-2
bus_xbox360.c
dlls/winebus.sys/bus_xbox360.c
+3
-4
Makefile.in
dlls/winecoreaudio.drv/Makefile.in
+2
-0
coremidi.h
dlls/winecoreaudio.drv/coremidi.h
+4
-0
glsl_shader.c
dlls/wined3d/glsl_shader.c
+5
-2
shader.c
dlls/wined3d/shader.c
+4
-0
display.c
dlls/winemac.drv/display.c
+2
-2
window.c
dlls/winemac.drv/window.c
+2
-2
winternl.h
include/winternl.h
+20
-1
preloader_mac.c
loader/preloader_mac.c
+16
-0
No files found.
configure
View file @
63388ece
...
...
@@ -8765,7 +8765,7 @@ ac_compiler_gnu=$ac_cv_c_compiler_gnu
if
xcodebuild
-version
| egrep
-qs
'Xcode 9(\D|$)'
;
then
preloader_needs_mmacosx_version_min
=
yes
fi
WINEPRELOADER_LDFLAGS
=
"-nostartfiles -nodefaultlibs -e _start -ldylib1.o -Wl,-image_base,0x7c400000,-pagezero_size,0x1000,-sectcreate,__TEXT,__info_plist,wine_info.plist"
WINEPRELOADER_LDFLAGS
=
"-nostartfiles -nodefaultlibs -e _start -ldylib1.o -Wl,-image_base,0x7c400000,-pagezero_size,0x1000,-sectcreate,__TEXT,__info_plist,wine_info.plist
,-segaddr,WINE_4GB_RESERVE,0x100000000
"
{
$as_echo
"
$as_me
:
${
as_lineno
-
$LINENO
}
: checking whether the compiler supports -Wl,-no_new_main -e _main"
>
&5
$as_echo_n
"checking whether the compiler supports -Wl,-no_new_main -e _main... "
>
&6
;
}
if
${
ac_cv_cflags__Wl__no_new_main__e__main
+
:
}
false
;
then
:
...
...
configure.ac
View file @
63388ece
...
...
@@ -805,7 +805,7 @@ case $host_os in
if xcodebuild -version | egrep -qs 'Xcode 9(\D|$)' ; then
preloader_needs_mmacosx_version_min=yes
fi
WINEPRELOADER_LDFLAGS="-nostartfiles -nodefaultlibs -e _start -ldylib1.o -Wl,-image_base,0x7c400000,-pagezero_size,0x1000,-sectcreate,__TEXT,__info_plist,wine_info.plist"
WINEPRELOADER_LDFLAGS="-nostartfiles -nodefaultlibs -e _start -ldylib1.o -Wl,-image_base,0x7c400000,-pagezero_size,0x1000,-sectcreate,__TEXT,__info_plist,wine_info.plist
,-segaddr,WINE_4GB_RESERVE,0x100000000
"
WINE_TRY_CFLAGS([-Wl,-no_new_main -e _main],
[WINEPRELOADER_LDFLAGS="-Wl,-no_new_main $WINEPRELOADER_LDFLAGS"
WINE_TRY_CFLAGS([-Wl,-no_new_main -e _main -nostartfiles -nodefaultlibs],,
...
...
dlls/crypt32/crypt32_private.h
View file @
63388ece
...
...
@@ -152,7 +152,7 @@ BOOL WINAPI CRYPT_AsnEncodePubKeyInfoNoNull(DWORD dwCertEncodingType,
*/
HCRYPTPROV
WINAPI
I_CryptGetDefaultCryptProv
(
ALG_ID
);
HINSTANCE
hInstance
DECLSPEC_HIDDEN
;
extern
HINSTANCE
hInstance
DECLSPEC_HIDDEN
;
void
crypt_oid_init
(
void
)
DECLSPEC_HIDDEN
;
void
crypt_oid_free
(
void
)
DECLSPEC_HIDDEN
;
...
...
dlls/dbghelp/dbghelp.spec
View file @
63388ece
...
...
@@ -19,9 +19,9 @@
@ stdcall GetTimestampForLoadedLibrary(long)
@ stdcall ImageDirectoryEntryToData(ptr long long ptr)
@ stdcall ImageDirectoryEntryToDataEx(ptr long long ptr ptr)
@ stdcall
ImageNtHeader(ptr) ntdll.
RtlImageNtHeader
@ stdcall
ImageRvaToSection(ptr ptr long) ntdll.
RtlImageRvaToSection
@ stdcall
ImageRvaToVa(ptr ptr long ptr) ntdll.
RtlImageRvaToVa
@ stdcall
-import ImageNtHeader(ptr)
RtlImageNtHeader
@ stdcall
-import ImageRvaToSection(ptr ptr long)
RtlImageRvaToSection
@ stdcall
-import ImageRvaToVa(ptr ptr long ptr)
RtlImageRvaToVa
@ stdcall ImagehlpApiVersion()
@ stdcall ImagehlpApiVersionEx(ptr)
@ stdcall MakeSureDirectoryPathExists(str)
...
...
dlls/dbghelp/elf_module.c
View file @
63388ece
...
...
@@ -1773,10 +1773,9 @@ static BOOL elf_search_loader(struct process* pcs, struct elf_info* elf_info)
if
(
!
pcs
->
is_64bit
)
{
PEB32
*
peb32
=
(
PEB32
*
)
pbi
.
PebBaseAddress
;
DWORD
base32
;
if
(
!
ReadProcessMemory
(
pcs
->
handle
,
&
peb32
->
Reserved
[
0
]
,
&
base32
,
if
(
!
ReadProcessMemory
(
pcs
->
handle
,
(
char
*
)
pbi
.
PebBaseAddress
+
0x460
/* CloudFileFlags */
,
&
base32
,
sizeof
(
base32
),
NULL
))
return
FALSE
;
...
...
@@ -1784,7 +1783,7 @@ static BOOL elf_search_loader(struct process* pcs, struct elf_info* elf_info)
}
else
{
if
(
!
ReadProcessMemory
(
pcs
->
handle
,
&
pbi
.
PebBaseAddress
->
Reserved
[
0
]
,
if
(
!
ReadProcessMemory
(
pcs
->
handle
,
&
pbi
.
PebBaseAddress
->
CloudFileFlags
,
&
base
,
sizeof
(
base
),
NULL
))
return
FALSE
;
}
...
...
dlls/dbghelp/macho_module.c
View file @
63388ece
...
...
@@ -1384,19 +1384,18 @@ static ULONG_HOSTPTR get_dyld_image_info_address(struct process* pcs)
{
/* Read dyld image info address from PEB */
if
(
pcs
->
is_64bit
)
ret
=
ReadProcessMemory
(
pcs
->
handle
,
&
pbi
.
PebBaseAddress
->
Reserved
[
0
]
,
ret
=
ReadProcessMemory
(
pcs
->
handle
,
&
pbi
.
PebBaseAddress
->
CloudFileFlags
,
&
dyld_image_info_address
,
sizeof
(
dyld_image_info_address
),
NULL
);
else
if
(
pcs
->
is_32on64
)
{
PEB32
*
peb32
=
(
PEB32
*
)
pbi
.
PebBaseAddress
;
ret
=
ReadProcessMemory
(
pcs
->
handle
,
&
peb32
->
Reserved
[
0
],
&
dyld_image_info_address
,
ret
=
ReadProcessMemory
(
pcs
->
handle
,
(
char
*
)
pbi
.
PebBaseAddress
+
0x460
/* CloudFileFlags */
,
&
dyld_image_info_address
,
sizeof
(
dyld_image_info_address
),
NULL
);
}
else
{
PEB32
*
peb32
=
(
PEB32
*
)
pbi
.
PebBaseAddress
;
ULONG
addr32
;
ret
=
ReadProcessMemory
(
pcs
->
handle
,
&
peb32
->
Reserved
[
0
]
,
&
addr32
,
ret
=
ReadProcessMemory
(
pcs
->
handle
,
(
char
*
)
pbi
.
PebBaseAddress
+
0x460
/* CloudFileFlags */
,
&
addr32
,
sizeof
(
addr32
),
NULL
);
dyld_image_info_address
=
addr32
;
}
...
...
dlls/gphoto2.ds/gphoto2_i.h
View file @
63388ece
...
...
@@ -100,7 +100,9 @@ struct tagActiveDS
struct
jpeg_decompress_struct
jd
;
struct
jpeg_error_mgr
jerr
;
#endif
}
activeDS
DECLSPEC_HIDDEN
;
};
extern
struct
tagActiveDS
activeDS
DECLSPEC_HIDDEN
;
/* Helper functions */
extern
TW_UINT16
GPHOTO2_SaneCapability
(
pTW_CAPABILITY
pCapability
,
TW_UINT16
action
)
DECLSPEC_HIDDEN
;
...
...
dlls/gphoto2.ds/gphoto2_main.c
View file @
63388ece
...
...
@@ -35,6 +35,8 @@ WINE_DEFAULT_DEBUG_CHANNEL(twain);
DSMENTRYPROC
GPHOTO2_dsmentry
;
struct
tagActiveDS
activeDS
;
#ifdef HAVE_GPHOTO2
static
char
*
GPHOTO2_StrDup
(
const
char
*
str
)
{
...
...
dlls/jscript/function.c
View file @
63388ece
...
...
@@ -843,7 +843,7 @@ static HRESULT BindFunction_call(script_ctx_t *ctx, FunctionInstance *func, IDis
call_argc
=
function
->
argc
+
argc
;
if
(
call_argc
)
{
call_args
=
heap_alloc
(
function
->
argc
*
sizeof
(
*
function
->
args
));
call_args
=
heap_alloc
(
call_argc
*
sizeof
(
*
call_
args
));
if
(
!
call_args
)
return
E_OUTOFMEMORY
;
...
...
dlls/kernel32/module.c
View file @
63388ece
...
...
@@ -287,7 +287,7 @@ BOOL WINAPI GetBinaryTypeA( LPCSTR lpApplicationName, LPDWORD lpBinaryType )
* Success: A pointer to the symbol in the process address space.
* Failure: NULL. Use GetLastError() to determine the cause.
*/
FARPROC
get_proc_address
(
HMODULE
hModule
,
LPCSTR
function
)
FARPROC
WINAPI
get_proc_address
(
HMODULE
hModule
,
LPCSTR
function
)
{
FARPROC
fp
;
...
...
@@ -317,7 +317,7 @@ FARPROC get_proc_address( HMODULE hModule, LPCSTR function )
* these registers if the function takes floating point parameters.
* This wrapper saves xmm0 - 3 to the stack.
*/
extern
FARPROC
get_proc_address_wrapper
(
HMODULE
module
,
LPCSTR
function
);
extern
FARPROC
WINAPI
get_proc_address_wrapper
(
HMODULE
module
,
LPCSTR
function
);
__ASM_GLOBAL_FUNC
(
get_proc_address_wrapper
,
"pushq %rbp
\n\t
"
...
...
@@ -327,18 +327,18 @@ __ASM_GLOBAL_FUNC( get_proc_address_wrapper,
"movq %rsp,%rbp
\n\t
"
__ASM_SEH
(
".seh_setframe %rbp,0
\n\t
"
)
__ASM_CFI
(
".cfi_def_cfa_register %rbp
\n\t
"
)
"subq $0x40,%rsp
\n\t
"
__ASM_SEH
(
".seh_stackalloc 0x40
\n\t
"
)
__ASM_SEH
(
".seh_endprologue
\n\t
"
)
"movaps %xmm0,-0x10(%rbp)
\n\t
"
"movaps %xmm1,-0x20(%rbp)
\n\t
"
"movaps %xmm2,-0x30(%rbp)
\n\t
"
"movaps %xmm3,-0x40(%rbp)
\n\t
"
"subq $0x60,%rsp
\n\t
"
"andq $~15,%rsp
\n\t
"
"movaps %xmm0,0x20(%rsp)
\n\t
"
"movaps %xmm1,0x30(%rsp)
\n\t
"
"movaps %xmm2,0x40(%rsp)
\n\t
"
"movaps %xmm3,0x50(%rsp)
\n\t
"
"call "
__ASM_NAME
(
"get_proc_address"
)
"
\n\t
"
"movaps
-0x40(%rb
p), %xmm3
\n\t
"
"movaps
-0x30(%rb
p), %xmm2
\n\t
"
"movaps
-0x20(%rb
p), %xmm1
\n\t
"
"movaps
-0x10(%rb
p), %xmm0
\n\t
"
"movaps
0x50(%rs
p), %xmm3
\n\t
"
"movaps
0x40(%rs
p), %xmm2
\n\t
"
"movaps
0x30(%rs
p), %xmm1
\n\t
"
"movaps
0x20(%rs
p), %xmm0
\n\t
"
"leaq 0(%rbp),%rsp
\n\t
"
__ASM_CFI
(
".cfi_def_cfa_register %rsp
\n\t
"
)
"popq %rbp
\n\t
"
...
...
@@ -347,7 +347,7 @@ __ASM_GLOBAL_FUNC( get_proc_address_wrapper,
"ret"
)
#else
/* __x86_64__ && !__i386_on_x86_64__ */
static
inline
FARPROC
get_proc_address_wrapper
(
HMODULE
module
,
LPCSTR
function
)
static
inline
FARPROC
WINAPI
get_proc_address_wrapper
(
HMODULE
module
,
LPCSTR
function
)
{
return
get_proc_address
(
module
,
function
);
}
...
...
dlls/kernel32/toolhelp.c
View file @
63388ece
...
...
@@ -109,9 +109,9 @@ static BOOL fetch_module( DWORD process, DWORD flags, LDR_MODULE** ldr_mod, ULON
while
(
curr
!=
head
)
{
if
(
!*
num
)
*
ldr_mod
=
HeapAlloc
(
GetProcessHeap
(),
0
,
sizeof
(
LDR_MODULE
)
);
*
ldr_mod
=
HeapAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
sizeof
(
LDR_MODULE
)
);
else
*
ldr_mod
=
HeapReAlloc
(
GetProcessHeap
(),
0
,
*
ldr_mod
,
*
ldr_mod
=
HeapReAlloc
(
GetProcessHeap
(),
HEAP_ZERO_MEMORY
,
*
ldr_mod
,
(
*
num
+
1
)
*
sizeof
(
LDR_MODULE
)
);
if
(
!*
ldr_mod
)
break
;
if
(
!
ReadProcessMemory
(
hProcess
,
...
...
dlls/mountmgr.sys/diskarb.c
View file @
63388ece
...
...
@@ -25,6 +25,7 @@
#include <errno.h>
#include <stdarg.h>
#include <stdio.h>
#include <unistd.h>
#ifdef HAVE_SYS_IOCTL_H
# include <sys/ioctl.h>
#endif
...
...
@@ -150,7 +151,8 @@ static void appeared_callback( DADiskRef disk, void * HOSTPTR context )
else
if
(
guid_ptr
)
add_volume
(
device
,
device
,
mount_point
,
DEVICE_HARDDISK_VOL
,
guid_ptr
);
if
((
fd
=
open
(
device
,
O_RDONLY
))
>=
0
)
if
(
!
access
(
device
,
R_OK
)
&&
(
fd
=
open
(
device
,
O_RDONLY
))
>=
0
)
{
dk_scsi_identify_t
dsi
;
...
...
dlls/mshtml/dispex.c
View file @
63388ece
...
...
@@ -1101,6 +1101,10 @@ static HRESULT builtin_propput(DispatchEx *This, func_info_t *func, DISPPARAMS *
}
if
(
!
func
->
put_vtbl_off
)
{
if
(
dispex_compat_mode
(
This
)
>=
COMPAT_MODE_IE9
)
{
WARN
(
"No setter
\n
"
);
return
S_OK
;
}
FIXME
(
"No setter
\n
"
);
return
E_FAIL
;
}
...
...
dlls/ntdll/ntdll.spec
View file @
63388ece
...
...
@@ -69,7 +69,7 @@
@ stub KiRaiseUserExceptionDispatcher
@ stub KiUserApcDispatcher
@ stub KiUserCallbackDispatcher
@ st
ub KiUserExceptionDispatcher
@ st
dcall -norelay -arch=win64 KiUserExceptionDispatcher(ptr ptr)
# @ stub LdrAccessOutOfProcessResource
@ stdcall LdrAccessResource(long ptr ptr ptr)
@ stdcall LdrAddDllDirectory(ptr ptr)
...
...
dlls/ntdll/signal_x86_64.c
View file @
63388ece
...
...
@@ -286,16 +286,33 @@ static size_t signal_stack_size;
typedef
void
(
*
raise_func
)(
EXCEPTION_RECORD
*
rec
,
CONTEXT
*
context
);
typedef
struct
_CONTEXT_CHUNK
{
LONG
Offset
;
ULONG
Length
;
}
CONTEXT_CHUNK
,
*
PCONTEXT_CHUNK
;
typedef
struct
_CONTEXT_EX
{
CONTEXT_CHUNK
All
;
CONTEXT_CHUNK
Legacy
;
CONTEXT_CHUNK
XState
;
#ifdef _WIN64
ULONG64
align
;
#endif
}
CONTEXT_EX
,
*
PCONTEXT_EX
;
/* stack layout when calling an exception raise function */
struct
stack_layout
{
CONTEXT
context
;
CONTEXT_EX
context_ex
;
EXCEPTION_RECORD
rec
;
ULONG64
rsi
;
ULONG64
rdi
;
ULONG64
rbp
;
ULONG64
rip
;
ULONG64
red_zone
[
16
]
;
ULONG64
align
;
};
typedef
int
(
*
wine_signal_handler
)(
unsigned
int
sig
);
...
...
@@ -2616,23 +2633,47 @@ NTSTATUS WINAPI NtRaiseException( EXCEPTION_RECORD *rec, CONTEXT *context, BOOL
*
* Generic raise function for exceptions that don't need special treatment.
*/
static
void
raise_generic_exception
(
EXCEPTION_RECORD
*
rec
,
CONTEXT
*
context
)
void
WINAPI
raise_generic_exception
(
EXCEPTION_RECORD
*
rec
,
CONTEXT
*
context
)
{
NTSTATUS
status
=
raise_exception
(
rec
,
context
,
TRUE
);
raise_status
(
status
,
rec
);
}
void
KiUserExceptionDispatcher
(
void
);
/*******************************************************************
* KiUserExceptionDispatcher (NTDLL.@)
*/
__ASM_GLOBAL_FUNC
(
KiUserExceptionDispatcher
,
"mov 0x98(%rsp),%rcx
\n\t
"
/* context->Rsp */
"mov 0xf8(%rsp),%rdx
\n\t
"
/* context->Rip */
"mov %rdx,-0x8(%rcx)
\n\t
"
"mov %rbp,-0x10(%rcx)
\n\t
"
"mov %rdi,-0x18(%rcx)
\n\t
"
"mov %rsi,-0x20(%rcx)
\n\t
"
"lea -0x20(%rcx),%rbp
\n\t
"
"mov %rsp,%rdx
\n\t
"
/* context */
"lea 0x4f0(%rsp),%rcx
\n\t
"
/* rec */
__ASM_SEH
(
".seh_pushreg %rbp
\n\t
"
)
__ASM_SEH
(
".seh_pushreg %rdi
\n\t
"
)
__ASM_SEH
(
".seh_pushreg %rsi
\n\t
"
)
__ASM_SEH
(
".seh_setframe %rbp,0
\n\t
"
)
__ASM_SEH
(
".seh_endprologue
\n\t
"
)
__ASM_CFI
(
".cfi_signal_frame
\n\t
"
)
__ASM_CFI
(
".cfi_adjust_cfa_offset 0x20
\n\t
"
)
__ASM_CFI
(
".cfi_def_cfa %rbp,0x20
\n\t
"
)
__ASM_CFI
(
".cfi_rel_offset %rip,0x18
\n\t
"
)
__ASM_CFI
(
".cfi_rel_offset %rbp,0x10
\n\t
"
)
__ASM_CFI
(
".cfi_rel_offset %rdi,0x8
\n\t
"
)
__ASM_CFI
(
".cfi_rel_offset %rsi,0
\n\t
"
)
"call "
__ASM_NAME
(
"raise_generic_exception"
)
"
\n\t
"
"int3"
)
extern
void
CDECL
raise_func_trampoline
(
void
*
dispatcher
);
extern
void
raise_func_trampoline
(
EXCEPTION_RECORD
*
rec
,
CONTEXT
*
context
,
raise_func
func
);
__ASM_GLOBAL_FUNC
(
raise_func_trampoline
,
__ASM_CFI
(
".cfi_signal_frame
\n\t
"
)
__ASM_CFI
(
".cfi_def_cfa %rbp,160
\n\t
"
)
/* red zone + rip + rbp + rdi + rsi */
__ASM_CFI
(
".cfi_rel_offset %rip,24
\n\t
"
)
__ASM_CFI
(
".cfi_rel_offset %rbp,16
\n\t
"
)
__ASM_CFI
(
".cfi_rel_offset %rdi,8
\n\t
"
)
__ASM_CFI
(
".cfi_rel_offset %rsi,0
\n\t
"
)
"call *%rdx
\n\t
"
"int $3"
)
"jmpq *%r8
\n\t
"
)
/***********************************************************************
* setup_exception
...
...
@@ -2714,7 +2755,6 @@ static struct stack_layout *setup_exception( ucontext_t *sigcontext )
static
void
setup_raise_exception
(
ucontext_t
*
sigcontext
,
struct
stack_layout
*
stack
)
{
ULONG64
*
rsp_ptr
;
NTSTATUS
status
;
if
(
stack
->
rec
.
ExceptionCode
==
EXCEPTION_SINGLE_STEP
)
...
...
@@ -2742,19 +2782,11 @@ static void setup_raise_exception( ucontext_t *sigcontext, struct stack_layout *
return
;
}
/* store return address and %rbp without aligning, so that the offset is fixed */
rsp_ptr
=
(
ULONG64
*
)
RSP_sig
(
sigcontext
)
-
16
;
*
(
--
rsp_ptr
)
=
stack
->
context
.
Rip
;
*
(
--
rsp_ptr
)
=
stack
->
context
.
Rbp
;
*
(
--
rsp_ptr
)
=
stack
->
context
.
Rdi
;
*
(
--
rsp_ptr
)
=
stack
->
context
.
Rsi
;
/* now modify the sigcontext to return to the raise function */
RIP_sig
(
sigcontext
)
=
(
ULONG_PTR
)
raise_func_trampoline
;
RDI_sig
(
sigcontext
)
=
(
ULONG_PTR
)
&
stack
->
rec
;
RSI_sig
(
sigcontext
)
=
(
ULONG_PTR
)
&
stack
->
context
;
RDX_sig
(
sigcontext
)
=
(
ULONG_PTR
)
raise_generic_exception
;
RBP_sig
(
sigcontext
)
=
(
ULONG_PTR
)
rsp_ptr
;
R8_sig
(
sigcontext
)
=
(
ULONG_PTR
)
KiUserExceptionDispatcher
;
RSP_sig
(
sigcontext
)
=
(
ULONG_PTR
)
stack
;
/* clear single-step, direction, and align check flag */
EFL_sig
(
sigcontext
)
&=
~
(
0x100
|
0x400
|
0x40000
);
...
...
dlls/ntdll/thread.c
View file @
63388ece
...
...
@@ -339,7 +339,7 @@ TEB *thread_init(void)
InitializeListHead
(
&
ldr
.
InLoadOrderModuleList
);
InitializeListHead
(
&
ldr
.
InMemoryOrderModuleList
);
InitializeListHead
(
&
ldr
.
InInitializationOrderModuleList
);
*
(
ULONG_HOSTPTR
*
)
peb
->
Reserved
=
get_image_addr
();
*
(
ULONG_HOSTPTR
*
)
&
peb
->
CloudFileFlags
=
get_image_addr
();
#if defined(__APPLE__) && defined(__x86_64__) && !defined(__i386_on_x86_64__)
*
((
DWORD
*
)((
char
*
)
user_shared_data_external
+
0x1000
))
=
(
DWORD
)
__wine_syscall_dispatcher
;
...
...
dlls/sane.ds/sane_i.h
View file @
63388ece
...
...
@@ -36,7 +36,7 @@
#include "twain.h"
#ifdef SONAME_LIBSANE
#define MAKE_FUNCPTR(f) typeof(f) * p##f DECLSPEC_HIDDEN;
#define MAKE_FUNCPTR(f)
extern
typeof(f) * p##f DECLSPEC_HIDDEN;
MAKE_FUNCPTR
(
sane_init
)
MAKE_FUNCPTR
(
sane_exit
)
MAKE_FUNCPTR
(
sane_get_devices
)
...
...
@@ -84,7 +84,9 @@ struct tagActiveDS
TW_FIX32
defaultXResolution
;
BOOL
YResolutionSet
;
TW_FIX32
defaultYResolution
;
}
activeDS
DECLSPEC_HIDDEN
;
};
extern
struct
tagActiveDS
activeDS
DECLSPEC_HIDDEN
;
/* Helper functions */
extern
TW_UINT16
SANE_SaneCapability
(
pTW_CAPABILITY
pCapability
,
TW_UINT16
action
)
DECLSPEC_HIDDEN
;
...
...
dlls/sane.ds/sane_main.c
View file @
63388ece
...
...
@@ -31,6 +31,25 @@
WINE_DEFAULT_DEBUG_CHANNEL
(
twain
);
DSMENTRYPROC
SANE_dsmentry
;
struct
tagActiveDS
activeDS
;
#ifdef SONAME_LIBSANE
#define MAKE_FUNCPTR(f) typeof(f) * p##f;
MAKE_FUNCPTR
(
sane_init
)
MAKE_FUNCPTR
(
sane_exit
)
MAKE_FUNCPTR
(
sane_get_devices
)
MAKE_FUNCPTR
(
sane_open
)
MAKE_FUNCPTR
(
sane_close
)
MAKE_FUNCPTR
(
sane_get_option_descriptor
)
MAKE_FUNCPTR
(
sane_control_option
)
MAKE_FUNCPTR
(
sane_get_parameters
)
MAKE_FUNCPTR
(
sane_start
)
MAKE_FUNCPTR
(
sane_read
)
MAKE_FUNCPTR
(
sane_cancel
)
MAKE_FUNCPTR
(
sane_set_io_mode
)
MAKE_FUNCPTR
(
sane_get_select_fd
)
MAKE_FUNCPTR
(
sane_strstatus
)
#undef MAKE_FUNCPTR
#endif
#ifdef SONAME_LIBSANE
...
...
dlls/secur32/secur32_priv.h
View file @
63388ece
...
...
@@ -190,8 +190,8 @@ void SECUR32_arc4Cleanup(arc4_info *a4i) DECLSPEC_HIDDEN;
#define NTLMSSP_NEGOTIATE_56 0x80000000
SecPkgInfoW
*
ntlm_package_infoW
DECLSPEC_HIDDEN
;
SecPkgInfoA
*
ntlm_package_infoA
DECLSPEC_HIDDEN
;
extern
SecPkgInfoW
*
ntlm_package_infoW
DECLSPEC_HIDDEN
;
extern
SecPkgInfoA
*
ntlm_package_infoA
DECLSPEC_HIDDEN
;
/* schannel internal interface */
typedef
struct
schan_imp_session_opaque
*
schan_imp_session
;
...
...
dlls/windowscodecs/converter.c
View file @
63388ece
...
...
@@ -722,6 +722,15 @@ static HRESULT copypixels_to_32bppBGRA(struct FormatConverter *This, const WICRe
pbBuffer
[
cbStride
*
y
+
4
*
x
+
3
]
=
0xff
;
}
return
S_OK
;
case
format_32bppRGBA
:
if
(
prc
)
{
HRESULT
res
;
res
=
IWICBitmapSource_CopyPixels
(
This
->
source
,
prc
,
cbStride
,
cbBufferSize
,
pbBuffer
);
if
(
FAILED
(
res
))
return
res
;
reverse_bgr8
(
4
,
pbBuffer
,
prc
->
Width
,
prc
->
Height
,
cbStride
);
}
return
S_OK
;
case
format_32bppBGRA
:
if
(
prc
)
return
IWICBitmapSource_CopyPixels
(
This
->
source
,
prc
,
cbStride
,
cbBufferSize
,
pbBuffer
);
...
...
dlls/winebus.sys/bus.h
View file @
63388ece
...
...
@@ -56,5 +56,5 @@ DEVICE_OBJECT* find_device_by_uid(DWORD uid) DECLSPEC_HIDDEN;
DWORD
check_bus_option
(
const
UNICODE_STRING
*
option
,
DWORD
default_value
)
DECLSPEC_HIDDEN
;
BOOL
is_xbox_gamepad
(
WORD
vid
,
WORD
pid
)
DECLSPEC_HIDDEN
;
HANDLE
driver_key
DECLSPEC_HIDDEN
;
DEVICE_OBJECT
*
bus_pdo
DECLSPEC_HIDDEN
;
extern
HANDLE
driver_key
DECLSPEC_HIDDEN
;
extern
DEVICE_OBJECT
*
bus_pdo
DECLSPEC_HIDDEN
;
dlls/winebus.sys/bus_xbox360.c
View file @
63388ece
...
...
@@ -104,8 +104,6 @@ static CFRunLoopRef run_loop;
static
HANDLE
run_loop_handle
;
static
const
WCHAR
busidW
[]
=
{
'X'
,
'B'
,
'O'
,
'X'
,
0
};
#include "initguid.h"
DEFINE_GUID
(
DEVCLASS
,
0x2381EBD6
,
0x852A
,
0x464D
,
0x95
,
0x2D
,
0xF8
,
0x4D
,
0x08
,
0x35
,
0xDE
,
0xBA
);
struct
platform_private
{
io_object_t
object
;
...
...
@@ -578,7 +576,7 @@ static void process_IOService_Device(io_object_t object)
if
(
is_xbox_gamepad
(
vid
,
pid
))
{
device
=
bus_create_hid_device
(
busidW
,
vid
,
pid
,
-
1
,
1
,
uid
,
serial_string
,
device
=
bus_create_hid_device
(
busidW
,
vid
,
pid
,
0
,
1
,
uid
,
serial_string
,
1
,
&
xbox_vtbl
,
sizeof
(
struct
platform_private
));
}
else
...
...
@@ -606,7 +604,7 @@ static void process_IOService_Device(io_object_t object)
(
*
dev
)
->
Release
(
dev
);
}
else
IoInvalidateDeviceRelations
(
device
,
BusRelations
);
IoInvalidateDeviceRelations
(
bus_pdo
,
BusRelations
);
}
}
...
...
@@ -631,6 +629,7 @@ static void handle_IOServiceTerminatedCallback(void * HOSTPTR refcon, io_iterato
if
(
device
)
{
cleanupDevice
(
device
);
bus_unlink_hid_device
(
device
);
bus_remove_hid_device
(
device
);
}
IOObjectRelease
(
object
);
...
...
dlls/winecoreaudio.drv/Makefile.in
View file @
63388ece
...
...
@@ -13,4 +13,6 @@ C_SRCS = \
OBJC_SRCS
=
\
authorization.m
coremidi_EXTRADEFS
=
$(HOSTSTACK_CFLAGS)
midi_EXTRADEFS
=
$(HOSTSTACK_CFLAGS)
mmdevdrv_EXTRADEFS
=
$(HOSTSTACK_CFLAGS)
dlls/winecoreaudio.drv/coremidi.h
View file @
63388ece
...
...
@@ -23,6 +23,8 @@
#include <CoreFoundation/CoreFoundation.h>
#include "wine/hostptraddrspace_enter.h"
#ifdef WINE_DEFINITIONS
/*
* Due to CoreMIDI headers conflict redefine some types for Wine
...
...
@@ -81,4 +83,6 @@ extern void MIDIOut_Send(MIDIPortRef port, MIDIEndpointRef dest, UInt8 *buffer,
/* midi.c */
void
MIDIIn_SendMessage
(
MIDIMessage
msg
);
#include "wine/hostptraddrspace_exit.h"
#endif
dlls/wined3d/glsl_shader.c
View file @
63388ece
...
...
@@ -8567,8 +8567,11 @@ static GLuint find_glsl_fragment_shader(const struct wined3d_context_gl *context
{
unsigned
int
coord
;
coord
=
shader_find_free_input_register
(
&
shader
->
reg_maps
,
context_gl
->
c
.
d3d_info
->
limits
.
ffp_blend_stages
-
1
);
/* Store off by one, the code checks against zero */
((
struct
glsl_shader_private
*
)
shader
->
backend_data
)
->
clipplane_emulation
=
coord
+
1
;
if
(
coord
!=
~
0u
)
{
/* Store off by one, the code checks against zero */
((
struct
glsl_shader_private
*
)
shader
->
backend_data
)
->
clipplane_emulation
=
coord
+
1
;
}
}
}
shader_data
=
shader
->
backend_data
;
...
...
dlls/wined3d/shader.c
View file @
63388ece
...
...
@@ -1865,9 +1865,13 @@ static void shader_cleanup_reg_maps(struct wined3d_shader_reg_maps *reg_maps)
unsigned
int
shader_find_free_input_register
(
const
struct
wined3d_shader_reg_maps
*
reg_maps
,
unsigned
int
max
)
{
DWORD
map
=
1u
<<
max
;
map
|=
map
-
1
;
map
&=
reg_maps
->
shader_version
.
major
<
3
?
~
reg_maps
->
texcoord
:
~
reg_maps
->
input_registers
;
if
(
!
map
)
return
~
0u
;
return
wined3d_log2i
(
map
);
}
...
...
dlls/winemac.drv/display.c
View file @
63388ece
...
...
@@ -928,6 +928,8 @@ better:
size_t
width
=
CGDisplayModeGetWidth
(
best_display_mode
);
size_t
height
=
CGDisplayModeGetHeight
(
best_display_mode
);
macdrv_init_display_devices
(
TRUE
);
if
(
best_is_original
&&
retina_enabled
)
{
width
*=
2
;
...
...
@@ -937,8 +939,6 @@ better:
SendMessageW
(
GetDesktopWindow
(),
WM_MACDRV_UPDATE_DESKTOP_RECT
,
mode_bpp
,
MAKELPARAM
(
width
,
height
));
ret
=
DISP_CHANGE_SUCCESSFUL
;
macdrv_init_display_devices
(
TRUE
);
}
else
{
...
...
dlls/winemac.drv/window.c
View file @
63388ece
...
...
@@ -2458,11 +2458,11 @@ void macdrv_window_got_focus(HWND hwnd, const macdrv_event *event)
if
(
can_activate_window
(
top
)
&&
!
(
style
&
WS_MINIMIZE
))
{
/* simulate a mouse click on the
caption
to find out
/* simulate a mouse click on the
menu
to find out
* whether the window wants to be activated */
LRESULT
ma
=
SendMessageW
(
top
,
WM_MOUSEACTIVATE
,
(
WPARAM
)
top
,
MAKELONG
(
HT
CAPTION
,
WM_LBUTTONDOWN
));
MAKELONG
(
HT
MENU
,
WM_LBUTTONDOWN
));
if
(
ma
!=
MA_NOACTIVATEANDEAT
&&
ma
!=
MA_NOACTIVATE
)
{
TRACE
(
"setting foreground window to %p
\n
"
,
top
);
...
...
include/winternl.h
View file @
63388ece
...
...
@@ -288,7 +288,8 @@ typedef struct _PEB
PVOID
/*PPEBLOCKROUTINE*/
FastPebUnlockRoutine
;
/* 024/048 */
ULONG
EnvironmentUpdateCount
;
/* 028/050 */
PVOID
KernelCallbackTable
;
/* 02c/058 */
ULONG
Reserved
[
2
];
/* 030/060 */
ULONG
Reserved
;
/* 030/060 */
ULONG
AtlThunkSListPtr32
;
/* 034/064 */
PVOID
/*PPEB_FREE_BLOCK*/
FreeList
;
/* 038/068 */
ULONG
TlsExpansionCounter
;
/* 03c/070 */
PRTL_BITMAP
TlsBitmap
;
/* 040/078 */
...
...
@@ -341,6 +342,24 @@ typedef struct _PEB
LIST_ENTRY
FlsListHead
;
/* 210/328 */
PRTL_BITMAP
FlsBitmap
;
/* 218/338 */
ULONG
FlsBitmapBits
[
4
];
/* 21c/340 */
ULONG
FlsHighIndex
;
/* 22c/350 */
PVOID
WerRegistrationData
;
/* 230/358 */
PVOID
WerShipAssertPtr
;
/* 234/360 */
PVOID
pUnused
;
/* 238/368 */
PVOID
pImageHeaderHash
;
/* 23c/370 */
ULONG
TracingFlags
;
/* 240/378 */
ULONGLONG
CsrServerReadOnlySharedMemoryBase
;
/* 248/380 */
ULONG
TppWorkerpListLock
;
/* 250/388 */
LIST_ENTRY
TppWorkerpList
;
/* 254/390 */
PVOID
WaitOnAddressHashTable
[
0x80
];
/* 25c/3a0 */
PVOID
TelemetryCoverageHeader
;
/* 45c/7a0 */
ULONG
CloudFileFlags
;
/* 460/7a8 */
ULONG
CloudFileDiagFlags
;
/* 464/7ac */
CHAR
PlaceholderCompatibilityMode
;
/* 468/7b0 */
CHAR
PlaceholderCompatibilityModeReserved
[
7
];
/* 469/7b1 */
PVOID
LeapSecondData
;
/* 470/7b8 */
ULONG
LeapSecondFlags
;
/* 474/7c0 */
ULONG
NtGlobalFlag2
;
/* 478/7c4 */
}
PEB
,
*
PPEB
;
...
...
loader/preloader_mac.c
View file @
63388ece
...
...
@@ -54,6 +54,17 @@
#include "wine/asm.h"
#include "main.h"
/* Rosetta on Apple Silicon allocates memory starting at 0x100000000 (the 4GB line)
* before the preloader runs, which prevents any nonrelocatable EXEs with that
* base address from running.
*
* This empty linker section forces Rosetta's allocations (currently ~132 MB)
* to start at 0x114000000, and they should end below 0x120000000.
*/
#if defined(__x86_64__)
__asm__
(
".zerofill WINE_4GB_RESERVE,WINE_4GB_RESERVE,___wine_4gb_reserve,0x14000000"
);
#endif
#ifndef LC_MAIN
#define LC_MAIN 0x80000028
struct
entry_point_command
...
...
@@ -79,6 +90,7 @@ static struct wine_preload_info preload_info[] =
{
(
void
*
)
0x000000010000
,
0x00100000
},
/* DOS area */
{
(
void
*
)
0x000000110000
,
0x67ef0000
},
/* low memory area */
{
(
void
*
)
0x00007ff00000
,
0x000f0000
},
/* shared user data */
{
(
void
*
)
0x000100000000
,
0x14000000
},
/* WINE_4GB_RESERVE section */
{
(
void
*
)
0x7ffd00000000
,
0x01ff0000
},
/* top-down allocations + virtual heap */
#endif
/* __i386__ */
{
0
,
0
},
/* PE exe range set with WINEPRELOADRESERVE */
...
...
@@ -430,6 +442,10 @@ static int preloader_overlaps_range( const void *start, const void *end )
struct
target_segment_command
*
seg
=
(
struct
target_segment_command
*
)
cmd
;
const
void
*
seg_start
=
(
const
void
*
)(
seg
->
vmaddr
+
slide
);
const
void
*
seg_end
=
(
const
char
*
)
seg_start
+
seg
->
vmsize
;
static
const
char
reserved_segname
[]
=
"WINE_4GB_RESERVE"
;
if
(
!
wld_strncmp
(
seg
->
segname
,
reserved_segname
,
sizeof
(
reserved_segname
)
-
1
))
continue
;
if
(
end
>
seg_start
&&
start
<=
seg_end
)
{
...
...
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