summaryrefslogtreecommitdiff
path: root/kern/task.c
diff options
context:
space:
mode:
authorRichard Braun <rbraun@sceen.net>2017-02-08 21:58:38 +0100
committerRichard Braun <rbraun@sceen.net>2017-02-08 21:58:38 +0100
commite69a4c4c3ca62d816bb4542792bcc741a7360af2 (patch)
tree19516cdd779a8a759e26db3cbde4bc4103946dbc /kern/task.c
parent05f3b97ee07e6af26613dfbfe57619a700aa349a (diff)
kern/thread: add wait channels
Diffstat (limited to 'kern/task.c')
-rw-r--r--kern/task.c18
1 files changed, 15 insertions, 3 deletions
diff --git a/kern/task.c b/kern/task.c
index e415cb65..f4586eed 100644
--- a/kern/task.c
+++ b/kern/task.c
@@ -29,6 +29,12 @@
#include <vm/vm_kmem.h>
#include <vm/vm_map.h>
+#ifdef __LP64__
+#define TASK_INFO_ADDR_FMT "%016lx"
+#else /* __LP64__ */
+#define TASK_INFO_ADDR_FMT "%08lx"
+#endif /* __LP64__ */
+
/*
* Kernel task and storage.
*/
@@ -138,9 +144,15 @@ task_info(struct task *task)
printk("task: name: %s, threads:\n", task->name);
list_for_each_entry(&task->threads, thread, task_node) {
- printk("task: %s: %p %c %.2s:%02hu %s\n", task->name, thread,
- thread_state_to_chr(thread), thread_schedclass_to_str(thread),
- thread_priority(thread), thread->name);
+ printk("task: " TASK_INFO_ADDR_FMT " %c %8s:" TASK_INFO_ADDR_FMT
+ " %.2s:%02hu %s\n",
+ (unsigned long)thread,
+ thread_state_to_chr(thread),
+ thread_wchan_desc(thread),
+ (unsigned long)thread_wchan_addr(thread),
+ thread_schedclass_to_str(thread),
+ thread_priority(thread),
+ thread->name);
}
spinlock_unlock(&task->lock);