summaryrefslogtreecommitdiffstats
path: root/cpukit/libcsupport/src/assocthreadstatestostring.c
diff options
context:
space:
mode:
Diffstat (limited to 'cpukit/libcsupport/src/assocthreadstatestostring.c')
-rw-r--r--cpukit/libcsupport/src/assocthreadstatestostring.c58
1 files changed, 58 insertions, 0 deletions
diff --git a/cpukit/libcsupport/src/assocthreadstatestostring.c b/cpukit/libcsupport/src/assocthreadstatestostring.c
new file mode 100644
index 0000000000..3454e34e51
--- /dev/null
+++ b/cpukit/libcsupport/src/assocthreadstatestostring.c
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2016 embedded brains GmbH.
+ *
+ * The license and distribution terms for this file may be
+ * found in the file LICENSE in this distribution or at
+ * http://www.rtems.org/license/LICENSE.
+ */
+
+#if HAVE_CONFIG_H
+#include "config.h"
+#endif
+
+#include <rtems/assoc.h>
+#include <rtems/score/statesimpl.h>
+
+static const rtems_assoc_32_pair state_pairs[] = {
+ { STATES_THREAD_QUEUE_WITH_IDENTIFIER, "ID" },
+ { STATES_WAITING_FOR_MUTEX, "MTX" },
+ { STATES_WAITING_FOR_SEMAPHORE, "SEM" },
+ { STATES_WAITING_FOR_EVENT, "EV" },
+ { STATES_WAITING_FOR_SYSTEM_EVENT, "SYSEV" },
+ { STATES_WAITING_FOR_MESSAGE, "MSG" },
+ { STATES_WAITING_FOR_CONDITION_VARIABLE, "CV" },
+ { STATES_WAITING_FOR_FUTEX, "FTX" },
+ { STATES_WAITING_FOR_BSD_WAKEUP, "WK" },
+ { STATES_WAITING_FOR_TIME, "TIME" },
+ { STATES_WAITING_FOR_PERIOD, "PER" },
+ { STATES_WAITING_FOR_SIGNAL, "SIG" },
+ { STATES_WAITING_FOR_BARRIER, "BAR" },
+ { STATES_WAITING_FOR_RWLOCK, "RW" },
+ { STATES_WAITING_FOR_JOIN_AT_EXIT, "JATX" },
+ { STATES_WAITING_FOR_JOIN, "JOIN" },
+ { STATES_SUSPENDED, "SUSP" },
+ { STATES_WAITING_FOR_SEGMENT, "SEG" },
+ { STATES_LIFE_IS_CHANGING, "LIFE" },
+ { STATES_DEBUGGER, "DBG" },
+ { STATES_INTERRUPTIBLE_BY_SIGNAL, "IS" },
+ { STATES_WAITING_FOR_RPC_REPLY, "RPC" },
+ { STATES_ZOMBIE, "ZOMBI" },
+ { STATES_DORMANT, "DORM" }
+};
+
+size_t rtems_assoc_thread_states_to_string(
+ uint32_t states,
+ char *buffer,
+ size_t buffer_size
+)
+{
+ return rtems_assoc_32_to_string(
+ states,
+ buffer,
+ buffer_size,
+ state_pairs,
+ RTEMS_ARRAY_SIZE( state_pairs ),
+ ":",
+ "READY"
+ );
+}