diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2013-10-28 19:14:11 -0400 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2013-10-28 19:14:11 -0400 |
commit | 251bdc066bbfa7a8929860e2b42338950821981c (patch) | |
tree | 1a6c6a300bd500b0d0f3593c23f97254848b1071 /include/litmus/rt_param.h | |
parent | 76bf7efbe9bc13e30a9761613092e4ade876abad (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.h | 15 |
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 | |||
137 | struct _rt_domain; | 140 | struct _rt_domain; |
138 | struct bheap_node; | 141 | struct bheap_node; |
139 | struct release_heap; | 142 | struct 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 | ||