Commit Graph

63 Commits

Author SHA1 Message Date
Matheus ab2bd69481 semaphores 2022-08-12 16:35:27 -03:00
Matheus c565bc006f apic ipis, scheduler stub, crappy and slow tlb shootdown 2022-08-09 23:53:39 -03:00
Matheus b2d8e5a166 devman initial implementation 2022-08-07 17:53:31 -03:00
Matheus 7ec69a219c devfs initial implementation 2022-08-07 17:33:49 -03:00
Matheus bdc19f90ef vfs and tmpfs read 2022-08-07 13:13:42 -03:00
Matheus 1a2486cadd scheduler timer
abstraction of a timer that is local to each cpu and is used for scheduling
2022-08-07 12:50:17 -03:00
Matheus 50243cc540 fix stupid pmm glitch and compilation failure 2022-08-07 00:36:50 -03:00
Matheus c94368bbc9 initial hpet support
for now only a few wait functions are supported
2022-08-06 23:57:10 -03:00
Matheus a69310a03c PCI enumeration 2022-08-06 21:34:52 -03:00
Matheus dee3fe16db initialise the APs 2022-08-06 16:33:14 -03:00
Matheus fa1b35bf18 basic apic + fix some stupid issues
created an initial stub implementation of the apic driver, added the madt to acpi, fixed an issue with the strncmp, made the pmm set only free pages rather than used ones
2022-08-05 23:33:54 -03:00
Matheus 592133af39 ACPI tables support
Added parsing for the (X)RSDT and RSDP, as well as table searching.
2022-08-05 17:27:14 -03:00
Matheus ea8f21fb71 add tmpfs writing, vfs node tree dumping and fix some stupid issues 2022-08-04 20:49:59 -03:00
Matheus 479c51ec52 Initrd parsing and more VFS funcs.
Finished the initrd_parse() function for now and added vfs_open(), vfs_close() and vfs_write()
2022-08-04 19:31:10 -03:00
Matheus 28710b6aa8 Fix a few issues
Panics in a few ISRs did not include registers. Removed a dot in panic string. Fixed an issue that would cause the system to page fault inside the vmm_dealwithrequest() function.
2022-08-04 19:28:20 -03:00
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