Subversion Repositories Kolibri OS

Rev

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