Re: context::regs
Adam Lackorzynski <[email protected]>
| Newsgroups | gmane.comp.micro-kernel.l4.devel |
|---|---|
| Message-ID | <[email protected]> |
On Wed Apr 29, 2015 at 14:20:11 +0800, watermirror wrote: > hi,the implemention of Context::regs() is like this: > > return reinterpret_cast<Entry_frame*>(Cpu::stack_align(reinterpret_cast<Mword>(this + Size)) -1; > > how this algorithm came out?i think the memory of the object is allocated by c++ compiler, but why '(this + Size)' could get Entry_frame of a thread? The stacks of the threads have a 2^n size and are size-aligned which makes such calculations possible. Threads also have their own new operator which handles this. Adam -- Adam [email protected] Lackorzynski http://os.inf.tu-dresden.de/~adam/