lkml.org 
[lkml]   [2001]   [Jun]   [22]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: signal dequeue ...

On 22-Jun-2001 george anzinger wrote:
> Davide Libenzi wrote:
>>
>> I'm just trying to figure out the reason why signal must be delivered one at
>> a
>> time instead of building a frame with multiple calls with only the last one
>> chaining back to the kernel.
>> All previous calls instead of calling the stub that jump back to the kernel
>> will call a small stub like ( Ix86 ) :
>>
>> stkclean_stub:
>> add $frame_size, %esp
>> cmp %esp, $end_stubs
>> jae $sigreturn_stub
>> ret
>> sigreturn_stub:
>> mov __NR_sigreturn, %eax
>> int $0x80
>> end_stubs:
>>
>> ...
>> | context1
>> * $stkclean_stub
>> * sigh1_eip
>> | context0
>> * $stkclean_stub
>> * sigh0_eip
>>
>> When sigh0 return, it'll call stkclean_stub that will clean context0 and if
>> we're at the end it'll call the jump-back-to-kernel stub, otherwise the
>> it'll
>> execute the ret the will call sigh1 handler ... and so on.
>>
> And if the user handler does a long_jmp?

But if the user handler does a long_jump even the old stub will be missed,
isn't it ?




- Davide

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/

\
 
 \ /
  Last update: 2005-03-22 12:55    [from the cache]
©2003-2011 Jasper Spaans