; ; Ullrich von Bassewitz, 2003-03-14 ; ; int __fastcall__ raise (int sig); ; .import jmpvec .include "signal.inc" ;---------------------------------------------------------------------------- ; int __fastcall__ raise (int sig); _raise: cpx #0 bne invalidsig cmp #SIGCOUNT bcs invalidsig ; Save the signal number low byte, then setup the function vector pha asl a tax lda sigtable,x sta jmpvec+1 lda sigtable+1,x sta jmpvec+2 ; Reset the signal handler to SIG_DFL (I don't like this because it may ; introduce race conditions, but it's the simplest way to satisfy the ; standard). lda #<__sig_dfl sta sigtable,x lda #>__sig_dfl sta sigtable+1,x ; Restore the signal number and call the function pla ; Low byte ldx #0 ; High byte jsr jmpvec ; Call signal function ; raise() returns zero on success and any other value on failure lda #0 tax invalidsig: rts