|To:||"Maciej W. Rozycki" <firstname.lastname@example.org>|
|Subject:||Re: [PATCH, RFC] MIPS: Implement the getcontext API|
|From:||David Daney <email@example.com>|
|Date:||Tue, 03 Mar 2009 08:56:25 -0800|
|Cc:||Ralf Baechle <firstname.lastname@example.org>, email@example.com, firstname.lastname@example.org, "Maciej W. Rozycki" <email@example.com>|
|User-agent:||Thunderbird 220.127.116.11 (X11/20090105)|
Maciej W. Rozycki wrote:
Hello, Here is code to implement the getcontext API for MIPS.
The conclusion is what I am requesting is to get the structure of the stack frame used by sigreturn(2) fixed in its current form and make sure the syscall only ever uses data from the ucontext_t structure within. A new syscall would have to be introduced if the kernel required a change in the way sigreturn(2) behaves in the future. For the purpose of glibc the structure of the stack frame is defined in the kernel_rt_sigframe.h header provided with the patch.
Note the libgcc currently makes the assumption that the layout of the stack for signal handlers is fixed. The DWARF2 unwinder needs this information to be able to unwind through signal frames (see gcc/config/mips/linux-unwind.h), so it is already a de facto part of the ABI.
When (and if) we move the sigreturn trampoline to a vdso we should be able to maintain the ABI.
Furthermore I am requesting that the kernel recognises the special meaning of the value of one stored in the slot designated for the $zero register and never places such a value itself there.
Seems reasonable to me as currently a zero is unconditionally stored there. David Daney
|<Prev in Thread]||Current Thread||[Next in Thread>|
|Previous by Date:||Re: [PATCH V2] oprofile: VR5500 performance counter driver, Robert Richter|
|Next by Date:||Re: [PATCH, RFC] MIPS: Implement the getcontext API, Brian Foster|
|Previous by Thread:||[PATCH, RFC] MIPS: Implement the getcontext API, Maciej W. Rozycki|
|Next by Thread:||Re: [PATCH, RFC] MIPS: Implement the getcontext API, Brian Foster|
|Indexes:||[Date] [Thread] [Top] [All Lists]|