hc
2023-11-06 e3e12f52b214121840b44c91de5b3e5af5d3eb84
kernel/include/linux/spinlock_types.h
....@@ -9,77 +9,15 @@
99 * Released under the General Public License (GPL).
1010 */
1111
12
-#if defined(CONFIG_SMP)
13
-# include <asm/spinlock_types.h>
12
+#include <linux/spinlock_types_raw.h>
13
+
14
+#ifndef CONFIG_PREEMPT_RT_FULL
15
+# include <linux/spinlock_types_nort.h>
16
+# include <linux/rwlock_types.h>
1417 #else
15
-# include <linux/spinlock_types_up.h>
18
+# include <linux/rtmutex.h>
19
+# include <linux/spinlock_types_rt.h>
20
+# include <linux/rwlock_types_rt.h>
1621 #endif
17
-
18
-#include <linux/lockdep.h>
19
-
20
-typedef struct raw_spinlock {
21
- arch_spinlock_t raw_lock;
22
-#ifdef CONFIG_DEBUG_SPINLOCK
23
- unsigned int magic, owner_cpu;
24
- void *owner;
25
-#endif
26
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
27
- struct lockdep_map dep_map;
28
-#endif
29
-} raw_spinlock_t;
30
-
31
-#define SPINLOCK_MAGIC 0xdead4ead
32
-
33
-#define SPINLOCK_OWNER_INIT ((void *)-1L)
34
-
35
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
36
-# define SPIN_DEP_MAP_INIT(lockname) .dep_map = { .name = #lockname }
37
-#else
38
-# define SPIN_DEP_MAP_INIT(lockname)
39
-#endif
40
-
41
-#ifdef CONFIG_DEBUG_SPINLOCK
42
-# define SPIN_DEBUG_INIT(lockname) \
43
- .magic = SPINLOCK_MAGIC, \
44
- .owner_cpu = -1, \
45
- .owner = SPINLOCK_OWNER_INIT,
46
-#else
47
-# define SPIN_DEBUG_INIT(lockname)
48
-#endif
49
-
50
-#define __RAW_SPIN_LOCK_INITIALIZER(lockname) \
51
- { \
52
- .raw_lock = __ARCH_SPIN_LOCK_UNLOCKED, \
53
- SPIN_DEBUG_INIT(lockname) \
54
- SPIN_DEP_MAP_INIT(lockname) }
55
-
56
-#define __RAW_SPIN_LOCK_UNLOCKED(lockname) \
57
- (raw_spinlock_t) __RAW_SPIN_LOCK_INITIALIZER(lockname)
58
-
59
-#define DEFINE_RAW_SPINLOCK(x) raw_spinlock_t x = __RAW_SPIN_LOCK_UNLOCKED(x)
60
-
61
-typedef struct spinlock {
62
- union {
63
- struct raw_spinlock rlock;
64
-
65
-#ifdef CONFIG_DEBUG_LOCK_ALLOC
66
-# define LOCK_PADSIZE (offsetof(struct raw_spinlock, dep_map))
67
- struct {
68
- u8 __padding[LOCK_PADSIZE];
69
- struct lockdep_map dep_map;
70
- };
71
-#endif
72
- };
73
-} spinlock_t;
74
-
75
-#define __SPIN_LOCK_INITIALIZER(lockname) \
76
- { { .rlock = __RAW_SPIN_LOCK_INITIALIZER(lockname) } }
77
-
78
-#define __SPIN_LOCK_UNLOCKED(lockname) \
79
- (spinlock_t ) __SPIN_LOCK_INITIALIZER(lockname)
80
-
81
-#define DEFINE_SPINLOCK(x) spinlock_t x = __SPIN_LOCK_UNLOCKED(x)
82
-
83
-#include <linux/rwlock_types.h>
8422
8523 #endif /* __LINUX_SPINLOCK_TYPES_H */