Index: kernel/generic/include/synch/spinlock.h
===================================================================
--- kernel/generic/include/synch/spinlock.h	(revision 6c4a56f3dfeb76e8cadec584d06e5862d6074d3e)
+++ kernel/generic/include/synch/spinlock.h	(revision 0f24c57e045c0cbbc79a5fa384ea221044ac03db)
@@ -43,9 +43,11 @@
 
 #ifdef CONFIG_SMP
+
 typedef struct {
+	atomic_t val;
+	
 #ifdef CONFIG_DEBUG_SPINLOCK
 	char *name;
 #endif
-	atomic_t val;
 } spinlock_t;
 
@@ -54,6 +56,6 @@
  * where the lock gets initialized in run time.
  */
-#define SPINLOCK_DECLARE(slname) 	spinlock_t slname
-#define SPINLOCK_EXTERN(slname)		extern spinlock_t slname
+#define SPINLOCK_DECLARE(lock_name)  spinlock_t lock_name
+#define SPINLOCK_EXTERN(lock_name)   extern spinlock_t lock_name
 
 /*
@@ -62,25 +64,44 @@
  */
 #ifdef CONFIG_DEBUG_SPINLOCK
-#define SPINLOCK_INITIALIZE(slname) 	\
-	spinlock_t slname = { 		\
-		.name = #slname,	\
-		.val = { 0 }		\
+
+#define SPINLOCK_INITIALIZE_NAME(lock_name, desc_name) \
+	spinlock_t lock_name = { \
+		.name = desc_name, \
+		.val = { 0 } \
 	}
+
+#define SPINLOCK_STATIC_INITIALIZE_NAME(lock_name, desc_name) \
+	static spinlock_t lock_name = { \
+		.name = desc_name, \
+		.val = { 0 } \
+	}
+
+#define spinlock_lock(lock)  spinlock_lock_debug(lock)
+
 #else
-#define SPINLOCK_INITIALIZE(slname) 	\
-	spinlock_t slname = { 		\
-		.val = { 0 }		\
+
+#define SPINLOCK_INITIALIZE_NAME(lock_name, desc_name) \
+	spinlock_t lock_name = { \
+		.val = { 0 } \
 	}
+
+#define SPINLOCK_STATIC_INITIALIZE_NAME(lock_name, desc_name) \
+	static spinlock_t lock_name = { \
+		.val = { 0 } \
+	}
+
+#define spinlock_lock(lock)  atomic_lock_arch(&(lock)->val)
+
 #endif
 
-extern void spinlock_initialize(spinlock_t *sl, char *name);
-extern int spinlock_trylock(spinlock_t *sl);
-extern void spinlock_lock_debug(spinlock_t *sl);
+#define SPINLOCK_INITIALIZE(lock_name) \
+	SPINLOCK_INITIALIZE_NAME(lock_name, #lock_name)
 
-#ifdef CONFIG_DEBUG_SPINLOCK
-#  define spinlock_lock(x) spinlock_lock_debug(x)
-#else
-#  define spinlock_lock(x) atomic_lock_arch(&(x)->val)
-#endif
+#define SPINLOCK_STATIC_INITIALIZE(lock_name) \
+	SPINLOCK_STATIC_INITIALIZE_NAME(lock_name, #lock_name)
+
+extern void spinlock_initialize(spinlock_t *lock, char *name);
+extern int spinlock_trylock(spinlock_t *lock);
+extern void spinlock_lock_debug(spinlock_t *lock);
 
 /** Unlock spinlock
@@ -90,8 +111,8 @@
  * @param sl Pointer to spinlock_t structure.
  */
-static inline void spinlock_unlock(spinlock_t *sl)
+static inline void spinlock_unlock(spinlock_t *lock)
 {
-	ASSERT(atomic_get(&sl->val) != 0);
-
+	ASSERT(atomic_get(&lock->val) != 0);
+	
 	/*
 	 * Prevent critical section code from bleeding out this way down.
@@ -99,5 +120,5 @@
 	CS_LEAVE_BARRIER();
 	
-	atomic_set(&sl->val, 0);
+	atomic_set(&lock->val, 0);
 	preemption_enable();
 }
@@ -105,31 +126,43 @@
 #ifdef CONFIG_DEBUG_SPINLOCK
 
-extern int printf(const char *, ...);
+#include <print.h>
 
-#define DEADLOCK_THRESHOLD		100000000
-#define DEADLOCK_PROBE_INIT(pname)	size_t pname = 0
-#define DEADLOCK_PROBE(pname, value)					\
-	if ((pname)++ > (value)) {					\
-		(pname) = 0;						\
-		printf("Deadlock probe %s: exceeded threshold %u\n",	\
-		    "cpu%u: function=%s, line=%u\n",			\
-		    #pname, (value), CPU->id, __func__, __LINE__);	\
+#define DEADLOCK_THRESHOLD  100000000
+
+#define DEADLOCK_PROBE_INIT(pname)  size_t pname = 0
+
+#define DEADLOCK_PROBE(pname, value) \
+	if ((pname)++ > (value)) { \
+		(pname) = 0; \
+		printf("Deadlock probe %s: exceeded threshold %u\n", \
+		    "cpu%u: function=%s, line=%u\n", \
+		    #pname, (value), CPU->id, __func__, __LINE__); \
 	}
-#else
-#define DEADLOCK_PROBE_INIT(pname)
-#define DEADLOCK_PROBE(pname, value)
-#endif
 
 #else
 
+#define DEADLOCK_PROBE_INIT(pname)
+#define DEADLOCK_PROBE(pname, value)
+
+#endif
+
+#else /* CONFIG_SMP */
+
 /* On UP systems, spinlocks are effectively left out. */
+
 #define SPINLOCK_DECLARE(name)
 #define SPINLOCK_EXTERN(name)
+
 #define SPINLOCK_INITIALIZE(name)
+#define SPINLOCK_STATIC_INITIALIZE(name)
 
-#define spinlock_initialize(x, name)
-#define spinlock_lock(x)		preemption_disable()
-#define spinlock_trylock(x) 		(preemption_disable(), 1)
-#define spinlock_unlock(x)		preemption_enable()
+#define SPINLOCK_INITIALIZE_NAME(name, desc_name)
+#define SPINLOCK_STATIC_INITIALIZE_NAME(name, desc_name)
+
+#define spinlock_initialize(lock, name)
+
+#define spinlock_lock(lock)     preemption_disable()
+#define spinlock_trylock(lock)  (preemption_disable(), 1)
+#define spinlock_unlock(lock)   preemption_enable()
 
 #define DEADLOCK_PROBE_INIT(pname)
