aboutsummaryrefslogtreecommitdiffstats
path: root/include/litmus/locking.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/litmus/locking.h')
-rw-r--r--include/litmus/locking.h20
1 files changed, 13 insertions, 7 deletions
diff --git a/include/litmus/locking.h b/include/litmus/locking.h
index a01890153fa1..57d2abfe2a12 100644
--- a/include/litmus/locking.h
+++ b/include/litmus/locking.h
@@ -13,13 +13,19 @@ struct litmus_lock {
13 int type; 13 int type;
14 14
15#ifdef CONFIG_LITMUS_NESTED_LOCKING 15#ifdef CONFIG_LITMUS_NESTED_LOCKING
16 struct list_head lock_chain; 16 struct task_struct *hp_waiter_eff_prio;
17#endif 17 struct task_struct **hp_waiter_ptr;
18}; 18 struct binheap_node hp_binheap_node;
19
20 int ident;
21
22//#ifdef CONFIG_DEBUG_SPINLOCK
23 char cheat_lockdep[2];
24 struct lock_class_key key;
25//#endif
19 26
20#ifdef CONFIG_LITMUS_NESTED_LOCKING
21void nest_lock(struct litmus_lock *l, struct task_struct *t);
22#endif 27#endif
28};
23 29
24struct litmus_lock_ops { 30struct litmus_lock_ops {
25 /* Current task tries to obtain / drop a reference to a lock. 31 /* Current task tries to obtain / drop a reference to a lock.
@@ -35,8 +41,8 @@ struct litmus_lock_ops {
35 void (*deallocate)(struct litmus_lock*); 41 void (*deallocate)(struct litmus_lock*);
36 42
37#ifdef CONFIG_LITMUS_NESTED_LOCKING 43#ifdef CONFIG_LITMUS_NESTED_LOCKING
38 void (*propagate_increase_inheritance)(struct litmus_lock* l, struct task_struct* t); 44 void (*propagate_increase_inheritance)(struct litmus_lock* l, struct task_struct* t, raw_spinlock_t* to_unlock, unsigned long irqflags);
39 void (*propagate_decrease_inheritance)(struct litmus_lock* l, struct task_struct* t); 45 void (*propagate_decrease_inheritance)(struct litmus_lock* l, struct task_struct* t, raw_spinlock_t* to_unlock, unsigned long irqflags);
40#endif 46#endif
41}; 47};
42 48