summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
de4c63c)
- Also removed the AcessNative build number from the tree, local only
if( MM_int_GetPageInfo(ret, &pi) == 0 )
continue;
if( MM_int_GetPageInfo(ret, &pi) == 0 )
continue;
- Log("MapTemp %P at %p by %p", PAddr, ret, __builtin_return_address(0));
+// Log("MapTemp %P at %p by %p", PAddr, ret, __builtin_return_address(0));
MM_RefPhys(PAddr); // Counter the MM_Deallocate in FreeTemp
MM_Map(ret, PAddr);
MM_RefPhys(PAddr); // Counter the MM_Deallocate in FreeTemp
MM_Map(ret, PAddr);
-// NOTE: Runs in abort context, not much differe, just a smaller stack
+// NOTE: Runs in abort context, not much difference, just a smaller stack
void MM_PageFault(Uint32 PC, Uint32 Addr, Uint32 DFSR, int bPrefetch)
{
int rv;
void MM_PageFault(Uint32 PC, Uint32 Addr, Uint32 DFSR, int bPrefetch)
{
int rv;
Log_Notice("MMVirt", "COW %p caused by %p, ZERO duped to %P (RefCnt(%i)--)", Addr, PC,
newpage, MM_GetRefCount(pi.PhysAddr));
Log_Notice("MMVirt", "COW %p caused by %p, ZERO duped to %P (RefCnt(%i)--)", Addr, PC,
newpage, MM_GetRefCount(pi.PhysAddr));
MM_DerefPhys(pi.PhysAddr);
pi.PhysAddr = newpage;
MM_DerefPhys(pi.PhysAddr);
pi.PhysAddr = newpage;
memcpy( dst, src, PAGE_SIZE );
MM_FreeTemp( (tVAddr)dst );
memcpy( dst, src, PAGE_SIZE );
MM_FreeTemp( (tVAddr)dst );
Log_Notice("MMVirt", "COW %p caused by %p, %P duped to %P (RefCnt(%i)--)", Addr, PC,
pi.PhysAddr, newpage, MM_GetRefCount(pi.PhysAddr));
Log_Notice("MMVirt", "COW %p caused by %p, %P duped to %P (RefCnt(%i)--)", Addr, PC,
pi.PhysAddr, newpage, MM_GetRefCount(pi.PhysAddr));
MM_DerefPhys(pi.PhysAddr);
pi.PhysAddr = newpage;
}
MM_DerefPhys(pi.PhysAddr);
pi.PhysAddr = newpage;
}
else {
Log_Notice("MMVirt", "COW %p caused by %p, took last reference to %P",
Addr, PC, pi.PhysAddr);
}
else {
Log_Notice("MMVirt", "COW %p caused by %p, took last reference to %P",
Addr, PC, pi.PhysAddr);
}
// Unset COW
pi.AP = AP_RW_BOTH;
MM_int_SetPageInfo(Addr, &pi);
// Unset COW
pi.AP = AP_RW_BOTH;
MM_int_SetPageInfo(Addr, &pi);