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:
base-okl4/src/base/ipc/ipc.cc
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.
Regards Norman