Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 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 | |||||
Will Deacon | 546c289 | 2012-07-06 15:43:41 +0100 | [diff] [blame] | 8 | #define TICKET_SHIFT 16 |
9 | |||||
Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 10 | typedef struct { |
Will Deacon | 546c289 | 2012-07-06 15:43:41 +0100 | [diff] [blame] | 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 | }; | ||||
Thomas Gleixner | 445c895 | 2009-12-02 19:49:50 +0100 | [diff] [blame] | 23 | } arch_spinlock_t; |
Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 24 | |
Will Deacon | 546c289 | 2012-07-06 15:43:41 +0100 | [diff] [blame] | 25 | #define __ARCH_SPIN_LOCK_UNLOCKED { { 0 } } |
Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 26 | |
27 | typedef struct { | ||||
Will Deacon | 9bb17be | 2013-07-02 14:54:33 +0100 | [diff] [blame] | 28 | u32 lock; |
Thomas Gleixner | fb3a6bb | 2009-12-03 20:01:19 +0100 | [diff] [blame] | 29 | } arch_rwlock_t; |
Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 30 | |
Thomas Gleixner | fb3a6bb | 2009-12-03 20:01:19 +0100 | [diff] [blame] | 31 | #define __ARCH_RW_LOCK_UNLOCKED { 0 } |
Ingo Molnar | fb1c8f9 | 2005-09-10 00:25:56 -0700 | [diff] [blame] | 32 | |
33 | #endif |