aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/libc/abort.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpsn00b/libc/abort.c')
-rw-r--r--libpsn00b/libc/abort.c28
1 files changed, 24 insertions, 4 deletions
diff --git a/libpsn00b/libc/abort.c b/libpsn00b/libc/abort.c
index ca5ab1d..de4323d 100644
--- a/libpsn00b/libc/abort.c
+++ b/libpsn00b/libc/abort.c
@@ -1,9 +1,29 @@
+
#include <stdio.h>
-void abort() {
+/* Standard abort */
+void abort() {
printf("abort()\n");
-
- while(1);
-} \ No newline at end of file
+ for (;;)
+ __asm__ volatile("");
+}
+
+/* Internal function used by assert() macro */
+
+void _assert_abort(const char *file, int line, const char *expr) {
+ printf("%s:%d: assert(%s)\n", file, line, expr);
+
+ for (;;)
+ __asm__ volatile("");
+}
+
+/* Pure virtual function call (C++) */
+
+void __cxa_pure_virtual(void) {
+ printf("__cxa_pure_virtual()\n");
+
+ for (;;)
+ __asm__ volatile("");
+}