| Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 1 | #ifndef __LINUX_SPINLOCK_API_SMP_H | 
 | 2 | #define __LINUX_SPINLOCK_API_SMP_H | 
 | 3 |  | 
 | 4 | #ifndef __LINUX_SPINLOCK_H | 
 | 5 | # error "please don't include this file directly" | 
 | 6 | #endif | 
 | 7 |  | 
 | 8 | /* | 
 | 9 |  * include/linux/spinlock_api_smp.h | 
 | 10 |  * | 
 | 11 |  * spinlock API declarations on SMP (and debug) | 
 | 12 |  * (implemented in kernel/spinlock.c) | 
 | 13 |  * | 
 | 14 |  * portions Copyright 2005, Red Hat, Inc., Ingo Molnar | 
 | 15 |  * Released under the General Public License (GPL). | 
 | 16 |  */ | 
 | 17 |  | 
 | 18 | int in_lock_functions(unsigned long addr); | 
 | 19 |  | 
 | 20 | #define assert_spin_locked(x)	BUG_ON(!spin_is_locked(x)) | 
 | 21 |  | 
| Josh Triplett | 9f50b93 | 2006-09-29 02:00:59 -0700 | [diff] [blame] | 22 | void __lockfunc _spin_lock(spinlock_t *lock)		__acquires(lock); | 
| Ingo Molnar | 8a25d5d | 2006-07-03 00:24:54 -0700 | [diff] [blame] | 23 | void __lockfunc _spin_lock_nested(spinlock_t *lock, int subclass) | 
| Josh Triplett | 9f50b93 | 2006-09-29 02:00:59 -0700 | [diff] [blame] | 24 | 							__acquires(lock); | 
 | 25 | void __lockfunc _read_lock(rwlock_t *lock)		__acquires(lock); | 
 | 26 | void __lockfunc _write_lock(rwlock_t *lock)		__acquires(lock); | 
 | 27 | void __lockfunc _spin_lock_bh(spinlock_t *lock)		__acquires(lock); | 
 | 28 | void __lockfunc _read_lock_bh(rwlock_t *lock)		__acquires(lock); | 
 | 29 | void __lockfunc _write_lock_bh(rwlock_t *lock)		__acquires(lock); | 
 | 30 | void __lockfunc _spin_lock_irq(spinlock_t *lock)	__acquires(lock); | 
 | 31 | void __lockfunc _read_lock_irq(rwlock_t *lock)		__acquires(lock); | 
 | 32 | void __lockfunc _write_lock_irq(rwlock_t *lock)		__acquires(lock); | 
| Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 33 | unsigned long __lockfunc _spin_lock_irqsave(spinlock_t *lock) | 
| Josh Triplett | 9f50b93 | 2006-09-29 02:00:59 -0700 | [diff] [blame] | 34 | 							__acquires(lock); | 
| Arjan van de Ven | cfd3ef2 | 2006-11-25 11:09:37 -0800 | [diff] [blame] | 35 | unsigned long __lockfunc _spin_lock_irqsave_nested(spinlock_t *lock, int subclass) | 
 | 36 | 							__acquires(lock); | 
| Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 37 | unsigned long __lockfunc _read_lock_irqsave(rwlock_t *lock) | 
| Josh Triplett | 9f50b93 | 2006-09-29 02:00:59 -0700 | [diff] [blame] | 38 | 							__acquires(lock); | 
| Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 39 | unsigned long __lockfunc _write_lock_irqsave(rwlock_t *lock) | 
| Josh Triplett | 9f50b93 | 2006-09-29 02:00:59 -0700 | [diff] [blame] | 40 | 							__acquires(lock); | 
| Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 41 | int __lockfunc _spin_trylock(spinlock_t *lock); | 
 | 42 | int __lockfunc _read_trylock(rwlock_t *lock); | 
 | 43 | int __lockfunc _write_trylock(rwlock_t *lock); | 
 | 44 | int __lockfunc _spin_trylock_bh(spinlock_t *lock); | 
| Josh Triplett | 9f50b93 | 2006-09-29 02:00:59 -0700 | [diff] [blame] | 45 | void __lockfunc _spin_unlock(spinlock_t *lock)		__releases(lock); | 
 | 46 | void __lockfunc _read_unlock(rwlock_t *lock)		__releases(lock); | 
 | 47 | void __lockfunc _write_unlock(rwlock_t *lock)		__releases(lock); | 
 | 48 | void __lockfunc _spin_unlock_bh(spinlock_t *lock)	__releases(lock); | 
 | 49 | void __lockfunc _read_unlock_bh(rwlock_t *lock)		__releases(lock); | 
 | 50 | void __lockfunc _write_unlock_bh(rwlock_t *lock)	__releases(lock); | 
 | 51 | void __lockfunc _spin_unlock_irq(spinlock_t *lock)	__releases(lock); | 
 | 52 | void __lockfunc _read_unlock_irq(rwlock_t *lock)	__releases(lock); | 
 | 53 | void __lockfunc _write_unlock_irq(rwlock_t *lock)	__releases(lock); | 
| Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 54 | void __lockfunc _spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags) | 
| Josh Triplett | 9f50b93 | 2006-09-29 02:00:59 -0700 | [diff] [blame] | 55 | 							__releases(lock); | 
| Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 56 | void __lockfunc _read_unlock_irqrestore(rwlock_t *lock, unsigned long flags) | 
| Josh Triplett | 9f50b93 | 2006-09-29 02:00:59 -0700 | [diff] [blame] | 57 | 							__releases(lock); | 
| Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 58 | void __lockfunc _write_unlock_irqrestore(rwlock_t *lock, unsigned long flags) | 
| Josh Triplett | 9f50b93 | 2006-09-29 02:00:59 -0700 | [diff] [blame] | 59 | 							__releases(lock); | 
| Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 60 |  | 
 | 61 | #endif /* __LINUX_SPINLOCK_API_SMP_H */ |