X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=KernelLand%2FKernel%2Farch%2Fx86%2Fmm_virt.c;h=d15c3d72773e9eda4ddb5abf4519e1995be8e9be;hb=9dccbc6f16485ea62caa8c4153f6f878da8cbb0d;hp=51a3f6211aa3f7d2bd924890a65852ec18b35fe4;hpb=6d6b367c4f5e413a9e4135d9f5c40077c3724525;p=tpg%2Facess2.git diff --git a/KernelLand/Kernel/arch/x86/mm_virt.c b/KernelLand/Kernel/arch/x86/mm_virt.c index 51a3f621..d15c3d72 100644 --- a/KernelLand/Kernel/arch/x86/mm_virt.c +++ b/KernelLand/Kernel/arch/x86/mm_virt.c @@ -694,9 +694,9 @@ tPAddr MM_Clone(int bNoUserCopy) MM_RefPhys( gaTmpTable[i*1024+j] & ~0xFFF ); - tmp = (void *) MM_MapTemp( gaTmpTable[i*1024+j] & ~0xFFF ); + tmp = MM_MapTemp( gaTmpTable[i*1024+j] & ~0xFFF ); memcpy( tmp, (void *)( (i*1024+j)*0x1000 ), 0x1000 ); - MM_FreeTemp( (Uint)tmp ); + MM_FreeTemp( tmp ); } } @@ -804,9 +804,9 @@ tVAddr MM_NewWorkerStack(Uint *StackContents, size_t ContentsSize) // NOTE: Max of 1 page // `page` is the last allocated page from the previious for loop - tmpPage = MM_MapTemp( page ); + tmpPage = (tVAddr)MM_MapTemp( page ); memcpy( (void*)( tmpPage + (0x1000 - ContentsSize) ), StackContents, ContentsSize); - MM_FreeTemp(tmpPage); + MM_FreeTemp( (void*)tmpPage ); //Log("MM_NewWorkerStack: RETURN 0x%x", base); return base + WORKER_STACK_SIZE; @@ -935,7 +935,7 @@ int MM_IsValidBuffer(tVAddr Addr, size_t Size) tPAddr MM_DuplicatePage(tVAddr VAddr) { tPAddr ret; - Uint temp; + void *temp; int wasRO = 0; //ENTER("xVAddr", VAddr); @@ -960,7 +960,7 @@ tPAddr MM_DuplicatePage(tVAddr VAddr) // Copy Data temp = MM_MapTemp(ret); - memcpy( (void*)temp, (void*)VAddr, 0x1000 ); + memcpy( temp, (void*)VAddr, 0x1000 ); MM_FreeTemp(temp); // Restore Writeable status @@ -976,7 +976,7 @@ tPAddr MM_DuplicatePage(tVAddr VAddr) * \brief Create a temporary memory mapping * \todo Show Luigi Barone (C Lecturer) and see what he thinks */ -tVAddr MM_MapTemp(tPAddr PAddr) +void * MM_MapTemp(tPAddr PAddr) { int i; @@ -999,7 +999,7 @@ tVAddr MM_MapTemp(tPAddr PAddr) INVLPG( TEMP_MAP_ADDR + (i << 12) ); //LEAVE('p', TEMP_MAP_ADDR + (i << 12)); Mutex_Release( &glTempMappings ); - return TEMP_MAP_ADDR + (i << 12); + return (void*)( TEMP_MAP_ADDR + (i << 12) ); } Mutex_Release( &glTempMappings ); Threads_Yield(); // TODO: Use a sleep queue here instead @@ -1010,9 +1010,9 @@ tVAddr MM_MapTemp(tPAddr PAddr) * \fn void MM_FreeTemp(tVAddr PAddr) * \brief Free's a temp mapping */ -void MM_FreeTemp(tVAddr VAddr) +void MM_FreeTemp(void *VAddr) { - int i = VAddr >> 12; + int i = (tVAddr)VAddr >> 12; //ENTER("xVAddr", VAddr); if(i >= (TEMP_MAP_ADDR >> 12))