Commit graph

18 commits

Author SHA1 Message Date
fef
582758e868
x86: add atomic primitives 2021-10-16 03:27:53 +02:00
fef
b2fccf1ecd
sched: add base for scheduling and task switching 2021-10-15 00:01:47 +02:00
fef
14e673b8dd
x86: fix page allocator once and for all 2021-10-14 21:06:40 +02:00
fef
65899b35f1
x86: minor page management refactor
Even Uranium-223 ages better than my code
2021-10-13 20:55:35 +02:00
fef
e14bc3ce1e
x86: inline x86_io_wait() 2021-10-12 23:25:11 +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
afbb3743d5
refactor type and cdefs headers 2021-10-12 01:31:49 +02:00
fef
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)
2021-10-10 05:41:16 +02:00
fef
4679b7cee5
x86: add irq support 2021-10-07 19:16:21 +02:00
fef
89f3393b8b
x86: move page fault handler to where it belongs 2021-10-05 01:09:13 +02:00
fef
bc917d8651
x86: inline I/O port functions 2021-10-04 05:56:44 +02:00
fef
d69fd0d2aa
x86: refactor traps, add register dump support 2021-10-04 05:55:03 +02:00
fef
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 :)
2021-10-02 00:08:54 +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
3d6258a06e
mm: implement runtime page mapping 2021-09-23 20:51:12 +02:00
fef
d436d9b203
mm: add page frame allocator 2021-09-21 18:25:54 +02:00
fef
25e00354ec
x86/boot: move multiboot code to arch 2021-09-20 17:59:15 +02:00