Age | Commit message (Collapse) | Author | |
---|---|---|---|
2021-08-09 | move the x86 port io code to a separate file | dzwdz | |
2021-08-09 | hide the QEMU window, since serial made it mostly useless | dzwdz | |
2021-08-09 | print the boot heart on both VGA and serial | dzwdz | |
2021-08-09 | vga tty: vga_putchar is now static | dzwdz | |
2021-08-09 | implement serial output | dzwdz | |
2021-08-09 | rename `log_` to `tty_`, `tty_` to `vga_` | dzwdz | |
2021-08-09 | move all the tty stuff to a tty directory | dzwdz | |
2021-08-09 | silence the QEMU debug output | dzwdz | |
i'm using bochs for debugging now anyways, and this will be useful for serial output | |||
2021-08-09 | a sloppy implementation of path_simplify() | dzwdz | |
it's kinda bad. it passes the tests, though... | |||
2021-08-08 | path_simplify now returns int, has better tests | dzwdz | |
2021-08-08 | Merge branch 'main' of github.com:dzwdz/camellia | dzwdz | |
2021-08-07 | build all parts of the toolchain to the same $PREFIX | dzwdz | |
If gcc is built with a different $PREFIX than binutils, it won't even attempt using them - it will use the system assembler instead, which fails for obvious reasons. | |||
2021-08-06 | a (seemingly broken) gcc build script | dzwdz | |
It compiles, but the resulting gcc binary doesn't actually work. Maybe it's too new for the binutils? | |||
2021-08-06 | quit the binutils build script if an error occurs | dzwdz | |
2021-08-05 | add a script which builds i686-elf-binutils | dzwdz | |
2021-08-04 | partial path_simplify implementation | dzwdz | |
it currently only checks if the path is valid, it's the bare minimum needed to write tests | |||
2021-08-04 | rename TEST_IF to TEST_COND | dzwdz | |
i'll be adding a TEST_STR macro soon, so TEST_COND makes more sense | |||
2021-08-03 | remove the dummy kernel test | dzwdz | |
what's the point, we have real tests now | |||
2021-08-03 | fix inconsistent semicolons | dzwdz | |
2021-08-03 | kernel: implement static_strcmp() | dzwdz | |
will be used to test functions operating on strings | |||
2021-08-03 | kernel: implement memcmp | dzwdz | |
2021-08-03 | a bad testing framework | dzwdz | |
2021-08-03 | put the NUM2STR macro in util.h | dzwdz | |
i'll use it outside of panic.h | |||
2021-07-31 | fix formatting in github's viewer thingy | dzwdz | |
2021-07-31 | draft out a simple overview of the VFS | dzwdz | |
i'm a terrible writer | |||
2021-07-31 | try documenting the syscalls (and fail badly) | dzwdz | |
2021-07-31 | change the syscall naming convention; same one in kernel and userland | dzwdz | |
2021-07-31 | kmalloc() and kfree() stubs | dzwdz | |
2021-07-26 | rename process_new() to process_seed() | dzwdz | |
it's only meant to create the root process, the old name could've been misleading | |||
2021-07-26 | exit() now switches to the first running process | dzwdz | |
i used a linked list because it's the simplest way to implement this | |||
2021-07-26 | fork() pt 1: cloning process memory | dzwdz | |
2021-07-26 | mark sc_exit() as noreturn | dzwdz | |
gets rid of the double panic() call | |||
2021-07-25 | print a heart on boot | dzwdz | |
2021-07-24 | fix some warnings | dzwdz | |
2021-07-24 | make the Makefile show almost nothing except warnings/errors | dzwdz | |
2021-07-24 | simplify the struct copy in sysexit() | dzwdz | |
2021-07-24 | sysenter: save the registers into _sysexit_regs, makes the code cleaner (imo) | dzwdz | |
2021-07-24 | merge the `register` and `register_pushad` structs | dzwdz | |
2021-07-24 | sysexit() now overrides all registers | dzwdz | |
when doing anything more complex than starting a new program, you pretty much need to pass a full register dump. otherwise stuff will break | |||
2021-07-24 | remove sysenter_setup from arch/generic.h - it's not even used | dzwdz | |
2021-07-24 | save all registers on syscalls | dzwdz | |
2021-07-23 | add a barebones exit() syscall | dzwdz | |
2021-07-23 | update the process' EIP/ESP when it syscalls | dzwdz | |
2021-07-22 | don't map the VGA console buffer in user processes | dzwdz | |
2021-07-22 | disable paging when handling interrupts | dzwdz | |
The kernel code assumes that paging is always disabled. I've also added a bit of comments to the assembly / ruined the git blame. | |||
2021-07-22 | implement the debuglog() syscall | dzwdz | |
2021-07-21 | syscall parameter & return value passing | dzwdz | |
Sadly, sysenter on i386 limits me to only 4 arguments (so, 1 for the syscall id + 3 real args). If that turns out to be an issue I'll either just switch to interrupts, or switch to x64. | |||
2021-07-21 | barebones syscall | dzwdz | |
2021-07-21 | fix init stack alignment | dzwdz | |
2021-07-21 | fix sysenter()'s stack argument | dzwdz | |
It was taken from the wrong place - also I don't think that functions should change their EIP in the first place? |