170af2f8aSWaiman Long #ifndef __ASM_GENERIC_QRWLOCK_TYPES_H 270af2f8aSWaiman Long #define __ASM_GENERIC_QRWLOCK_TYPES_H 370af2f8aSWaiman Long 470af2f8aSWaiman Long #include <linux/types.h> 570af2f8aSWaiman Long #include <asm/spinlock_types.h> 670af2f8aSWaiman Long 770af2f8aSWaiman Long /* 870af2f8aSWaiman Long * The queue read/write lock data structure 970af2f8aSWaiman Long */ 1070af2f8aSWaiman Long 1170af2f8aSWaiman Long typedef struct qrwlock { 1270af2f8aSWaiman Long atomic_t cnts; 1370af2f8aSWaiman Long arch_spinlock_t lock; 1470af2f8aSWaiman Long } arch_rwlock_t; 1570af2f8aSWaiman Long 1670af2f8aSWaiman Long #define __ARCH_RW_LOCK_UNLOCKED { \ 1770af2f8aSWaiman Long .cnts = ATOMIC_INIT(0), \ 1870af2f8aSWaiman Long .lock = __ARCH_SPIN_LOCK_UNLOCKED, \ 1970af2f8aSWaiman Long } 2070af2f8aSWaiman Long 2170af2f8aSWaiman Long #endif /* __ASM_GENERIC_QRWLOCK_TYPES_H */ 22