- Timestamp:
- Nov 10, 1999, 3:16:01 PM (26 years ago)
- Location:
- trunk/src/kernel32
- Files:
-
- 5 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kernel32/mmap.cpp
r1641 r1687 1 /* $Id: mmap.cpp,v 1.2 1 1999-11-08 20:53:24sandervl Exp $ */1 /* $Id: mmap.cpp,v 1.22 1999-11-10 14:16:01 sandervl Exp $ */ 2 2 3 3 /* … … 145 145 //(all pages are readonly until the app tries to write to it) 146 146 //****************************************************************************** 147 BOOL Win32MemMap::commitPage(ULONG offset, BOOL fWriteAccess )147 BOOL Win32MemMap::commitPage(ULONG offset, BOOL fWriteAccess, int nrpages) 148 148 { 149 149 MEMORY_BASIC_INFORMATION memInfo; … … 158 158 dprintf(("Win32MemMap::commitPage %x (faultaddr %x)", pageAddr, lpPageFaultAddr)); 159 159 if(hMemFile != -1) { 160 if(VirtualQuery((LPSTR)pageAddr, &memInfo, NRPAGES_TOCOMMIT*PAGE_SIZE) == 0) {161 dprintf(("Win32MemMap::commitPage: VirtualQuery (%x,%x) failed for %x", pageAddr, NRPAGES_TOCOMMIT*PAGE_SIZE));160 if(VirtualQuery((LPSTR)pageAddr, &memInfo, nrpages*PAGE_SIZE) == 0) { 161 dprintf(("Win32MemMap::commitPage: VirtualQuery (%x,%x) failed for %x", pageAddr, nrpages*PAGE_SIZE)); 162 162 goto fail; 163 163 } … … 207 207 } 208 208 else { 209 if(VirtualQuery((LPSTR)pageAddr, &memInfo, NRPAGES_TOCOMMIT*PAGE_SIZE) == 0) {210 dprintf(("Win32MemMap::commitPage: VirtualQuery (%x,%x) failed for %x", pageAddr, NRPAGES_TOCOMMIT*PAGE_SIZE));209 if(VirtualQuery((LPSTR)pageAddr, &memInfo, nrpages*PAGE_SIZE) == 0) { 210 dprintf(("Win32MemMap::commitPage: VirtualQuery (%x,%x) failed for %x", pageAddr, nrpages*PAGE_SIZE)); 211 211 goto fail; 212 212 } -
trunk/src/kernel32/mmap.h
r1432 r1687 1 /* $Id: mmap.h,v 1.1 0 1999-10-24 22:51:22sandervl Exp $ */1 /* $Id: mmap.h,v 1.11 1999-11-10 14:16:01 sandervl Exp $ */ 2 2 3 3 /* … … 51 51 void Release() { if(--referenced == 0) delete this; }; 52 52 53 BOOL commitPage(ULONG offset, BOOL fWriteAccess );53 BOOL commitPage(ULONG offset, BOOL fWriteAccess, int nrpages = NRPAGES_TOCOMMIT); 54 54 55 55 static Win32MemMap *findMap(LPSTR lpszName); -
trunk/src/kernel32/oslibdos.cpp
r1628 r1687 1 /* $Id: oslibdos.cpp,v 1. 6 1999-11-08 13:43:12sandervl Exp $ */1 /* $Id: oslibdos.cpp,v 1.7 1999-11-10 14:16:01 sandervl Exp $ */ 2 2 3 3 /* … … 32 32 } 33 33 //****************************************************************************** 34 //NT returns addresses aligned at 64k, so we do too. 34 35 //****************************************************************************** 35 36 DWORD OSLibDosAllocMem(LPVOID *lplpMemAddr, DWORD size, DWORD flags) 36 37 { 37 return DosAllocMem(lplpMemAddr, size, flags | flAllocMem); 38 LPVOID memaddr; 39 DWORD offset; 40 APIRET rc; 41 42 rc = DosAllocMem(&memaddr, size, PAG_READ | flAllocMem); 43 if(rc) { 44 return rc; 45 } 46 DosEnterCritSec(); 47 DosFreeMem(memaddr); 48 offset = (DWORD)memaddr & 0xFFFF; 49 if(offset) { 50 DosAllocMem(&memaddr, 64*1024 - offset, PAG_READ | flAllocMem); 51 } 52 rc = DosAllocMem(lplpMemAddr, size, flags | flAllocMem); 53 DosExitCritSec(); 54 if((DWORD)*lplpMemAddr & 0xFFFF) {//still not at 64k boundary? 55 DosFreeMem(*lplpMemAddr); 56 rc = OSLibDosAllocMem(lplpMemAddr, size, flags); 57 } 58 if(offset) { 59 DosFreeMem(memaddr); 60 } 61 62 return rc; 38 63 } 39 64 //****************************************************************************** -
trunk/src/kernel32/virtual.cpp
r1432 r1687 1 /* $Id: virtual.cpp,v 1.2 1 1999-10-24 22:51:22sandervl Exp $ */1 /* $Id: virtual.cpp,v 1.22 1999-11-10 14:16:01 sandervl Exp $ */ 2 2 3 3 /* … … 31 31 ODINDEBUGCHANNEL(KERNEL32-VIRTUAL) 32 32 33 #define PAGE_SHIFT 12 33 34 34 35 /*********************************************************************** … … 305 306 dprintf(("VirtualAlloc: Unknown protection flags, default to read/write")); 306 307 flag |= PAG_READ | PAG_WRITE; 308 } 309 310 if(lpvAddress) 311 { 312 Win32MemMap *map; 313 ULONG offset, nrpages; 314 315 nrpages = cbSize >> PAGE_SHIFT; 316 if(cbSize & 0xFFF) 317 nrpages++; 318 319 map = Win32MemMapView::findMapByView((ULONG)lpvAddress, &offset, fdwProtect); 320 if(map) { 321 //TODO: We don't allow protection flag changes for mmaped files now 322 map->commitPage(offset, FALSE, nrpages); 323 return lpvAddress; 324 } 307 325 } 308 326 -
trunk/src/kernel32/wprocess.cpp
r1670 r1687 1 /* $Id: wprocess.cpp,v 1.4 6 1999-11-09 19:22:33sandervl Exp $ */1 /* $Id: wprocess.cpp,v 1.47 1999-11-10 14:16:01 sandervl Exp $ */ 2 2 3 3 /* … … 699 699 } 700 700 proc = O32_GetProcAddress(hModule, lpszProc); 701 dprintf(("KERNEL32: GetProcAddress %s from %X returned %X\n", lpszProc, hModule, proc)); 701 if(HIWORD(lpszProc)) 702 dprintf(("KERNEL32: GetProcAddress %s from %X returned %X\n", lpszProc, hModule, proc)); 703 else dprintf(("KERNEL32: GetProcAddress %x from %X returned %X\n", lpszProc, hModule, proc)); 702 704 return(proc); 703 705 }
Note:
See TracChangeset
for help on using the changeset viewer.