Rev 1408 | Rev 3031 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 1408 | Rev 1970 | ||
---|---|---|---|
Line 6... | Line 6... | ||
6 | * |
6 | * |
7 | * here's the role of the various spinlock/rwlock related include files: |
7 | * here's the role of the various spinlock/rwlock related include files: |
8 | * |
8 | * |
9 | * on SMP builds: |
9 | * on SMP builds: |
10 | * |
10 | * |
11 | * asm/spinlock_types.h: contains the raw_spinlock_t/raw_rwlock_t and the |
11 | * asm/spinlock_types.h: contains the arch_spinlock_t/arch_rwlock_t and the |
12 | * initializers |
12 | * initializers |
13 | * |
13 | * |
14 | * linux/spinlock_types.h: |
14 | * linux/spinlock_types.h: |
15 | * defines the generic type and initializers |
15 | * defines the generic type and initializers |
16 | * |
16 | * |
17 | * asm/spinlock.h: contains the __raw_spin_*()/etc. lowlevel |
17 | * asm/spinlock.h: contains the arch_spin_*()/etc. lowlevel |
18 | * implementations, mostly inline assembly code |
18 | * implementations, mostly inline assembly code |
19 | * |
19 | * |
20 | * (also included on UP-debug builds:) |
20 | * (also included on UP-debug builds:) |
21 | * |
21 | * |
22 | * linux/spinlock_api_smp.h: |
22 | * linux/spinlock_api_smp.h: |
Line 32... | Line 32... | ||
32 | * |
32 | * |
33 | * linux/spinlock_types.h: |
33 | * linux/spinlock_types.h: |
34 | * defines the generic type and initializers |
34 | * defines the generic type and initializers |
35 | * |
35 | * |
36 | * linux/spinlock_up.h: |
36 | * linux/spinlock_up.h: |
37 | * contains the __raw_spin_*()/etc. version of UP |
37 | * contains the arch_spin_*()/etc. version of UP |
38 | * builds. (which are NOPs on non-debug, non-preempt |
38 | * builds. (which are NOPs on non-debug, non-preempt |
39 | * builds) |
39 | * builds) |
40 | * |
40 | * |
41 | * (included on UP-non-debug builds:) |
41 | * (included on UP-non-debug builds:) |
42 | * |
42 | * |
Line 58... | Line 58... | ||
58 | //#include |
58 | //#include |
Line 59... | Line 59... | ||
59 | 59 | ||
60 | /* |
60 | /* |
61 | * Must define these before including other files, inline functions need them |
61 | * Must define these before including other files, inline functions need them |
62 | */ |
62 | */ |
Line 63... | Line 63... | ||
63 | #define LOCK_SECTION_NAME ".text.lock."KBUILD_BASENAME |
63 | #define LOCK_SECTION_NAME ".text..lock."KBUILD_BASENAME |
64 | 64 | ||
65 | #define LOCK_SECTION_START(extra) \ |
65 | #define LOCK_SECTION_START(extra) \ |
66 | ".subsection 1\n\t" \ |
66 | ".subsection 1\n\t" \ |
Line 73... | Line 73... | ||
73 | ".previous\n\t" |
73 | ".previous\n\t" |
Line 74... | Line 74... | ||
74 | 74 | ||
Line 75... | Line 75... | ||
75 | #define __lockfunc __attribute__((section(".spinlock.text"))) |
75 | #define __lockfunc __attribute__((section(".spinlock.text"))) |
76 | 76 | ||
77 | /* |
77 | /* |
78 | * Pull the raw_spinlock_t and raw_rwlock_t definitions: |
78 | * Pull the arch_spinlock_t and arch_rwlock_t definitions: |
Line 79... | Line 79... | ||
79 | */ |
79 | */ |
80 | #include |
80 | #include |
81 | 81 | ||
82 | /* |
82 | /* |
83 | * Pull the __raw*() functions/declarations (UP-nondebug doesnt need them): |
83 | * Pull the arch_spin*() functions/declarations (UP-nondebug doesn't need them): |
84 | */ |
84 | */ |
85 | #ifdef CONFIG_SMP |
85 | #ifdef CONFIG_SMP |