#ifndef _VMM_H
#define _VMM_H

#include <ubixos/types.h>
#include <mm/paging.h>

typedef struct _mMap mMap;
struct _mMap
{
	uInt32		pageAddr;	/* same as physicalAddr for kernel */
	uInt32  	physicalAddr;
	mMap		*Link;		/* the next contiguous block of memory */
	mMap 		*First;
	mMap 		*Last;
	mMap 		*Next;
	mMap 		*Previous;
};

int		numPages;
uInt32		freePages;
uInt32		usedPages;
mMap            *mmFreePages; 
uInt32		kernelPageDirectory;
void  _vmm_pageFault();
int vmm_init();
int vmmMemMapInit();
  
#endif
