summaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2021-08-22kernel: implement assertdzwdz
2021-08-22await() 2: pass the exit messagedzwdz
2021-08-18await() 1: wait for child to die, without message passingdzwdz
The length is a int, because the syscall will have a signed output. A negative return value will mean an error (such as when it gets called by a childless process).
2021-08-18"fix" _tty_hex and _tty_vardzwdz
well i guess it compiles now
2021-08-18processes now store a PID for debugging purposesdzwdz
2021-08-18fork(): store information about the parent toodzwdz
2021-08-18fork() now has a return value; you can tell the child and parent apartdzwdz
2021-08-18rename process_clone to process_forkdzwdz
2021-08-18store the processes as a tree instead of a listdzwdz
I'm about to need that for waits(). There's no single list of processes for simplicity's sake, but the search will now be even slower and it might even introduce a potential vuln! How fun! Someone could override stuff in .bss with random values. I'll either make gcc check if it hasn't gone past the end of the stack, or turn this into a non recursive function.
2021-08-17draft some of the spec for the new filesystem ideadzwdz
2021-08-14init: add multipageify(), so i can test virt_iter in an simpler waydzwdz
2021-08-12init: preserve registers in _syscall()dzwdz
2021-08-11abstract out iterating over virtual memorydzwdz
most syscalls will have to do this to copy memory around or whatever. it's pretty ugly too, but i can't come up with a better abstraction...
2021-08-11read _syscall_debuglog arguments across page boundariesdzwdz
2021-08-10fix typo referring to unexistent functiondzwdz
2021-08-10statically assert that the pointer size == 4 bytesdzwdz
2021-08-09move the x86 port io code to a separate filedzwdz
2021-08-09hide the QEMU window, since serial made it mostly uselessdzwdz
2021-08-09print the boot heart on both VGA and serialdzwdz
2021-08-09vga tty: vga_putchar is now staticdzwdz
2021-08-09implement serial outputdzwdz
2021-08-09rename `log_` to `tty_`, `tty_` to `vga_`dzwdz
2021-08-09move all the tty stuff to a tty directorydzwdz
2021-08-09silence the QEMU debug outputdzwdz
i'm using bochs for debugging now anyways, and this will be useful for serial output
2021-08-09a sloppy implementation of path_simplify()dzwdz
it's kinda bad. it passes the tests, though...
2021-08-08path_simplify now returns int, has better testsdzwdz
2021-08-08Merge branch 'main' of github.com:dzwdz/camelliadzwdz
2021-08-07build all parts of the toolchain to the same $PREFIXdzwdz
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-06a (seemingly broken) gcc build scriptdzwdz
It compiles, but the resulting gcc binary doesn't actually work. Maybe it's too new for the binutils?
2021-08-06quit the binutils build script if an error occursdzwdz
2021-08-05add a script which builds i686-elf-binutilsdzwdz
2021-08-04partial path_simplify implementationdzwdz
it currently only checks if the path is valid, it's the bare minimum needed to write tests
2021-08-04rename TEST_IF to TEST_CONDdzwdz
i'll be adding a TEST_STR macro soon, so TEST_COND makes more sense
2021-08-03remove the dummy kernel testdzwdz
what's the point, we have real tests now
2021-08-03fix inconsistent semicolonsdzwdz
2021-08-03kernel: implement static_strcmp()dzwdz
will be used to test functions operating on strings
2021-08-03kernel: implement memcmpdzwdz
2021-08-03a bad testing frameworkdzwdz
2021-08-03put the NUM2STR macro in util.hdzwdz
i'll use it outside of panic.h
2021-07-31fix formatting in github's viewer thingydzwdz
2021-07-31draft out a simple overview of the VFSdzwdz
i'm a terrible writer
2021-07-31try documenting the syscalls (and fail badly)dzwdz
2021-07-31change the syscall naming convention; same one in kernel and userlanddzwdz
2021-07-31kmalloc() and kfree() stubsdzwdz
2021-07-26rename process_new() to process_seed()dzwdz
it's only meant to create the root process, the old name could've been misleading
2021-07-26exit() now switches to the first running processdzwdz
i used a linked list because it's the simplest way to implement this
2021-07-26fork() pt 1: cloning process memorydzwdz
2021-07-26mark sc_exit() as noreturndzwdz
gets rid of the double panic() call
2021-07-25print a heart on bootdzwdz
2021-07-24fix some warningsdzwdz