Blame view
kernel/locking/mutex-debug.h
1.66 KB
408894ee4 [PATCH] mutex sub... |
1 2 3 4 5 6 7 8 9 10 11 |
/* * Mutexes: blocking mutual exclusion locks * * started by Ingo Molnar: * * Copyright (C) 2004, 2005, 2006 Red Hat, Inc., Ingo Molnar <mingo@redhat.com> * * This file contains mutex debugging related internal declarations, * prototypes and inline functions, for the CONFIG_DEBUG_MUTEXES case. * More details are in kernel/mutex-debug.c. */ |
408894ee4 [PATCH] mutex sub... |
12 13 14 |
/* * This must be called with lock->wait_lock held. */ |
9a11b49a8 [PATCH] lockdep: ... |
15 16 |
extern void debug_mutex_lock_common(struct mutex *lock, struct mutex_waiter *waiter); |
408894ee4 [PATCH] mutex sub... |
17 18 19 20 21 |
extern void debug_mutex_wake_waiter(struct mutex *lock, struct mutex_waiter *waiter); extern void debug_mutex_free_waiter(struct mutex_waiter *waiter); extern void debug_mutex_add_waiter(struct mutex *lock, struct mutex_waiter *waiter, |
9a11b49a8 [PATCH] lockdep: ... |
22 |
struct thread_info *ti); |
408894ee4 [PATCH] mutex sub... |
23 24 25 |
extern void mutex_remove_waiter(struct mutex *lock, struct mutex_waiter *waiter, struct thread_info *ti); extern void debug_mutex_unlock(struct mutex *lock); |
9a11b49a8 [PATCH] lockdep: ... |
26 27 |
extern void debug_mutex_init(struct mutex *lock, const char *name, struct lock_class_key *key); |
408894ee4 [PATCH] mutex sub... |
28 |
|
0d66bf6d3 mutex: implement ... |
29 30 |
static inline void mutex_set_owner(struct mutex *lock) { |
c6eb3dda2 mutex: Use p->on_... |
31 |
lock->owner = current; |
0d66bf6d3 mutex: implement ... |
32 33 34 35 36 37 |
} static inline void mutex_clear_owner(struct mutex *lock) { lock->owner = NULL; } |
1fb00c6cb [PATCH] work arou... |
38 |
#define spin_lock_mutex(lock, flags) \ |
408894ee4 [PATCH] mutex sub... |
39 40 41 |
do { \ struct mutex *l = container_of(lock, struct mutex, wait_lock); \ \ |
9e7f4d451 [PATCH] lockdep: ... |
42 |
DEBUG_LOCKS_WARN_ON(in_interrupt()); \ |
9a11b49a8 [PATCH] lockdep: ... |
43 |
local_irq_save(flags); \ |
c2f21ce2e locking: Implemen... |
44 |
arch_spin_lock(&(lock)->rlock.raw_lock);\ |
9e7f4d451 [PATCH] lockdep: ... |
45 |
DEBUG_LOCKS_WARN_ON(l->magic != l); \ |
408894ee4 [PATCH] mutex sub... |
46 |
} while (0) |
c2f21ce2e locking: Implemen... |
47 48 49 50 51 |
#define spin_unlock_mutex(lock, flags) \ do { \ arch_spin_unlock(&(lock)->rlock.raw_lock); \ local_irq_restore(flags); \ preempt_check_resched(); \ |
408894ee4 [PATCH] mutex sub... |
52 |
} while (0) |