diff options
| author | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-10-23 23:34:51 -0700 |
|---|---|---|
| committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2004-10-23 23:34:51 -0700 |
| commit | 91d9733c0c2f94826394ae8510368400da202480 (patch) | |
| tree | b3a408403aa7b8446df1e1f911246c9d1e1d6992 /include/linux | |
| parent | 37add8db22923f1ccafcbb7d6d7ac5adc831014a (diff) | |
Annotate the trivial unconditional lock/unlock functions on SMP.
This does _not_ handle the conditional ones (lock_kernel and the
trylock variants), so there will be a fair number of context
error warnings with this. However, the warnings are disabled by
default in sparse - you have to use "-Wcontext" to see them.
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/spinlock.h | 56 |
1 files changed, 31 insertions, 25 deletions
diff --git a/include/linux/spinlock.h b/include/linux/spinlock.h index 37852d55f946..046140c091a0 100644 --- a/include/linux/spinlock.h +++ b/include/linux/spinlock.h @@ -42,33 +42,39 @@ int __lockfunc _spin_trylock(spinlock_t *lock); int __lockfunc _write_trylock(rwlock_t *lock); -void __lockfunc _spin_lock(spinlock_t *lock); -void __lockfunc _write_lock(rwlock_t *lock); -void __lockfunc _spin_lock(spinlock_t *lock); -void __lockfunc _read_lock(rwlock_t *lock); -void __lockfunc _spin_unlock(spinlock_t *lock); -void __lockfunc _write_unlock(rwlock_t *lock); -void __lockfunc _read_unlock(rwlock_t *lock); -unsigned long __lockfunc _spin_lock_irqsave(spinlock_t *lock); -unsigned long __lockfunc _read_lock_irqsave(rwlock_t *lock); -unsigned long __lockfunc _write_lock_irqsave(rwlock_t *lock); -void __lockfunc _spin_lock_irq(spinlock_t *lock); -void __lockfunc _spin_lock_bh(spinlock_t *lock); -void __lockfunc _read_lock_irq(rwlock_t *lock); -void __lockfunc _read_lock_bh(rwlock_t *lock); -void __lockfunc _write_lock_irq(rwlock_t *lock); -void __lockfunc _write_lock_bh(rwlock_t *lock); -void __lockfunc _spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags); -void __lockfunc _spin_unlock_irq(spinlock_t *lock); -void __lockfunc _spin_unlock_bh(spinlock_t *lock); -void __lockfunc _read_unlock_irqrestore(rwlock_t *lock, unsigned long flags); -void __lockfunc _read_unlock_irq(rwlock_t *lock); -void __lockfunc _read_unlock_bh(rwlock_t *lock); -void __lockfunc _write_unlock_irqrestore(rwlock_t *lock, unsigned long flags); -void __lockfunc _write_unlock_irq(rwlock_t *lock); -void __lockfunc _write_unlock_bh(rwlock_t *lock); + +void __lockfunc _spin_lock(spinlock_t *lock) __acquires(spinlock_t); +void __lockfunc _read_lock(rwlock_t *lock) __acquires(rwlock_t); +void __lockfunc _write_lock(rwlock_t *lock) __acquires(rwlock_t); + +void __lockfunc _spin_unlock(spinlock_t *lock) __releases(spinlock_t); +void __lockfunc _read_unlock(rwlock_t *lock) __releases(rwlock_t); +void __lockfunc _write_unlock(rwlock_t *lock) __releases(rwlock_t); + +unsigned long __lockfunc _spin_lock_irqsave(spinlock_t *lock) __acquires(spinlock_t); +unsigned long __lockfunc _read_lock_irqsave(rwlock_t *lock) __acquires(rwlock_t); +unsigned long __lockfunc _write_lock_irqsave(rwlock_t *lock) __acquires(rwlock_t); + +void __lockfunc _spin_lock_irq(spinlock_t *lock) __acquires(spinlock_t); +void __lockfunc _spin_lock_bh(spinlock_t *lock) __acquires(spinlock_t); +void __lockfunc _read_lock_irq(rwlock_t *lock) __acquires(rwlock_t); +void __lockfunc _read_lock_bh(rwlock_t *lock) __acquires(rwlock_t); +void __lockfunc _write_lock_irq(rwlock_t *lock) __acquires(rwlock_t); +void __lockfunc _write_lock_bh(rwlock_t *lock) __acquires(rwlock_t); + +void __lockfunc _spin_unlock_irqrestore(spinlock_t *lock, unsigned long flags) __releases(spinlock_t); +void __lockfunc _spin_unlock_irq(spinlock_t *lock) __releases(spinlock_t); +void __lockfunc _spin_unlock_bh(spinlock_t *lock) __releases(spinlock_t); +void __lockfunc _read_unlock_irqrestore(rwlock_t *lock, unsigned long flags) __releases(rwlock_t); +void __lockfunc _read_unlock_irq(rwlock_t *lock) __releases(rwlock_t); +void __lockfunc _read_unlock_bh(rwlock_t *lock) __releases(rwlock_t); +void __lockfunc _write_unlock_irqrestore(rwlock_t *lock, unsigned long flags) __releases(rwlock_t); +void __lockfunc _write_unlock_irq(rwlock_t *lock) __releases(rwlock_t); +void __lockfunc _write_unlock_bh(rwlock_t *lock) __releases(rwlock_t); + int __lockfunc _spin_trylock_bh(spinlock_t *lock); int in_lock_functions(unsigned long addr); + #else #define in_lock_functions(ADDR) 0 |
