summaryrefslogtreecommitdiffstats
path: root/rtemsbsd/rtems/rtems-bsd-panic.c
diff options
context:
space:
mode:
authorSebastian Huber <sebastian.huber@embedded-brains.de>2014-09-25 10:48:14 +0200
committerSebastian Huber <sebastian.huber@embedded-brains.de>2014-09-25 10:57:56 +0200
commit6604dc893e784ba55c315eac1e455189dbbd8164 (patch)
treea59f578a04537cab0cbac4cf7598f01b8825232b /rtemsbsd/rtems/rtems-bsd-panic.c
parentBSD_ASSERT(): Optimize (diff)
downloadrtems-libbsd-6604dc893e784ba55c315eac1e455189dbbd8164.tar.bz2
Delete rtems_bsd_thread_chain
Rely on RTEMS object registration for threads.
Diffstat (limited to 'rtemsbsd/rtems/rtems-bsd-panic.c')
-rw-r--r--rtemsbsd/rtems/rtems-bsd-panic.c29
1 files changed, 2 insertions, 27 deletions
diff --git a/rtemsbsd/rtems/rtems-bsd-panic.c b/rtemsbsd/rtems/rtems-bsd-panic.c
index 9634e193..1fc65f08 100644
--- a/rtemsbsd/rtems/rtems-bsd-panic.c
+++ b/rtemsbsd/rtems/rtems-bsd-panic.c
@@ -43,38 +43,13 @@
#include <rtems/bsd/sys/param.h>
#include <rtems/bsd/sys/types.h>
#include <sys/systm.h>
-#include <sys/kernel.h>
-#include <rtems/bsd/sys/lock.h>
-#include <sys/mutex.h>
-#include <sys/proc.h>
-
-static void
-suspend_all_threads(void)
-{
- const rtems_chain_control *chain = &rtems_bsd_thread_chain;
- const rtems_chain_node *node = rtems_chain_immutable_first(chain);
- rtems_id self = rtems_task_self();
-
- while (!rtems_chain_is_tail(chain, node)) {
- const struct thread *td = (const struct thread *) node;
- rtems_id id = rtems_bsd_get_task_id(td);
-
- if (id != self) {
- rtems_task_suspend(id);
- }
-
- node = rtems_chain_immutable_next(node);
- }
-
- rtems_task_suspend(RTEMS_SELF);
-}
void
panic(const char *fmt, ...)
{
va_list ap;
- printf("*** BSD PANIC *** ");
+ printf("\n*** BSD PANIC *** ");
va_start(ap, fmt);
vprintf(fmt, ap);
@@ -82,7 +57,7 @@ panic(const char *fmt, ...)
printf("\n");
- suspend_all_threads();
+ rtems_task_suspend(RTEMS_SELF);
/* FIXME */
rtems_fatal_error_occurred(0xdeadbeef);