From 251bdc066bbfa7a8929860e2b42338950821981c Mon Sep 17 00:00:00 2001 From: Glenn Elliott Date: Mon, 28 Oct 2013 19:14:11 -0400 Subject: 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. --- include/litmus/rt_param.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'include/litmus/rt_param.h') 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 { /* don't export internal data structures to user space (liblitmus) */ #ifdef __KERNEL__ +#include +#include + struct _rt_domain; struct bheap_node; struct release_heap; @@ -198,6 +201,18 @@ struct rt_param { unsigned int num_local_locks_held; #endif +#ifdef CONFIG_LITMUS_NESTED_LOCKING + raw_spinlock_t hp_blocked_tasks_lock; + struct binheap hp_blocked_tasks; + + /* pointer to lock upon which is currently blocked */ + struct litmus_lock* blocked_lock; + unsigned long blocked_lock_data; + + struct litmus_lock* outermost_lock; + unsigned int virtually_unlocked:1; +#endif + /* user controlled parameters */ struct rt_task task_params; -- cgit v1.2.2