aboutsummaryrefslogtreecommitdiff
path: root/libgloss/arm/_kill.c
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2007-01-03 16:55:25 +0000
committerJeff Johnston <jjohnstn@redhat.com>2007-01-03 16:55:25 +0000
commit4d95d0e99afd7799f3c8b0e1273d67e1cd136e8d (patch)
tree0c6b70e5f7a987edcd99156f9ea25dc8280c9ea1 /libgloss/arm/_kill.c
parent35b4db0f3040b76139e03af1e888cb7d04f197cf (diff)
downloadnewlib-4d95d0e99afd7799f3c8b0e1273d67e1cd136e8d.zip
newlib-4d95d0e99afd7799f3c8b0e1273d67e1cd136e8d.tar.gz
newlib-4d95d0e99afd7799f3c8b0e1273d67e1cd136e8d.tar.bz2
2006-01-03 Kazu Hirata <kazu@codesourcery.com>
* arm/Makefile (RDPMON_OBJS): Add _exit.o and _kill.o. (RDIMON_OBJS): Define in terms of RDPMON_OBJS. (rdimon-_exit.o, rdimon-_kill.o): New. * arm/_exit.c, arm/_kill.c: New. * arm/syscalls.c (_exit, _kill): Remove.
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 0000000..81354d4
--- /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
+}