spinlock.h (db8c246937713e60b7628661ccc187eeb81f2bae) | spinlock.h (efc1d23b3d9af8cbff9f26677d67fb9c1b9cb792) |
---|---|
1/* 2 * S390 version 3 * Copyright IBM Corp. 1999 4 * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) 5 * 6 * Derived from "include/asm-i386/spinlock.h" 7 */ 8 --- 30 unchanged lines hidden (view full) --- 39 do { while (arch_spin_is_locked(lock)) \ 40 arch_spin_relax(lock); } while (0) 41 42extern void arch_spin_lock_wait(arch_spinlock_t *); 43extern void arch_spin_lock_wait_flags(arch_spinlock_t *, unsigned long flags); 44extern int arch_spin_trylock_retry(arch_spinlock_t *); 45extern void arch_spin_relax(arch_spinlock_t *lock); 46 | 1/* 2 * S390 version 3 * Copyright IBM Corp. 1999 4 * Author(s): Martin Schwidefsky (schwidefsky@de.ibm.com) 5 * 6 * Derived from "include/asm-i386/spinlock.h" 7 */ 8 --- 30 unchanged lines hidden (view full) --- 39 do { while (arch_spin_is_locked(lock)) \ 40 arch_spin_relax(lock); } while (0) 41 42extern void arch_spin_lock_wait(arch_spinlock_t *); 43extern void arch_spin_lock_wait_flags(arch_spinlock_t *, unsigned long flags); 44extern int arch_spin_trylock_retry(arch_spinlock_t *); 45extern void arch_spin_relax(arch_spinlock_t *lock); 46 |
47static inline int arch_spin_value_unlocked(arch_spinlock_t lock) 48{ 49 return lock.owner_cpu == 0; 50} 51 |
|
47static inline void arch_spin_lock(arch_spinlock_t *lp) 48{ 49 int old; 50 51 old = _raw_compare_and_swap(&lp->owner_cpu, 0, ~smp_processor_id()); 52 if (likely(old == 0)) 53 return; 54 arch_spin_lock_wait(lp); --- 122 unchanged lines hidden --- | 52static inline void arch_spin_lock(arch_spinlock_t *lp) 53{ 54 int old; 55 56 old = _raw_compare_and_swap(&lp->owner_cpu, 0, ~smp_processor_id()); 57 if (likely(old == 0)) 58 return; 59 arch_spin_lock_wait(lp); --- 122 unchanged lines hidden --- |