Merge master.kernel.org:/pub/scm/linux/kernel/git/gregkh/driver-2.6
[linux-2.6] / include / asm-sh / spinlock_types.h
1 #ifndef __ASM_SH_SPINLOCK_TYPES_H
2 #define __ASM_SH_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         volatile unsigned long lock;
10 } raw_spinlock_t;
11
12 #define __RAW_SPIN_LOCK_UNLOCKED        { 1 }
13
14 #include <asm/atomic.h>
15
16 typedef struct {
17         raw_spinlock_t lock;
18         atomic_t counter;
19 } raw_rwlock_t;
20
21 #define RW_LOCK_BIAS                    0x01000000
22 #define __RAW_RW_LOCK_UNLOCKED          { { 0 }, { RW_LOCK_BIAS } }
23
24 #endif