Interaction with L4

Norman Feske norman.feske at ...1...
Mon Jan 11 09:32:45 CET 2010

Hi Peter,

> I'm trying to port some code that I originally implemented in Iguana. This
> functionality pertains to profiling functionality. In my current setup (ie. with
> Iguana), I added an L4 system call (OKL4) to start and stop profiling. I'm
> wondering whether it's possible at all to use OKL4 functionality directly in

yes, that is no problem. In fact, Genode's framework libraries such as
the IPC library directly use L4 system calls. Also, our port of OKLinux
relies on using L4 system calls directly. However, all programs except
for Genode's core do not have roottask privileges. So you are restricted
to use system calls that need no special privileges. As a general rule
of thumb, I would suggest to perform all tasks that are related to
resource allocation (e.g., creating threads and address spaces) and
address-space layout management (mapping) using Genode primitives only.

If you want to use OKL4 system calls from your program, you might take
some existing Genode code as reference, for example the IPC library:


There you can see that we include the OKL4 headers into a dedicated
namespace called 'Okl4'. I suggest to stick to this scheme to avoid
symbol-name conflicts between your code and the Genode libraries.

> writing genode apps. The profiling code that I have implemented is L4 code,
> where some of the code uses OKL4 IPC primitives and a small amount of Iguana
> based code with regards to creating threads.

It should be ok to use OKL4 directly for your L4-specific IPC operations
and your custom system-call interface. For thread creation, however,
Genode's Thread API should be used.


More information about the users mailing list