Commit Graph

26 Commits

Author SHA1 Message Date
Matheus 49fd56a28a code cleanup
made setpage() use the next() function
2022-07-27 21:10:02 -03:00
Matheus 605c87e85f arch_mmu_unmap() 2022-07-27 20:50:42 -03:00
Matheus ed866b05a9 vmm_cacheheader firstfree
keep track of the first free entry of each cache to make searching quicker
2022-07-27 20:44:34 -03:00
Matheus 940c39c0de finish the vmm 2022-07-27 20:31:56 -03:00
Matheus f1d3126990 Add a WIP VMM
As of now the VMM (pretty much a doubly linked list of regions) supports allocating and demand paging. still no deallocation though so if you allocate something you can't free it yet :')
2022-07-27 00:39:55 -03:00
Matheus 4ea2880817 Organise the tree better 2022-07-25 22:22:22 -03:00
Matheus 81d7e7e84f pmm_hhdmfree()
we had a pmm_hhdmalloc() but not a pmm_hhdmfree(), so that interface function is now implemented
2022-07-25 22:15:40 -03:00
Matheus b183e72e2a background for limine 2022-07-25 22:14:19 -03:00
Matheus a4f7c23202 updated limine config to make things prettier 2022-07-25 22:13:25 -03:00
Matheus 7cb207d0c3 map kernel pdpts at arch_mmu_init() 2022-07-24 20:46:59 -03:00
Matheus 607b82ed6c change pointers used in function calls
change from void* to cls_t* as it makes more sense to be this way
2022-07-24 18:09:25 -03:00
Matheus 5213654224 x86_64 four level paging 2022-07-24 17:40:02 -03:00
Matheus cd8d7dd227 fix small colour issue 2022-07-24 17:39:02 -03:00
Matheus ecf639e30a fix more glitches with the pmm 2022-07-23 21:11:34 -03:00
Matheus 2d7dca8b8a pmm changes 2022-07-23 19:16:59 -03:00
Matheus 4d0d6347ad finish pmm 2022-07-23 13:52:09 -03:00
Matheus 1a509d02cf pmm stub 2022-07-23 01:06:12 -03:00
Matheus 21f353778d spinlock change
add a pause instruction in order to not completely demolish the system bus in a lock
2022-07-23 00:13:01 -03:00
Matheus 33adf7036b remove unused code 2022-07-22 21:30:06 -03:00
Matheus 8f24f480b1 spinlocks 2022-07-22 18:30:13 -03:00
Matheus 7590d01d91 remove some warnings
gcc was rightfully complaining about a lack of functio ndefinitions related to initialising the bsp's idt and gdt
2022-07-22 18:27:03 -03:00
Matheus f6f6f650da x86_64 port IO
Added byte port IO with outb() and inb()
2022-07-22 17:58:26 -03:00
Matheus 9e3ac64248 More debugging to _panic()
Added a stack trace and a register dump
2022-07-22 17:04:13 -03:00
Matheus cae7428ed0 Panic and interrupts
Added a basic kernel panic function and interrupt support for x86_64 (mostly for exception handling)
2022-07-22 00:34:44 -03:00
Matheus d13f17b509 gdt fixes
some values being put into entries were wrong
2022-07-22 00:26:31 -03:00
Matheus b44469a3e1 Initial commit 2022-07-21 22:50:12 -03:00