X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Kernel%2Farch%2Fx86%2Fmm_virt.c;h=e616fc71009b2183074ea7c1c9585a4c4525fd6c;hb=dcebc16c576aa98eb6a33047f4c4b2b69b30a1bc;hp=970e957541562dec39c14c37c08a14b9e0a096e6;hpb=17aac974ab83a3521f2b49b8de33ae05a00fbe07;p=tpg%2Facess2.git diff --git a/Kernel/arch/x86/mm_virt.c b/Kernel/arch/x86/mm_virt.c index 970e9575..e616fc71 100644 --- a/Kernel/arch/x86/mm_virt.c +++ b/Kernel/arch/x86/mm_virt.c @@ -15,6 +15,7 @@ #include #include #include +#include #define TAB 22 @@ -59,7 +60,7 @@ typedef Uint32 tTabEnt; // === IMPORTS === -extern void _UsertextEnd, _UsertextBase; +extern char _UsertextEnd[], _UsertextBase[]; extern Uint32 gaInitPageDir[1024]; extern Uint32 gaInitPageTable[1024]; extern void Threads_SegFault(tVAddr Addr); @@ -69,8 +70,8 @@ extern void Error_Backtrace(Uint eip, Uint ebp); void MM_PreinitVirtual(void); void MM_InstallVirtual(void); void MM_PageFault(tVAddr Addr, Uint ErrorCode, tRegs *Regs); -void MM_DumpTables(tVAddr Start, tVAddr End); -tVAddr MM_ClearUser(void); +//void MM_DumpTables(tVAddr Start, tVAddr End); +//void MM_ClearUser(void); tPAddr MM_DuplicatePage(tVAddr VAddr); // === GLOBALS === @@ -175,7 +176,7 @@ void MM_PageFault(tVAddr Addr, Uint ErrorCode, tRegs *Regs) gaPageTable[Addr>>12] |= paddr|PF_PRESENT|PF_WRITE; } - Log_Debug("MMVirt", "COW for %p (%P)", Addr, gaPageTable[Addr>>12]); +// Log_Debug("MMVirt", "COW for %p (%P)", Addr, gaPageTable[Addr>>12]); INVLPG( Addr & ~0xFFF ); return; @@ -475,10 +476,9 @@ int MM_Map(tVAddr VAddr, tPAddr PAddr) } /** - * \fn tVAddr MM_ClearUser() * \brief Clear user's address space */ -tVAddr MM_ClearUser(void) +void MM_ClearUser(void) { Uint i, j; @@ -504,8 +504,6 @@ tVAddr MM_ClearUser(void) INVLPG( &gaPageTable[i*1024] ); } INVLPG( gaPageDir ); - - return *gpPageCR3; } /**