Module: xenomai-forge
Branch: master
Commit: ac13ca0d53782a0c59e1620f211d219a9788d34b
URL:    
http://git.xenomai.org/?p=xenomai-forge.git;a=commit;h=ac13ca0d53782a0c59e1620f211d219a9788d34b

Author: Philippe Gerum <r...@xenomai.org>
Date:   Thu Jan  5 10:09:49 2012 +0100

cobalt: isolate grant value in user window

---

 include/cobalt/nucleus/thread.h |    2 +-
 kernel/cobalt/monitor.c         |    4 ++--
 lib/cobalt/internal.c           |    2 +-
 3 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/include/cobalt/nucleus/thread.h b/include/cobalt/nucleus/thread.h
index 598a14f..31ecc5b 100644
--- a/include/cobalt/nucleus/thread.h
+++ b/include/cobalt/nucleus/thread.h
@@ -144,7 +144,7 @@ typedef struct xnthread_info {
 
 struct xnthread_user_window {
        unsigned long state;
-       unsigned int granted : 1;
+       unsigned long grant_value;
 };
 
 #ifdef __KERNEL__
diff --git a/kernel/cobalt/monitor.c b/kernel/cobalt/monitor.c
index da51a39..a3517bc 100644
--- a/kernel/cobalt/monitor.c
+++ b/kernel/cobalt/monitor.c
@@ -198,7 +198,7 @@ static void cobalt_monitor_wakeup(struct cobalt_monitor 
*mon)
                 * that ->wchan does match our sleep queue.
                 */
                if (bcast ||
-                   (p->u_window->granted && p->wchan == &tid->monitor_synch)) {
+                   (p->u_window->grant_value && p->wchan == 
&tid->monitor_synch)) {
                        xnsynch_wakeup_this_sleeper(&tid->monitor_synch,
                                                    &p->plink);
                        removeq(&mon->waiters, &tid->monitor_link);
@@ -272,7 +272,7 @@ int cobalt_monitor_wait(struct cobalt_monitor_shadow __user 
*u_monsh,
        if (event & COBALT_MONITOR_WAITDRAIN)
                synch = &mon->drain;
        else {
-               cur->threadbase.u_window->granted = 0;
+               cur->threadbase.u_window->grant_value = 0;
                appendq(&mon->waiters, &cur->monitor_link);
                cur->monitor_queued = 1;
        }
diff --git a/lib/cobalt/internal.c b/lib/cobalt/internal.c
index fb68be3..d9b7cd2 100644
--- a/lib/cobalt/internal.c
+++ b/lib/cobalt/internal.c
@@ -174,7 +174,7 @@ void cobalt_monitor_grant(cobalt_monitor_t *mon,
        struct cobalt_monitor_data *datp = get_monitor_data(mon);
 
        datp->flags |= COBALT_MONITOR_GRANTED;
-       u_window->granted = 1;
+       u_window->grant_value = 1;
 }
 
 int cobalt_monitor_grant_sync(cobalt_monitor_t *mon,


_______________________________________________
Xenomai-git mailing list
Xenomai-git@gna.org
https://mail.gna.org/listinfo/xenomai-git

Reply via email to