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

Björn Döbel doebel at os.inf.tu-dresden.de
Wed Sep 17 15:47:59 CEST 2014


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On 17.09.2014 15:29, Valentin Hauner wrote:
> Hi,
> 
> was the alignment correct?

I don't know as you didn't tell us about the return value you got from
malloc/memalign.

> On 09/17/2014 02:53 PM, Björn Döbel wrote:
>> * What is thread_stacks[thread.id]?
>> 
> 
> It's the stack of that thread organized in an array, as suggested
> by Adam. The stack is prefilled with data:
>> thread_stacks[count][THREAD_STACK_SIZE - 1] =
>> (l4_umword_t)thread->arg; thread_stacks[count][THREAD_STACK_SIZE
>> - 2] = 0;
> 
> where 'thread->arg' is some argument to pass to the thread.

I was enquiring about the actual value. :)

>> * What is the stack pointer you are setting at thread startup?
>> 
> Again suggested by Adam, I'm setting thread_stacks[count][1998] as
> SP:
>> l4_thread_ex_regs(thread->cap, (l4_umword_t)thread->func,
>> 
> (l4_umword_t)&thread_stacks[count][THREAD_STACK_SIZE - 2], 0);

Yes, but what IS this value, numerically?

>> * Is any of these addresses related to the page fault address you
>> are seeing?
>> 
> 
> OK, I've found out something new. In the trace buffer, I'm getting
> the following entry:
>> pf:  0026 pfa=0000b014 ip=01000200 (w-) spc=0xfcffae94 err=6
> 
> The IP points to the head of the thread function, the pfa is 
> &thread_stacks[count][THREAD_STACK_SIZE - 3]. But why?

Maybe because your program is trying to push data onto the stack? I
have no idea because you did not tell us about the actual instruction
at address 0x1000200.


Bjoern
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1

iEYEARECAAYFAlQZkQkACgkQP5ijxgQLUNmcYwCdGJpGJ3IcscgSu/G9qIccg5nv
NxwAnj7UEOtM7cPJjceauN10m7naXjKF
=nzdf
-----END PGP SIGNATURE-----



More information about the l4-hackers mailing list