Hi Michael,
I'm not that much into the discussion, but I assume you are using the base-hw kernel. In this kernel, public kernel calls (allowed in userland) are located in [1]. If you don't have more than 5 arguments and 1 return value to your call, you can simply use the same generic 'Kernel::call' function as in the other kernel calls. The RISCV back end of this is located in [2] with the most interesting part being the CALL_1_SWI define.
Does this help?
Cheers, Martin
[1] repos/base-hw/include/kernel/interface.h [2] repos/base-hw/src/core/spec/riscv/kernel/interface.cc
On 03.03.21 23:22, Michael Grunditz wrote:
Hi,
I have a kernel call that starts RISC OS, and uses psci. I wonder , where should I put that very aarch64 dependent code. I somehow need to be able to call it from userspace.
Regarding kernel calls in general , what is the best way of calling them? Right now I do "MOV x0,#number ; SVC" , probably not very Genode style! :)