Passing data to a thread
Valentin Hauner
valentinhauner at gmx.de
Wed Sep 3 12:46:06 CEST 2014
Hi,
On 09/03/2014 12:45 AM, Adam Lackorzynski wrote:
> For that we need to know the calling convention of functions. For
> x86-32, the arguments are passed via the stack. So you'd do it like
> this:
>
> l4_umword_t stack[2000];
> stack[1999] = (l4_umword_t)my_data;
> stack[1998] = 0;
>
> And use &stack[1998] as an initial stack pointer for the thread.
>
> On ARM the setup can be the same, however, arguments are passed in
> registers, so you'll have a small asm stub for getting the argument from
> the stack to the register before calling the thread function. The same
> for x86-64.
>
Thanks, it works great.
Usage is very simple with:
>void thread_func(l4_umword_t data);
Best regards,
Valentin
More information about the l4-hackers
mailing list