Rev 2089 | Rev 2183 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 2089 | Rev 2093 | ||
---|---|---|---|
Line 51... | Line 51... | ||
51 | /* |
51 | /* |
52 | * SPINLOCK_DECLARE is to be used for dynamically allocated spinlocks, |
52 | * SPINLOCK_DECLARE is to be used for dynamically allocated spinlocks, |
53 | * where the lock gets initialized in run time. |
53 | * where the lock gets initialized in run time. |
54 | */ |
54 | */ |
55 | #define SPINLOCK_DECLARE(slname) spinlock_t slname |
55 | #define SPINLOCK_DECLARE(slname) spinlock_t slname |
- | 56 | #define SPINLOCK_EXTERN(slname) extern spinlock_t slname |
|
56 | 57 | ||
57 | /* |
58 | /* |
58 | * SPINLOCK_INITIALIZE is to be used for statically allocated spinlocks. |
59 | * SPINLOCK_INITIALIZE is to be used for statically allocated spinlocks. |
59 | * It declares and initializes the lock. |
60 | * It declares and initializes the lock. |
60 | */ |
61 | */ |
Line 100... | Line 101... | ||
100 | preemption_enable(); |
101 | preemption_enable(); |
101 | } |
102 | } |
102 | 103 | ||
103 | #else |
104 | #else |
104 | 105 | ||
105 | typedef void spinlock_t; |
- | |
106 | - | ||
107 | /* On UP systems, spinlocks are effectively left out. */ |
106 | /* On UP systems, spinlocks are effectively left out. */ |
108 | #define SPINLOCK_DECLARE(name) |
107 | #define SPINLOCK_DECLARE(name) |
- | 108 | #define SPINLOCK_EXTERN(name) |
|
109 | #define SPINLOCK_INITIALIZE(name) |
109 | #define SPINLOCK_INITIALIZE(name) |
110 | 110 | ||
111 | #define spinlock_initialize(x, name) |
111 | #define spinlock_initialize(x, name) |
112 | #define spinlock_lock(x) preemption_disable() |
112 | #define spinlock_lock(x) preemption_disable() |
113 | #define spinlock_trylock(x) (preemption_disable(), 1) |
113 | #define spinlock_trylock(x) (preemption_disable(), 1) |