aboutsummaryrefslogtreecommitdiff
path: root/arch
AgeCommit message (Collapse)Author
2022-10-21initial implementation of swapKimplul
+ Slightly unsure if it should be a syscall, or if assign would be enough. Also, which thread should run in a fork/spawn? For now, old thread, though this might increase latency. Or add swap flag to these calls?
2022-10-21initial spawn implementationKimplul
2022-10-21slight optimisation to cur_tcb on riscvKimplul
2022-09-15change syscalls to take 5 params and return 6Kimplul
+ In total, a syscall is built up of 6 values, with the first being the syscall number. Symmetrically, the first value is now a status and the following five values return "values". This allows us to cram in more info into the ipc_* functions. The performance difference is absolutely minimal, at least from my testing in qemu.
2022-09-15add SYS_TICKSKimplul
2022-09-14add putch syscall for easier userspace debuggingKimplul
+ Note that it is NOT intended for end user usage, just for debugging.
2022-09-14add canary to kernel stackKimplul
2022-09-14riscv32 boots and advances as far as riscv64Kimplul
2022-09-11change external directory structureKimplul
+ Prepare for possibly testing rv32 + Also remove newline from debugging output
2022-09-11allow building with riscv64-linux-gnuKimplul
+ May warn about PHDR not being in LOAD, there is a flag to silence it (--no-warn-rwx-segment) but it doesn't seem to exist in riscv64-unknown-elf for some reason.
2022-09-02reserve more space for fwKimplul
+ Doesn't seem to be specified anywhere, but I'll stick with 2MB for now, working on the assumption that the FW is at the start of the physical RAM. Possible TODOs: generate apos.its automatically from init.elf, allocate root_branch statically?
2022-09-02fix documentation warningsKimplul
2022-06-12add license textsKimplul
2022-06-11continue documentationKimplul
2022-06-11fix ubsan warning in release modeKimplul
2022-06-11continue documentationKimplul
2022-06-09use doxygen todoKimplul
2022-06-09continue documentationKimplul
2022-05-29continue documentation effortsKimplul
2022-05-29modify formatting rulesKimplul
2022-05-29continue documentation efforts.Kimplul
2022-05-28continue documenting sourceKimplul
2022-05-28implement set_ipc on riscvKimplul
2022-05-28start implementing new proc/rpc handlingKimplul
+ Essentially, separate root process and remote procedure call handling. I really should write down some documentation so I don't forget, but essentially: All threads share a common process virtual memory, and when a thread wants to make an rpc, it switches over to its own rpc vmem space that is linked to the remote process.
2022-05-24make process loading more genericKimplul
2022-05-24initial musings about execKimplul
2022-05-23start writing documentationKimplul
2022-05-23modify file genKimplul
2022-05-23new include structure, make parse easier for doxyKimplul
2022-05-23switch from clang-format to uncrustifyKimplul
The output is close enough, and I like that uncrustify is a third-party tool, so people can install a single tool for formatting instead of having to lug around a whole toolchain. I fully expect to have to add settings to uncrustify.conf, but let's see how this goes.
2022-05-22fixed accidental removal of CLEANUP_CMDKimplul
2022-05-22add @file info to all filesKimplul
+ Next step, start documenting contents of each file.
2022-05-22rename vm_branch to vmemKimplul
+ Closer to what it's for rather than what it is.
2022-05-22improved tcb handling in preparation for processesKimplul
2022-05-21add status info to memory mappingsKimplul
+ next up would probably be to start working on process/thread relationships, largely as documented. Still not entirely sure about how I want to handle fork, but I suppose I might figure it out at some point.
2022-05-21implement timers betterKimplul
2022-05-09improve uapiKimplul
2022-05-05fix makefiles on netbsdKimplul
+ Doesn't quite compile all the way unfortunately, building the GNU toolchain on NetBSD is a bit more difficult than I was expecting. LLVM does compile, but fails to link for some reason.
2022-05-05riscv64 boots with clang (sort of)Kimplul
2022-04-29continue building base for irq handlingKimplul
2022-04-24fix rv32 compile errorsKimplul
2022-04-24start initial irq handlingKimplul
+ Still lots todo, and I'm not entirely sure how I should handle program space switches (mainly since the kernel uses the process' stack, maybe it shouldn't?)
2022-04-23ran clang-formatKimplul
2022-04-21fix warnings on 32bit riscvKimplul
+ Will most probably not work on 32bit, but nice to make 'portable' code.
2022-04-21use uint64_t for timer ticksKimplul
+ GCC seems to provide this even on 32bit platforms, though I should really check.
2022-04-21start working on timer subsysKimplul
2022-04-17expand sbi implementation a bitKimplul
2022-04-10add basic ubsan and fix issues reported by itKimplul
2022-04-10add clang format and run itKimplul
2022-03-01make vmflags_t 16 bitsKimplul
lower 8 bits are reserved for arch-specific flags (but at least read/write/execute) and higher 8 bits are metadata, currently only for VM_VIRTUAL (to be used when the backing physical memory shouldn't be freed)