URL
https://opencores.org/ocsvn/or1k_old/or1k_old/trunk
Subversion Repositories or1k_old
[/] [or1k_old/] [trunk/] [newlib/] [newlib/] [libc/] [signal/] [raise.c] - Rev 1782
Compare with Previous | Blame | View Log
/* Embedded systems may want the simulated signals if no other form exists, but UNIX versions will want to use the host facilities. Define SIMULATED_SIGNALS when you want to use the simulated versions. */ /* FUNCTION <<raise>>---send a signal INDEX raise INDEX _raise_r ANSI_SYNOPSIS #include <signal.h> int raise(int <[sig]>); int _raise_r(void *<[reent]>, int <[sig]>); TRAD_SYNOPSIS #include <signal.h> int raise(<[sig]>) int <[sig]>; int _raise_r(<[reent]>, <[sig]>) char *<[reent]>; int <[sig]>; DESCRIPTION Send the signal <[sig]> (one of the macros from `<<sys/signal.h>>'). This interrupts your program's normal flow of execution, and allows a signal handler (if you've defined one, using <<signal>>) to take control. The alternate function <<_raise_r>> is a reentrant version. The extra argument <[reent]> is a pointer to a reentrancy structure. RETURNS The result is <<0>> if <[sig]> was successfully raised, <<1>> otherwise. However, the return value (since it depends on the normal flow of execution) may not be visible, unless the signal handler for <[sig]> terminates with a <<return>> or unless <<SIG_IGN>> is in effect for this signal. PORTABILITY ANSI C requires <<raise>>, but allows the full set of signal numbers to vary from one implementation to another. Required OS subroutines: <<getpid>>, <<kill>>. */ #ifndef SIGNAL_PROVIDED int _dummy_raise; #else #include <reent.h> #include <signal.h> #ifndef _REENT_ONLY int _DEFUN (raise, (sig), int sig) { return _raise_r (_REENT, sig); } #endif int _DEFUN (_raise_r, (reent, sig), struct _reent *reent _AND int sig) { return _kill_r (reent, _getpid_r (reent), sig); } #endif /* SIGNAL_PROVIDED */