Re: Passing data to a thread
Valentin Hauner <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.devel |
|---|---|
| Message-ID | <[email protected]> |
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