Commit graph

12 commits

Author SHA1 Message Date
fef
b6385aea0a
panic: move to separate file, add KASSERT macro 2021-11-01 23:54:55 +01:00
fef
6d0950501c
page: ensure early page mapping doesn't fail
Up to now, the page frame allocator's
initialization routine relied on the fact that
map_page() never needs to get new pages on i386 if
the mapped page is a hugepage.  This is not at all
true on other architectures, however.
2021-10-29 00:23:30 +02:00
fef
2b3eaf4ff7
mm: add basic slab allocator
This still needs some work and integration into
kmalloc() but hey i've tested it and it doesn't
immediately fall apart so why not commit it
2021-10-24 05:36:46 +02:00
fef
743424d15f
mm: fix page frame allocator bugs
This also includes a minor refactor of everything,
as well as some optimizations.  The bitmap
operations have been moved into a separate file
because they are probably gonna come in handy in
other parts of the system as well.
2021-10-23 00:56:49 +02:00
fef
96378f019c
kmalloc: add shiny new buddy page frame allocator
This is still kind of a work in progress because
it will be the backend to a slab allocator, which
in turn is managed by kmalloc().
2021-10-22 06:22:38 +02:00
fef
c911ff9009
x86/mm: add huge page support
This is part of a series of commits where i
completely rewrite kmalloc() because it needs to
be able to return physically contiguous memory for
DMA operations.
Yes, i know the build isn't working right now.
2021-10-17 01:09:51 +02:00
fef
904584ccc0
libc: refactor a couple of string routines
This is just a minor overhaul of several utility
functions, in part because it kept bothering me
and in part because i was bored.
2021-10-12 23:24:17 +02:00
fef
16b6924beb
kmalloc: fix comments affected by auto rename
Just VS Code things
2021-10-04 05:56:11 +02:00
fef
347bb5cc9c
kmalloc: bugfixes and performance improvements 2021-09-30 00:32:07 +02:00
fef
5c0fa715a4
kmalloc: add actual memory allocator
Now that memory allocation finally kind of works,
we can finally start focusing on the core system
architecture.  This commit also fixes some bugs in
get_page() and friends, as well as performance
improvements because the page map is addressed as
unsigned longs rather than individual bytes.
2021-09-29 01:10:41 +02:00
fef
8129518640
mm: replace GRUB's GDT with our own 2021-09-28 00:48:19 +02:00
fef
d436d9b203
mm: add page frame allocator 2021-09-21 18:25:54 +02:00