Adding a Kernel Module in base-hw

Franc sylvester sylvaster.franc at ...9...
Thu Apr 16 12:01:34 CEST 2015


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 at ...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 listgenode-main at ...220...://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 at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/genode-main
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.genode.org/pipermail/users/attachments/20150416/b2f6490d/attachment.html>


More information about the users mailing list