16 Commits (f8a85a154130b2c4007f11766d247fc44aafabbd)

Author SHA1 Message Date
anna f8a85a1541
happy new year 2022 uwu
May it be slightly less exhausting than 2021.
2 years ago
anna 36d53093d4
ktrace: don't unwind past ISR entry points 3 years ago
anna d19e665d47
mm: generalize boot allocator
The boot page frame allocator is now architecture
independent.
This is part 2 of the mm subsystem refactor.
3 years ago
anna 7285c2e076
mm: refactor entire mm subsystem, part 1
Another one of those larger endeavours that take
multiple commits.  This first one introduces the
basic vm_page data structure, as well as the x86
bootstrap code for initializing it.
3 years ago
anna 5a5135f416
update license terms
As of now, everything except the code imported
from FreeBSD is proprietary.  Of course, it won't
be like this for long, only until we have decided
which license we like to use.  The rationale is
that releasing everything under a copyleft license
later is always easier than doing so immediately
and then changing it afterwards.
Naturally, any changes made before this commit are
still subject to the terms of the CNPL.
3 years ago
anna ebce7b8e83
mutex: fix lock race conditions 3 years ago
anna b6385aea0a
panic: move to separate file, add KASSERT macro 3 years ago
anna 24c6e9504d
add kernel panic utility
This also includes some minor rearrangements in
terms of which header files define what.
3 years ago
anna afbb3743d5
refactor type and cdefs headers 3 years ago
anna 0f9e9f91a6
libc: port FreeBSD string library routines
Oh my fucking god this was by far the most awful
and boring and tedious day in my entire life.

Also, dear FreeBSD people: please don't sue me.
I tried really hard to comply with all the
copyright stuff, but it is absolutely possible i
made a mistake.  Just DM me and i'll do everything
in my power to fix it, even if that means
releasing entire portions of GayBSD under the BSD
license.  I don't care, i just want stuff to work.

(i'm including this message to use it as possible
evidence in case i get sued to show my good will)
3 years ago
anna 4679b7cee5
x86: add irq support 3 years ago
anna d475429639
kprintf: implement "full" format sequence support
So this was painful.  kprintf() supports most of
the format specifiers from BSD now, except for the
$ sequence.  It has gotten a general overhaul and
is significantly more sophisticated, bloated and
slower now.  There is also some minor stuff i
forgot about, like the 't' length modifier, but
that isn't so important right now and will be
fixed later(TM).
3 years ago
anna 613c28a965
x86: add basic interrupt support
This commit also fixes the fun little size bug in
segment.S where i subtracted the end from the
start address of the GDT instead of the other way
round which resulted in a gigantic overflow :)
3 years ago
anna 8129518640
mm: replace GRUB's GDT with our own 3 years ago
anna 2a0ed8121a
util: refactor misc utility stuff 3 years ago
anna 89e7a4eb47
clist: add circular list api 3 years ago