aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus/rt_param.h
diff options
context:
space:
mode:
authorGlenn Elliott <gelliott@cs.unc.edu>2013-10-28 19:14:11 -0400
committerGlenn Elliott <gelliott@cs.unc.edu>2013-10-28 19:14:11 -0400
commit251bdc066bbfa7a8929860e2b42338950821981c (patch)
tree1a6c6a300bd500b0d0f3593c23f97254848b1071 /include/litmus/rt_param.h
parent76bf7efbe9bc13e30a9761613092e4ade876abad (diff)
Update core locking components.
Extends the core parts of locking protocols in Litmus. * Adds dynamic group lock interface (internal and sys calls). * Adds helper functions for waking tasks. * Adds tracing for these new features.
Diffstat (limited to 'include/litmus/rt_param.h')
-rw-r--r--include/litmus/rt_param.h15
1 files changed, 15 insertions, 0 deletions
diff --git a/include/litmus/rt_param.h b/include/litmus/rt_param.h
index 138799fbaad7..fa02dd24953c 100644
--- a/include/litmus/rt_param.h
+++ b/include/litmus/rt_param.h
@@ -134,6 +134,9 @@ struct control_page {
134/* don't export internal data structures to user space (liblitmus) */ 134/* don't export internal data structures to user space (liblitmus) */
135#ifdef __KERNEL__ 135#ifdef __KERNEL__
136 136
137#include <linux/semaphore.h>
138#include <litmus/binheap.h>
139
137struct _rt_domain; 140struct _rt_domain;
138struct bheap_node; 141struct bheap_node;
139struct release_heap; 142struct release_heap;
@@ -198,6 +201,18 @@ struct rt_param {
198 unsigned int num_local_locks_held; 201 unsigned int num_local_locks_held;
199#endif 202#endif
200 203
204#ifdef CONFIG_LITMUS_NESTED_LOCKING
205 raw_spinlock_t hp_blocked_tasks_lock;
206 struct binheap hp_blocked_tasks;
207
208 /* pointer to lock upon which is currently blocked */
209 struct litmus_lock* blocked_lock;
210 unsigned long blocked_lock_data;
211
212 struct litmus_lock* outermost_lock;
213 unsigned int virtually_unlocked:1;
214#endif
215
201 /* user controlled parameters */ 216 /* user controlled parameters */
202 struct rt_task task_params; 217 struct rt_task task_params;
203 218