[GOOD] BUILD 0.1.0.551 DATE 9/03/2011 AT 9:25 AM
==================================================== Mainly changed: HAL.FSs + Updated 'mount' call in floppy driver, now done after controller is initialized + Added 'detect' function for FAT file systems + Implemented 'initdr' driver, however still bugged + Improved logger
This commit is contained in:
		@@ -17,7 +17,7 @@ PageDirectory* KernelDirectory;
 | 
			
		||||
 *******************************/
 | 
			
		||||
void PagingInitialize(uint32 kernel_used)
 | 
			
		||||
{
 | 
			
		||||
	LogMem("Virtual memory manager initialization started. End of kernel = 0x%x\n", kernel_used);
 | 
			
		||||
	Log("Mem", "Virtual memory manager initialization started. End of kernel = 0x%x\n", kernel_used);
 | 
			
		||||
	PageDirectory* kernelPd = (PageDirectory*) kmalloc_a(sizeof(PageDirectory));
 | 
			
		||||
	memset(kernelPd, 0, sizeof(PageDirectory));
 | 
			
		||||
 | 
			
		||||
@@ -28,12 +28,12 @@ void PagingInitialize(uint32 kernel_used)
 | 
			
		||||
	for (i = 0; i < kernel_used; i+=0x1000)
 | 
			
		||||
		MemPhAllocFrame(PagingGetPage(i, 1, kernelPd), 0, 0);
 | 
			
		||||
 | 
			
		||||
	LogMem("Identity mapped first 0x%x bytes.\n", kernel_used);
 | 
			
		||||
	Log("Mem", "Identity mapped first 0x%x bytes.\n", kernel_used);
 | 
			
		||||
 | 
			
		||||
	for (i = KERNEL_HEAP_START; i < KERNEL_HEAP_END; i+=0x1000)
 | 
			
		||||
		MemPhAllocFrame(PagingGetPage(i, 1, kernelPd), 1, 1);
 | 
			
		||||
 | 
			
		||||
	LogMem("Mapped kernel space.\n");
 | 
			
		||||
	Log("Mem", "Mapped kernel space.\n");
 | 
			
		||||
 | 
			
		||||
	PagingSwitchPageDirectory (kernelPd);
 | 
			
		||||
}
 | 
			
		||||
@@ -48,7 +48,7 @@ void PagingSwitchPageDirectory (PageDirectory* dir)
 | 
			
		||||
	cr0 |= 0x80000000;
 | 
			
		||||
	asm volatile ("mov %0, %%cr0":: "r"(cr0));
 | 
			
		||||
 | 
			
		||||
	LogMem("Enabled paging.\n");
 | 
			
		||||
	Log("Mem", "Enabled paging.\n");
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
Page* PagingGetPage(uint32 addr, uint8 make, PageDirectory* dir)
 | 
			
		||||
 
 | 
			
		||||
@@ -67,7 +67,7 @@ void MemPhAllocFrame(Page* page, uint8 isKernel, uint8 isWriteable)
 | 
			
		||||
 | 
			
		||||
	uint32 free = MemPhFindFreeFrame();
 | 
			
		||||
	if (free == 0xffffffff) {
 | 
			
		||||
		Panic("%#Failed allocation free=0x%x page=0x%x\n", ColorRed, free, *page);
 | 
			
		||||
		Panic("Mem", "%#Failed allocation free=0x%x page=0x%x\n", ColorRed, free, *page);
 | 
			
		||||
		return;
 | 
			
		||||
	}
 | 
			
		||||
	
 | 
			
		||||
@@ -94,7 +94,7 @@ void MemPhInitialize(uint32 SystemMemoryKb)
 | 
			
		||||
 | 
			
		||||
	FrameMap = (uint32*) kmalloc(sizeof(uint32) * (1 + (TotalFrames>>5)));
 | 
			
		||||
	memset(FrameMap, 0,  sizeof(uint32) * (1 + (TotalFrames>>5)));
 | 
			
		||||
	LogMem("%#Started physical memory manager ok!, found %ukb\n", ColorLightGreen, SystemMemoryKb);
 | 
			
		||||
	Log("Mem", "%#Started physical memory manager ok!, found %ukb\n", ColorLightGreen, SystemMemoryKb);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void MemPhReserveFrames (uint32 address, uint32 length)
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user