Alexandre Julliard : vmm.vxd: Hardcode the x86 page size.
Alexandre Julliard
julliard at winehq.org
Tue Jan 8 13:58:43 CST 2013
Module: wine
Branch: master
Commit: ae9b07fdc0f8b179d87db07c8ecd2c07f67446dc
URL: http://source.winehq.org/git/wine.git/?a=commit;h=ae9b07fdc0f8b179d87db07c8ecd2c07f67446dc
Author: Alexandre Julliard <julliard at winehq.org>
Date: Tue Jan 8 14:02:34 2013 +0100
vmm.vxd: Hardcode the x86 page size.
---
dlls/vmm.vxd/vmm.c | 22 ++++++++++------------
1 files changed, 10 insertions(+), 12 deletions(-)
diff --git a/dlls/vmm.vxd/vmm.c b/dlls/vmm.vxd/vmm.c
index ff737dc..7327f78 100644
--- a/dlls/vmm.vxd/vmm.c
+++ b/dlls/vmm.vxd/vmm.c
@@ -119,6 +119,8 @@ static const char * const VMM_Service_Name[N_VMM_SERVICE] =
#define PCC_NOLIN 0x10000000 /* don't map to any linear address */
+static const DWORD page_size = 0x1000; /* we only care about x86 */
+
/* Pop a DWORD from the 32-bit stack */
static inline DWORD stack32_pop( CONTEXT *context )
{
@@ -141,7 +143,6 @@ DWORD WINAPI VMM_VxDCall( DWORD service, CONTEXT *context )
{
LPVOID address;
LPVOID ret;
- DWORD psize = getpagesize();
ULONG page = stack32_pop( context );
ULONG npages = stack32_pop( context );
ULONG flags = stack32_pop( context );
@@ -157,8 +158,8 @@ DWORD WINAPI VMM_VxDCall( DWORD service, CONTEXT *context )
address-spaces we now have */
if ( page == PR_PRIVATE || page == PR_SHARED ) page = 0;
/* FIXME: Handle flags in some way */
- address = (LPVOID )(page * psize);
- ret = VirtualAlloc ( address, ( npages * psize ), MEM_RESERVE, 0 );
+ address = (LPVOID )(page * page_size);
+ ret = VirtualAlloc ( address, npages * page_size, MEM_RESERVE, 0 );
TRACE("PageReserve: returning: %p\n", ret );
if ( ret == NULL )
return -1;
@@ -171,7 +172,6 @@ DWORD WINAPI VMM_VxDCall( DWORD service, CONTEXT *context )
LPVOID address;
LPVOID ret;
DWORD virt_perm;
- DWORD psize = getpagesize();
ULONG page = stack32_pop( context );
ULONG npages = stack32_pop( context );
ULONG hpd = stack32_pop( context );
@@ -190,8 +190,8 @@ DWORD WINAPI VMM_VxDCall( DWORD service, CONTEXT *context )
else
virt_perm = PAGE_NOACCESS;
- address = (LPVOID )(page * psize);
- ret = VirtualAlloc ( address, ( npages * psize ), MEM_COMMIT, virt_perm );
+ address = (LPVOID )(page * page_size);
+ ret = VirtualAlloc ( address, npages * page_size, MEM_COMMIT, virt_perm );
TRACE("PageCommit: Returning: %p\n", ret );
return (DWORD )ret;
@@ -201,15 +201,14 @@ DWORD WINAPI VMM_VxDCall( DWORD service, CONTEXT *context )
{
LPVOID address;
BOOL ret;
- DWORD psize = getpagesize();
ULONG page = stack32_pop( context );
ULONG npages = stack32_pop( context );
ULONG flags = stack32_pop( context );
TRACE("PageDecommit: page: %08x, npages: %08x, flags: %08x partial stub\n",
page, npages, flags );
- address = (LPVOID )( page * psize );
- ret = VirtualFree ( address, ( npages * psize ), MEM_DECOMMIT );
+ address = (LPVOID )( page * page_size );
+ ret = VirtualFree ( address, npages * page_size, MEM_DECOMMIT );
TRACE("PageDecommit: Returning: %s\n", ret ? "TRUE" : "FALSE" );
return ret;
}
@@ -222,7 +221,6 @@ DWORD WINAPI VMM_VxDCall( DWORD service, CONTEXT *context )
DWORD virt_new_perm;
MEMORY_BASIC_INFORMATION mbi;
LPVOID address;
- DWORD psize = getpagesize();
ULONG page = stack32_pop ( context );
ULONG npages = stack32_pop ( context );
ULONG permand = stack32_pop ( context );
@@ -230,7 +228,7 @@ DWORD WINAPI VMM_VxDCall( DWORD service, CONTEXT *context )
TRACE("PageModifyPermissions %08x %08x %08x %08x partial stub\n",
page, npages, permand, permor );
- address = (LPVOID )( page * psize );
+ address = (LPVOID )( page * page_size );
VirtualQuery ( address, &mbi, sizeof ( MEMORY_BASIC_INFORMATION ));
virt_old_perm = mbi.Protect;
@@ -265,7 +263,7 @@ DWORD WINAPI VMM_VxDCall( DWORD service, CONTEXT *context )
virt_new_perm |= PAGE_EXECUTE_READ;
}
- if ( ! VirtualProtect ( address, ( npages * psize ), virt_new_perm, &virt_old_perm ) ) {
+ if ( ! VirtualProtect ( address, npages * page_size, virt_new_perm, &virt_old_perm ) ) {
ERR("Can't change page permissions for %p\n", address );
return 0xffffffff;
}
More information about the wine-cvs
mailing list