blob: d6b479bdb8865b565071779747dfd526f1447a1b [file] [log] [blame]
Ingo Molnarfb1c8f92005-09-10 00:25:56 -07001#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
8typedef struct {
Matthew Wilcox14e256c2005-10-21 22:41:25 -04009#ifdef CONFIG_PA20
10 volatile unsigned int slock;
11# define __RAW_SPIN_LOCK_UNLOCKED { 1 }
12#else
Ingo Molnarfb1c8f92005-09-10 00:25:56 -070013 volatile unsigned int lock[4];
Matthew Wilcox14e256c2005-10-21 22:41:25 -040014# define __RAW_SPIN_LOCK_UNLOCKED { { 1, 1, 1, 1 } }
15#endif
Ingo Molnarfb1c8f92005-09-10 00:25:56 -070016} raw_spinlock_t;
17
Ingo Molnarfb1c8f92005-09-10 00:25:56 -070018typedef 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