diff options
Diffstat (limited to 'libgloss/arm/_kill.c')
-rw-r--r-- | libgloss/arm/_kill.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/libgloss/arm/_kill.c b/libgloss/arm/_kill.c new file mode 100644 index 000000000..81354d473 --- /dev/null +++ b/libgloss/arm/_kill.c @@ -0,0 +1,25 @@ +#include <_ansi.h> +#include <signal.h> +#include "swi.h" + +int _kill _PARAMS ((int, int)); + +int +_kill (int pid, int sig) +{ + (void) pid; (void) sig; +#ifdef ARM_RDI_MONITOR + /* Note: The pid argument is thrown away. */ + switch (sig) + { + case SIGABRT: + return do_AngelSWI (AngelSWI_Reason_ReportException, + (void *) ADP_Stopped_RunTimeError); + default: + return do_AngelSWI (AngelSWI_Reason_ReportException, + (void *) ADP_Stopped_ApplicationExit); + } +#else + asm ("swi %a0" :: "i" (SWI_Exit)); +#endif +} |