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 8typedef 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 16typedef 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 25