l4/sys/syscalls.h: No such file or directory

Valentin Hauner valentinhauner at gmx.de
Mon Sep 1 18:31:40 CEST 2014


Hi,

On 09/01/2014 12:02 AM, Adam Lackorzynski wrote:
> l4_debugger_set_object_name() is the function to use. Tried checking the
> return value?
>   
Thanks, it's working now. I've misplaced the call of that function before.

I'm currently struggling with creating a new task. I guess, according to
the initial post of this mailing list thread, using the following
interface is deprecated?
https://os.inf.tu-dresden.de/L4/l4libman/l4_task_new.html

So I've found l4_factory_create_task in factory.h. Unfortunately, there
seems to be no example in ./l4/pkg how to use it.
My first try is the following:

>l4_cap_idx_t task_cap = l4re_util_cap_alloc();
>l4_fpage_t task_fpage = l4_fpage(l4re_env()->first_free_utcb, 1024,
L4_CAP_FPAGE_RW);
>l4_factory_create_task(l4re_env()->factory, task_cap, task_fpage);
>// Create thread, start thread control sequence ...
>l4_thread_control_bind((l4_utcb_t *)l4re_env()->first_free_utcb, task_cap);
>// Commit & shift first_free_utcb ...

But when executing the example, the states of all threads created are
set to 'dead'. I'm not sure about using first_free_utcb as start address
for the flex-page as it is used as a offset for threads' UTCBs normally.

Can you give a small working example for creating new tasks?
Basically, I want to create a new task for each thread demanded by my
end users. So the number of tasks and threads to create is variable.

Thanks!

Best regards,
Valentin Hauner



More information about the l4-hackers mailing list