work on page loading

This commit is contained in:
2026-02-10 16:18:19 +01:00
parent 0521c9c1ec
commit 67291f7f19
8 changed files with 96 additions and 30 deletions

View File

@@ -50,11 +50,16 @@ Application apps[NUM_APPS];
// Main function
extern "C" int main() {
PageFrameAllocator::stats();
memset(&paging_tree, 0, sizeof(four_lvl_paging_t));
create_basic_page_table((uintptr_t)&paging_tree);
create_basic_page_table(&paging_tree);
load_cr3((void*)&paging_tree.l4);
Multiboot::Module* initrd = Multiboot::getModule(0);
DBG << "initrd address: " << hex << initrd->getStartAddress() << endl << "initrd size: " << initrd->getSize() << endl;
memcpy((void *)0x4000000, initrd->getStartAddress(), initrd->getSize());
tout.reset();
tout.setPos(33, 0);
tout << OS_NAME << " (2.x)" << flush;
@@ -77,9 +82,14 @@ extern "C" int main() {
// Enter Level 1/2
Guarded g = Guard::enter();
for (uint32_t i = 0; i < NUM_APPS; ++i) {
g.vault().scheduler.ready(&(apps[i]));
}
for(void* p=Multiboot::getModule(0)->getStartAddress(); p<Multiboot::getModule(0)->getEndAddress(); p=(void*)((uintptr_t)p+4096)){
DBG << "module at: " << hex << p << endl;
g.vault().scheduler.ready(new Thread(false, p));
}
//for (uint32_t i = 0; i < NUM_APPS; ++i) {
// g.vault().scheduler.ready(&(apps[i]));
//}
//g.vault().scheduler.ready(&kapp);