aboutsummaryrefslogtreecommitdiff
path: root/common/uapi
AgeCommit message (Collapse)Author
2022-10-21beautificationKimplul
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-14add spawn syscallKimplul
+ Prefer over unixy fork/exec for speed since I don't want to support cow. Shell redirection should be done with env server and cooperating libc.
2022-10-14remove references to cowKimplul
+ Skip cow for now, maybe implement later but try to keep things simple.
2022-09-23add notify_state to tcbKimplul
2022-09-23remove user data from sys_ipc_notifyKimplul
+ Multiple notify signals at the same time, or queued ones waiting for ipc_req/fwd to finish would require a notify stack of some kind, which is maybe too complex for my liking. Not impossible by any means, but I want to keep things simple. Let's say a client wants the server to do some async operation. First, the client calls ipc_req to inform the server that it would like the operation to be done. The server sets this task in some work queue or whatever, and returns to the client as quickly as possible. Later on, when the task is finished, the server does a ipc_req to the client, with data about what was just finished. The client is responsible for noting this data down somewhere, either reacting to the operation directly in the callback, or calling ipc_notify to the thread that requested the operation. Other possible notifications at the same time should be handled at the same time, whichever way the client wants to handle them. Note that ipc_notify triggers only when the thread it targets is in its base state, i.e. not doing an ipc_req. This makes things a bit easier.
2022-09-22add assign syscall skeletonKimplul
2022-09-20add notify syscall skeletonKimplul
+ Now to actually start implementing shit. :)
2022-09-20add capability subsystem and syscallsKimplul
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-06-16small changed to formattingKimplul
2022-06-12fix compilation errorsKimplul
2022-06-12doxygen shows no warningsKimplul
+ Does not mean documentation is done, but it's a nice little achievement nonetheless.
2022-06-12add license textsKimplul
2022-06-11continue documentationKimplul
2022-06-11continue documentationKimplul
2022-06-09use doxygen todoKimplul
2022-06-09continue documentationKimplul
2022-05-28continue documenting sourceKimplul
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-28add sys_fwd and remove sys_req_*Kimplul
2022-05-24make process loading more genericKimplul
2022-05-24change bit utils to not be __*Kimplul
2022-05-24initial musings about execKimplul
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-23rename sys_switch to sys_swapKimplul
2022-05-22add @file info to all filesKimplul
+ Next step, start documenting contents of each file.
2022-05-22improved tcb handling in preparation for processesKimplul
2022-05-21add create syscall for threadsKimplul
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-12initial workings of shared memoryKimplul
+ Should document this better but essentially a server requests a shared buffer, and chan then share this buffer to a thread. Freeing the buffer is done through normal means. MR_SHARED is used for buffers that are shared, and MR_OWNED tells whoever is freeing that region that it is allowed to free the physical memory behind the shared buffer.
2022-05-09improve uapiKimplul
2022-05-05riscv64 boots with clang (sort of)Kimplul
2022-04-29continue building base for irq handlingKimplul
2022-04-23ran clang-formatKimplul
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 clang format and run itKimplul
2022-01-07Improved header dependency treeKimplul
2022-01-06Jump back to kernelspace testedKimplul
+ Added automated categories to debugging, bug/info/warn/error etc. Now I should just try to use them here and there :D
2021-12-29RefactoringKimplul
+ Mainly just moving stuff out or arch/riscv/ that should be handled in common/ + Prepared separate process stack/call stack for server callbacks, rest to be implemeted soon ish
2021-12-27Started work on syscallsKimplul