summaryrefslogtreecommitdiffstats
path: root/newlib/libc/machine/microblaze/abort.c
diff options
context:
space:
mode:
authorJeff Johnston <jjohnstn@redhat.com>2009-09-28 16:42:21 +0000
committerJeff Johnston <jjohnstn@redhat.com>2009-09-28 16:42:21 +0000
commit6c249577fbcdbb3d34747d8ba1b7d5920ef5f2ab (patch)
treead02b8119806819c0ab895dfb4cc1f332404da47 /newlib/libc/machine/microblaze/abort.c
parent587b75f7bdac34df1cef09ea70b0fbd88a27ff16 (diff)
downloadcygnal-6c249577fbcdbb3d34747d8ba1b7d5920ef5f2ab.tar.gz
cygnal-6c249577fbcdbb3d34747d8ba1b7d5920ef5f2ab.tar.bz2
cygnal-6c249577fbcdbb3d34747d8ba1b7d5920ef5f2ab.zip
2009-09-28 Michael Eager <eager@eagercon.com>
* configure.host: Add microblaze. * libc/include/machine/ieeefp.h [MICROBLAZE]: Define __IEEE_BIG_ENDIAN. * libc/include/machine/setjmp.h [MICROBLAZE]: Define _JBLEN, _JBTYPE. * libc/include/sys/config.h [MICROBLAZE]: Define _REENT_SMALL, _UNIX98_THREAD_MUTEX_ATTRIBUTES. * libc/include/sys/types.h: Treat XMK like rtems, define PTHREAD_MUTEX_NORMAL, PTHREAD_MUTEX_ERRORCHECK, PTHREAD_MUTEX_RECURSIVE, PTHREAD_MUTEX_DEFAULT, PTHREAD_STACK_MIN, define stuct pthread_attr_s. * libc/machine/configure.in: Add microblaze. * libc/machine/configure: Add microblaze (not regenerated). * libc/machine/microblaze/configure.in: NEW. * libc/machine/microblaze/configure: Generate. * libc/machine/microblaze/Makefile.am: NEW. * libc/machine/microblaze/Makefile.in: Generate. * libc/machine/microblaze/{abort.c, strcmp.c, strcpy.c, strlen.c, mallocr.c, longjmp.S, setjmp.S}: NEW. * libc/stdlib/mallocr.c [MICROBLAZE]: Don't declare sbrk prototype, mALLOc(): return malloc value.
Diffstat (limited to 'newlib/libc/machine/microblaze/abort.c')
-rw-r--r--newlib/libc/machine/microblaze/abort.c64
1 files changed, 64 insertions, 0 deletions
diff --git a/newlib/libc/machine/microblaze/abort.c b/newlib/libc/machine/microblaze/abort.c
new file mode 100644
index 000000000..b2c5a00b2
--- /dev/null
+++ b/newlib/libc/machine/microblaze/abort.c
@@ -0,0 +1,64 @@
+/* NetWare can not use this implementation of abort. It provides its
+ own version of abort in clib.nlm. If we can not use clib.nlm, then
+ we must write abort in sys/netware. */
+
+#ifdef ABORT_PROVIDED
+
+int _dummy_abort = 1;
+
+#else
+
+/*
+FUNCTION
+<<abort>>---abnormal termination of a program
+
+INDEX
+ abort
+
+ANSI_SYNOPSIS
+ #include <stdlib.h>
+ void abort(void);
+
+TRAD_SYNOPSIS
+ #include <stdlib.h>
+ void abort();
+
+DESCRIPTION
+Use <<abort>> to signal that your program has detected a condition it
+cannot deal with. Normally, <<abort>> ends your program's execution.
+
+Before terminating your program, <<abort>> raises the exception <<SIGABRT>>
+(using `<<raise(SIGABRT)>>'). If you have used <<signal>> to register
+an exception handler for this condition, that handler has the
+opportunity to retain control, thereby avoiding program termination.
+
+In this implementation, <<abort>> does not perform any stream- or
+file-related cleanup (the host environment may do so; if not, you can
+arrange for your program to do its own cleanup with a <<SIGABRT>>
+exception handler).
+
+RETURNS
+<<abort>> does not return to its caller.
+
+PORTABILITY
+ANSI C requires <<abort>>.
+
+Supporting OS subroutines required: <<_exit>> and optionally, <<write>>.
+*/
+
+#include <stdlib.h>
+#include <unistd.h>
+#include <signal.h>
+
+_VOID
+_DEFUN_VOID (abort)
+{
+#ifdef ABORT_MESSAGE
+ write (2, "Abort called\n", sizeof ("Abort called\n")-1);
+#endif
+
+ while (1)
+ {
+ exit(1);
+ }
+}