summaryrefslogtreecommitdiff
path: root/src/kernel/mem
AgeCommit message (Collapse)Author
2023-01-25style: typedef structs, shorter namespacesdzwdz
I've wanted to do this for a while, and since I've just had a relatively large refactor commit (pcpy), this is as good of a time as any. Typedefing structs was mostly inspired by Plan 9's coding style. It makes some lines of code much shorter at basically no expense. Everything related to userland kept old-style struct definitions, so as not to force that style onto other people. I also considered changing SCREAMING_ENUM_FIELDS to NicerLookingCamelcase, but I didn't, just in case that'd be confusing.
2023-01-25kernel/virt: replace the virt_cpy api with a more foolproof onedzwdz
2022-09-01kernel: add a debug print for the amount of used memorydzwdz
2022-08-19kernel: kzallocdzwdz
2022-08-15kernel: combine kmain_early and kmaindzwdz
2022-08-15kernel: port to multiboot2dzwdz
2022-08-06kernel/mem: cache the potential location of the first free pagedzwdz
~3x speedup in tests
2022-08-06kernel/mem: make the page bitmap cover everything after bssdzwdz
2022-08-04do some simple TODOs, organize the rest; general code maintainancedzwdz
2022-08-01amd64: /video/b device, provided by grubdzwdz
2022-07-26shared: move some headers from shared/ to camellia/dzwdz
2022-07-20user/elf: free memory not belonging to the elf when jumping to itdzwdz
2022-07-17kernel/virt_cpy: error struct, better error handlingdzwdz
2022-07-16amd64: just enough paging support to map initdzwdz
2022-06-30kernel: get lint to shut up about undeclared variablesdzwdz
2022-05-15kernel/mem: remove virt_cpy2kmallocdzwdz
2022-05-05kernel: each driver registers its own mountsdzwdz
2022-05-04kernel: refcount vfs_backenddzwdz
what a mess
2022-05-03kernel/alloc: expose kmalloc_sanitydzwdz
2022-05-03kernel/alloc: print who allocated unfreed memory on shutdowndzwdz
2022-05-03kernel/alloc: display details about all the unfreed memory on shutdowndzwdz
2022-05-03kernel/alloc: kfree() now actually frees memorydzwdz
2022-04-14kernel: port init's `printf` implementationdzwdz
2022-04-14kernel: basic page allocator, `process_free`dzwdz
2021-11-14shared: use a single implementation of mem* functions everywheredzwdz
2021-11-03kernel: implement virt_cpy2kmallocdzwdz
2021-09-22kfree: detect double freesdzwdz
2021-09-22kfree: check for a magic value before freeing to detect invalid freesdzwdz
2021-09-21start using sparse's `-Wnon-pointer-null`dzwdz
While I personally don't see a reason to use NULL instead of 0, I assume that whoever made that a sparse default knew what they were doing.
2021-09-21implement (safe) min/max macrosdzwdz
2021-09-21add `__force` for marking casts across adress spacesdzwdz
2021-09-19show the malloc balance on halt; remove a bad kfree() calldzwdz
the kfree() call was freeing a buffer which was inside a process struct
2021-09-18merge `kernel/types.h` and `init/types.h`dzwdz
2021-09-12make the inline functions staticdzwdz
otherwise this doesn't compile with -O0
2021-09-11add some helper functions for copying between virtual and physical memorydzwdz
this was already possible, but now it's slightly safer
2021-09-11replace `user_ptr` with a linux-style `__user` annotationdzwdz
2021-09-05fix some warningsdzwdz
2021-09-05rename virt_user_cpy to virt_cpy, since it's no longer limited to virtual memorydzwdz
2021-09-05make virt_iter support iterating over physical memory toodzwdz
2021-09-05move most of the memory stuff to kernel/mem/dzwdz