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