Commit | Line | Data |
---|---|---|
fb1c8f93 IM |
1 | #ifndef __LINUX_SPINLOCK_TYPES_UP_H |
2 | #define __LINUX_SPINLOCK_TYPES_UP_H | |
3 | ||
4 | #ifndef __LINUX_SPINLOCK_TYPES_H | |
5 | # error "please don't include this file directly" | |
6 | #endif | |
7 | ||
8 | /* | |
9 | * include/linux/spinlock_types_up.h - spinlock type definitions for UP | |
10 | * | |
11 | * portions Copyright 2005, Red Hat, Inc., Ingo Molnar | |
12 | * Released under the General Public License (GPL). | |
13 | */ | |
14 | ||
15 | #ifdef CONFIG_DEBUG_SPINLOCK | |
16 | ||
17 | typedef struct { | |
18 | volatile unsigned int slock; | |
19 | } raw_spinlock_t; | |
20 | ||
21 | #define __RAW_SPIN_LOCK_UNLOCKED { 1 } | |
22 | ||
23 | #else | |
24 | ||
25 | /* | |
26 | * All gcc 2.95 versions and early versions of 2.96 have a nasty bug | |
27 | * with empty initializers. | |
28 | */ | |
29 | #if (__GNUC__ > 2) | |
30 | typedef struct { } raw_spinlock_t; | |
31 | ||
32 | #define __RAW_SPIN_LOCK_UNLOCKED { } | |
33 | #else | |
34 | typedef struct { int gcc_is_buggy; } raw_spinlock_t; | |
35 | #define __RAW_SPIN_LOCK_UNLOCKED (raw_spinlock_t) { 0 } | |
36 | #endif | |
37 | ||
38 | #endif | |
39 | ||
40 | #if (__GNUC__ > 2) | |
41 | typedef struct { | |
42 | /* no debug version on UP */ | |
43 | } raw_rwlock_t; | |
44 | ||
45 | #define __RAW_RW_LOCK_UNLOCKED { } | |
46 | #else | |
47 | typedef struct { int gcc_is_buggy; } raw_rwlock_t; | |
48 | #define __RAW_RW_LOCK_UNLOCKED (raw_rwlock_t) { 0 } | |
49 | #endif | |
50 | ||
51 | #endif /* __LINUX_SPINLOCK_TYPES_UP_H */ |