Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/i2c-2.6
[linux-2.6] / include / asm-parisc / spinlock_types.h
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 typedef struct {
9 #ifdef CONFIG_PA20
10         volatile unsigned int slock;
11 # define __RAW_SPIN_LOCK_UNLOCKED { 1 }
12 #else
13         volatile unsigned int lock[4];
14 # define __RAW_SPIN_LOCK_UNLOCKED       { { 1, 1, 1, 1 } }
15 #endif
16 } raw_spinlock_t;
17
18 typedef struct {
19         raw_spinlock_t lock;
20         volatile int counter;
21 } raw_rwlock_t;
22
23 #define __RAW_RW_LOCK_UNLOCKED          { __RAW_SPIN_LOCK_UNLOCKED, 0 }
24
25 #endif