Module: xenomai-3
Branch: next
Commit: 29cce0b2808edfb2cd9b150b702f9ca876813fc6
URL:    
http://git.xenomai.org/?p=xenomai-3.git;a=commit;h=29cce0b2808edfb2cd9b150b702f9ca876813fc6

Author: Philippe Gerum <r...@xenomai.org>
Date:   Fri Jul  3 12:46:05 2015 +0200

cobalt/thread: fixup symbolic thread state output

---

 include/cobalt/uapi/kernel/thread.h |    3 ++-
 kernel/cobalt/posix/thread.c        |    2 ++
 kernel/cobalt/sched.c               |    4 ++++
 3 files changed, 8 insertions(+), 1 deletion(-)

diff --git a/include/cobalt/uapi/kernel/thread.h 
b/include/cobalt/uapi/kernel/thread.h
index 5606d52..c053472 100644
--- a/include/cobalt/uapi/kernel/thread.h
+++ b/include/cobalt/uapi/kernel/thread.h
@@ -96,8 +96,9 @@
  * 'r' -> Undergoes round-robin.
  * 't' -> Mode switches trapped.
  * 'L' -> Lock breaks trapped.
+ * 'd' -> Debug mode turned on.
  */
-#define XNTHREAD_STATE_LABELS  "SWDRU..X.HbTlrt.....L"
+#define XNTHREAD_STATE_LABELS  "SWDRU..X.HbTlrt.....Ld"
 
 struct xnthread_user_window {
        __u32 state;
diff --git a/kernel/cobalt/posix/thread.c b/kernel/cobalt/posix/thread.c
index ad694aa..00397fc 100644
--- a/kernel/cobalt/posix/thread.c
+++ b/kernel/cobalt/posix/thread.c
@@ -822,6 +822,8 @@ COBALT_SYSCALL(thread_getstat, current,
        stat.xsc = xnstat_counter_get(&thread->stat.xsc);
        stat.pf = xnstat_counter_get(&thread->stat.pf);
        stat.status = xnthread_get_state(thread);
+       if (thread->lock_count > 0)
+               stat.status |= XNLOCK;
        stat.timeout = xnthread_get_timeout(thread,
                                            xnclock_read_monotonic(&nkclock));
        strcpy(stat.name, thread->name);
diff --git a/kernel/cobalt/sched.c b/kernel/cobalt/sched.c
index d63927e..c0f88d0 100644
--- a/kernel/cobalt/sched.c
+++ b/kernel/cobalt/sched.c
@@ -941,6 +941,8 @@ static int vfile_schedlist_next(struct 
xnvfile_snapshot_iterator *it,
        memcpy(p->name, thread->name, sizeof(p->name));
        p->cprio = thread->cprio;
        p->state = xnthread_get_state(thread);
+       if (thread->lock_count > 0)
+               p->state |= XNLOCK;
        knamecpy(p->sched_class, thread->sched_class->name);
        knamecpy(p->personality, thread->personality->name);
        period = xnthread_get_period(thread);
@@ -1107,6 +1109,8 @@ static int vfile_schedstat_next(struct 
xnvfile_snapshot_iterator *it,
        p->pid = xnthread_host_pid(thread);
        memcpy(p->name, thread->name, sizeof(p->name));
        p->state = xnthread_get_state(thread);
+       if (thread->lock_count > 0)
+               p->state |= XNLOCK;
        p->ssw = xnstat_counter_get(&thread->stat.ssw);
        p->csw = xnstat_counter_get(&thread->stat.csw);
        p->xsc = xnstat_counter_get(&thread->stat.xsc);


_______________________________________________
Xenomai-git mailing list
Xenomai-git@xenomai.org
http://xenomai.org/mailman/listinfo/xenomai-git

Reply via email to