1#ifndef __ASM_SPINLOCK_TYPES_H 2#define __ASM_SPINLOCK_TYPES_H 3 4#ifndef __LINUX_SPINLOCK_TYPES_H 5# error "please don't include this file directly" 6#endif 7 8#define TICKET_SHIFT 16 9 10typedef struct { 11 union { 12 u32 slock; 13 struct __raw_tickets { 14#ifdef __ARMEB__ 15 u16 next; 16 u16 owner; 17#else 18 u16 owner; 19 u16 next; 20#endif 21 } tickets; 22 }; 23} arch_spinlock_t; 24 25#define __ARCH_SPIN_LOCK_UNLOCKED { { 0 } } 26 27typedef struct { 28 volatile unsigned int lock; 29} arch_rwlock_t; 30 31#define __ARCH_RW_LOCK_UNLOCKED { 0 } 32 33#endif 34