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