Commit Graph

48 Commits

Author SHA1 Message Date
Matheus 947f4b4a06 initrd stub 2022-08-03 23:38:56 -03:00
Matheus 6ae75a9e99 create and mkdir funcs
file and directory creation functions for both the vfs and tmpfs
2022-08-03 22:05:11 -03:00
Matheus 2419b2e9e0 vfs filesystem mounting 2022-08-02 22:14:32 -03:00
Matheus 8d90e27f15 hashtable entrycount 2022-08-02 21:44:27 -03:00
Matheus 3653e01505 hashtable_set() 2022-07-31 14:18:13 -03:00
Matheus 151235694d VFS stub 2022-07-30 22:51:07 -03:00
Matheus 0fcb602574 hashtable_destroy() 2022-07-29 21:04:44 -03:00
Matheus f8d0c13520 hashtables 2022-07-29 18:27:50 -03:00
Matheus a398c0b523 fix weird git bug 2022-07-29 17:05:36 -03:00
Matheus f58b65c612 comment 2022-07-29 14:51:07 -03:00
Matheus 61d1e17599 Initial slab implementation 2022-07-29 14:42:06 -03:00
Matheus a316d054f5 Unify the arch_regs structs
I was doing something stupid and keeping a separate version for the cpu registers. oh well, I fixed it now
2022-07-29 09:40:49 -03:00
Matheus f508798638 Create LICENSE 2022-07-27 22:51:47 -03:00
Matheus eb043d8dd3 Rename README 2022-07-27 22:48:12 -03:00
Matheus d10874a0bc Add README 2022-07-27 22:42:46 -03:00
Matheus c4a9e3a3fe remove TODO comment 2022-07-27 22:27:12 -03:00
Matheus 0f1222dd6d move spinlock.h
the implementation is more arch specific than anything. it has been placed under arch/include
2022-07-27 22:17:24 -03:00
Matheus 7bdacfbd7a add an ist to the bsp's gdt 2022-07-27 22:08:16 -03:00
Matheus 98bffdc753 remove TODO comment 2022-07-27 22:06:36 -03:00
Matheus b8b620bf1f uncomment code
it was commented for debugging and I forgot to uncomment it
2022-07-27 22:04:44 -03:00
Matheus 5decee2f70 remove some testing code I forgor about 2022-07-27 22:03:46 -03:00
Matheus 1919b38a64 Support lower half addresses on the VMM 2022-07-27 22:03:10 -03:00
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