Age | Commit message (Collapse) | Author |
|
The kernel can't use the limited paging tables of user processes.
Alternatively, sysenter could accept a parameter with a new cr3. That
would allow/require using paging in the kernel - so I'll switch to it
later, but I want to get other stuff done first.
|
|
it's pretty useful, so it makes sense to define it alongside PAGE_SIZE
|
|
|
|
|
|
|
|
|
|
|
|
|
|
stack_top got changed into a char, because `extern void` isn't even
valid. others are self-explanatory
|
|
|
|
|
|
|
|
not meant to be in the main tree, included for completeness
|
|
i guess that i can include this for completeness. if not for the awful
pointer printing thingy this could probably get into the main version.
TODO?
|
|
This loads a file from the boot disk into memory. Currently it just gets
printed, but it's going to become a real executable soon.
|
|
|
|
|
|
thanks to this, i can specify the region where the bss is - so GRUB
won't place any boot modules there
|
|
Now, the kernel only interfaces with the architecture dependent stuff
via functions declared in generic.h. I'll write a linter enforcing this
soon.
|
|
|
|
IMO it's cleaner this way.
I wanted to put it just under 1M, but it turns out that it isn't
accessible at boot in QEMU.
|
|
The idea is that src/kernel/ is only allowed to interface with the
hardware using whatever's defined in src/arch/generic.h. I'll probably
write a small script for checking this later on.
This is a giant commit so I've probably fucked something up. It boots
fine on Bochs and QEMU, so at least there's that.
|
|
|