1 #ifndef __ASM_GENERIC_QRWLOCK_TYPES_H 2 #define __ASM_GENERIC_QRWLOCK_TYPES_H 3 4 #include <linux/types.h> 5 #include <asm/spinlock_types.h> 6 7 /* 8 * The queue read/write lock data structure 9 */ 10 11 typedef struct qrwlock { 12 atomic_t cnts; 13 arch_spinlock_t wait_lock; 14 } arch_rwlock_t; 15 16 #define __ARCH_RW_LOCK_UNLOCKED { \ 17 .cnts = ATOMIC_INIT(0), \ 18 .wait_lock = __ARCH_SPIN_LOCK_UNLOCKED, \ 19 } 20 21 #endif /* __ASM_GENERIC_QRWLOCK_TYPES_H */ 22