Hi Franc,

On 16.04.2015 12:01, Franc sylvester wrote:
> I used this explanation to write a system call but i am not able to get
> user argument value inside the system call.
> Can  you provide some more information to get argument value inside the
> system call.

As you can see in the other system calls in [1] it should be sufficient
in the userland to do:

ret = call(call_id_<NAME>(), (Call_arg)arg_0, (Call_arg)arg_1, ...);

This method can mangle up to 6 arguments into the appropriate registers
(on ARM registers R0...R5, for details see [2]). In the kernel, you can
then read these arguments by calling the following methods on the
Kernel::Thread object of the user:

arg_0 = user_arg_0();
arg_1 = user_arg_1();
...

To pass a return value to the user, call the following on the users
Kernel::Thread object:

user_arg_0(ret);

The return value is then returned by the initially mentioned function in
the userland.

Cheers,
Martin

[1] base-hw/include/kernel/interface.h
[2] base-hw/src/base/arm/kernel/interface.cc


------------------------------------------------------------------------------
BPM Camp - Free Virtual Workshop May 6th at 10am PDT/1PM EDT
Develop your own process in accordance with the BPMN 2 standard
Learn Process modeling best practices with Bonita BPM through live exercises
http://www.bonitasoft.com/be-part-of-it/events/bpm-camp-virtual- event?utm_
source=Sourceforge_BPM_Camp_5_6_15&utm_medium=email&utm_campaign=VA_SF
_______________________________________________
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main

Reply via email to