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    [W:0.024 / U:0.260 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site