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 
10 typedef 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 
27 typedef struct {
28 	volatile unsigned int lock;
29 } arch_rwlock_t;
30 
31 #define __ARCH_RW_LOCK_UNLOCKED		{ 0 }
32 
33 #endif
34