Newer
Older
ubixos-old / src / sys / mm / pagefault.c
#include <mm/vmm.h>
#include <ubixos/sched.h>
#include <ubixos/kpanic.h>

void LoadPageIntoMemory(mMap *page);

void mm_pageFault(uInt32 memAddr, uInt32 eip, uInt32 esp)
{
	/* WARNING: this is not SMP safe to use _current! */
	kTask_t *tmp = _current;
	mMap *m = tmp->FirstPage;

	kprintf("Page fault! woop\n");

	for( ; m != NULL ; m = m->Next)
	{
		if(m->pageAddr == memAddr)
		{
			LoadPageIntoMemory(m);
			return;
		}
	}
	kpanic("pagefault: Requested a page which does not exist\n");
	
}

void LoadPageIntoMemory(mMap *page)
{
	/* Load page->physicalAddr */
	return;
}