Rev 2071 | Rev 2089 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
| Rev 2071 | Rev 2085 | ||
|---|---|---|---|
| Line 40... | Line 40... | ||
| 40 | #include <preemption.h> |
40 | #include <preemption.h> |
| 41 | #include <atomic.h> |
41 | #include <atomic.h> |
| 42 | #include <debug.h> |
42 | #include <debug.h> |
| 43 | 43 | ||
| 44 | #ifdef CONFIG_SMP |
44 | #ifdef CONFIG_SMP |
| 45 | struct spinlock { |
45 | typedef struct { |
| 46 | #ifdef CONFIG_DEBUG_SPINLOCK |
46 | #ifdef CONFIG_DEBUG_SPINLOCK |
| 47 | char *name; |
47 | char *name; |
| 48 | #endif |
48 | #endif |
| 49 | atomic_t val; |
49 | atomic_t val; |
| 50 | }; |
50 | } spinlock_t; |
| 51 | 51 | ||
| 52 | /* |
52 | /* |
| 53 | * SPINLOCK_DECLARE is to be used for dynamically allocated spinlocks, |
53 | * SPINLOCK_DECLARE is to be used for dynamically allocated spinlocks, |
| 54 | * where the lock gets initialized in run time. |
54 | * where the lock gets initialized in run time. |
| 55 | */ |
55 | */ |
| Line 101... | Line 101... | ||
| 101 | preemption_enable(); |
101 | preemption_enable(); |
| 102 | } |
102 | } |
| 103 | 103 | ||
| 104 | #else |
104 | #else |
| 105 | 105 | ||
| - | 106 | typedef void spinlock_t; |
|
| - | 107 | ||
| 106 | /* On UP systems, spinlocks are effectively left out. */ |
108 | /* On UP systems, spinlocks are effectively left out. */ |
| 107 | #define SPINLOCK_DECLARE(name) |
109 | #define SPINLOCK_DECLARE(name) |
| 108 | #define SPINLOCK_INITIALIZE(name) |
110 | #define SPINLOCK_INITIALIZE(name) |
| 109 | 111 | ||
| 110 | #define spinlock_initialize(x,name) |
112 | #define spinlock_initialize(x,name) |