#ifdef CHANGED #include "bitmap.h" #include "pageprovider.h" #include "system.h" PageProvider::PageProvider(int n) { DEBUG ('p', "PageProvider constructor, pages: %i\n", n); page = new BitMap(n); page->Mark(0); } PageProvider::~PageProvider(){ delete page; } int PageProvider::GetEmptyPage() { int newPage = page->Find(); if(newPage == -1) return -1; memset(machine->mainMemory+newPage * PageSize, 0, PageSize); DEBUG ('p', "PageProvider: GetEmpryPage() allocated page: %i\n", newPage); return newPage; } void PageProvider::ReleasePage(int n) { DEBUG ('p', "Release page: %d\n", n); page->Clear(n); } int PageProvider::NumAvailPage() { return page->NumClear(); } #endif //CHANGED