Changeset 11564


Ignore:
Timestamp:
Dec 31, 2008, 12:36:30 AM (11 years ago)
Author:
gb
Message:

Getting closer to the bug that I've been looking for (for > 2 weeks ...):
provide glue routines for sigreturn on Darwin. Note that sigreturn
is incorrectly prototyped on Darwin - it actually wants a second
('infostyle') argument. The little stub functions here exist solely
to provide the same value (0x1e) of that argument that sigtramp uses,
and to let the sigreturn() glue code deal with the syscall arcana.

Location:
trunk/source/lisp-kernel
Files:
2 edited

Legend:

Unmodified
Added
Removed
  • trunk/source/lisp-kernel/x86-asmutils32.s

    r11329 r11564  
    174174_endfn
    175175        __endif
     176
     177        __ifdef([DARWIN])
     178        .globl C(sigreturn)
     179_exportfn(C(darwin_sigreturn))
     180/* Need to set the sigreturn 'infostyle' argument, which is mostly
     181   undocumented.  On x8632 Darwin, sigtramp() sets it to 0x1e, and
     182   since we're trying to do what sigtramp() would do if we'd returned
     183   to it ... */
     184        __(movl $0x1e,%esi)
     185        __(jmp C(sigreturn))
     186_endfn
     187        __endif       
    176188               
    177189_exportfn(C(get_vector_registers))
  • trunk/source/lisp-kernel/x86-asmutils64.s

    r11247 r11564  
    169169_exportfn(C(get_vector_registers))
    170170_endfn
     171
     172_exportfn(C(darwin_sigreturn))
     173        .globl C(sigreturn)
     174/* Need to set the sigreturn 'infostyle' argument, which is mostly
     175   undocumented.  On x8664 Darwin, sigtramp() sets it to 0x1e, and
     176   since we're trying to do what sigtramp() would do if we'd returned
     177   to it ... */
     178        __(movl $0x1e,%esi)
     179        __(jmp C(sigreturn))
     180_endfn           
    171181
    172182_exportfn(C(put_vector_registers))
Note: See TracChangeset for help on using the changeset viewer.