Hello Martin,

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.

Thanks in advance,
Cheers,
Franc 

On Mon, Jan 19, 2015 at 4:05 PM, Martin Stein <martin.stein@...1...> wrote:
Hi Franc,

The easiest way to trigger privileged code from userland is by adding a new syscall to the base-hw kernel. To achieve this, you first have to adapt the kernel-interface description. Let me give you some background for this. There are two types of syscalls, public syscalls that can be called by everyone and core syscalls that can be called only by Genodes core process. For optimization purpose, the kernel expects the IDs of the syscalls to be this way:

public syscalls: 0, 1, ..., x
core syscalls: x+1, x+2, x+y

So if you want to add a public syscall in base-hw/include/kernel/interface.h, you should always use the call ID that is one higher than the current maximum in this file. Additionally, you must increase all core-syscall IDs in base-hw/src/core/include/kernel/core_interface.h by one.

After that, you can implement the syscall back-end by adding a new method 'void Thread::_call_xxx()' in base-hw/src/core/kernel/thread.cc and adapting the 'void Thread::_call()' method in the same file accordingly. In this file you also find the implementation of all the other syscalls. They may serve you as inspiration on how to pass arguments and return values.

If you have further questions, please don't hesitate to ask ;)

Cheers,
Martin


On 19.01.2015 11:04, Franc sylvester wrote:
Hello everyone, 

I am stuck at one point because of lack of understanding in Genode, Actually I want to execute some assembly instruction in privileged mode in base-hw kernel from a user script. 

So I need to know, How will I add a kernel module which will execute assembly instruction and how can I call this module from the user space.

And if there is already any such modules exist in Genode that will really help me to understand the flow mechanism, Let me know. 

Cheers
Franc


------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet


_______________________________________________
genode-main mailing list
genode-main@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main


------------------------------------------------------------------------------
New Year. New Location. New Benefits. New Data Center in Ashburn, VA.
GigeNET is offering a free month of service with a new server in Ashburn.
Choose from 2 high performing configs, both with 100TB of bandwidth.
Higher redundancy.Lower latency.Increased capacity.Completely compliant.
http://p.sf.net/sfu/gigenet
_______________________________________________
genode-main mailing list
genode-main@...12...ceforge.net
https://lists.sourceforge.net/lists/listinfo/genode-main