cpu specific kernel call

Martin Stein martin.stein at genode-labs.com
Thu Mar 4 10:10:21 CET 2021

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?


[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! :)

More information about the users mailing list