summaryrefslogtreecommitdiffstats
path: root/libgloss/arm/_kill.c
diff options
context:
space:
mode:
Diffstat (limited to 'libgloss/arm/_kill.c')
-rw-r--r--libgloss/arm/_kill.c25
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
+}