#include <ubixos/sched.h> #include <mm/vmm.h> mMap *mmFreePages; mMap *mmUsedPages; void * mmGetFreeVirtualPage(kTask_t *task) { mMap *tmp; /* remove the first free entry from the free pages list */ tmp = mmFreePages->First; mmFreePages->First = mmFreePages->First->Next; mmFreePages->First->Previous = NULL; /* add the free entry to the task's pages list */ tmp->Next = NULL; tmp->Previous = task->LastPage; /* TODO: assign virtual addresses */ task->LastPage = tmp; return tmp; }