patch-2.1.127 linux/include/asm-i386/spinlock.h
Next file: linux/include/asm-i386/system.h
Previous file: linux/fs/umsdos/rdir.c
Back to the patch index
Back to the overall index
- Lines: 68
- Date:
Tue Nov 3 22:11:55 1998
- Orig file:
v2.1.126/linux/include/asm-i386/spinlock.h
- Orig date:
Thu Aug 6 14:06:33 1998
diff -u --recursive --new-file v2.1.126/linux/include/asm-i386/spinlock.h linux/include/asm-i386/spinlock.h
@@ -14,10 +14,10 @@
*/
#if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
typedef struct { } spinlock_t;
- #define SPIN_LOCK_UNLOCKED { }
+ #define SPIN_LOCK_UNLOCKED (spinlock_t) { }
#else
typedef struct { int gcc_is_buggy; } spinlock_t;
- #define SPIN_LOCK_UNLOCKED { 0 }
+ #define SPIN_LOCK_UNLOCKED (spinlock_t) { 0 }
#endif
#define spin_lock_init(lock) do { } while(0)
@@ -38,7 +38,7 @@
typedef struct {
volatile unsigned int lock;
} spinlock_t;
-#define SPIN_LOCK_UNLOCKED { 0 }
+#define SPIN_LOCK_UNLOCKED (spinlock_t) { 0 }
#define spin_lock_init(x) do { (x)->lock = 0; } while (0)
#define spin_trylock(lock) (!test_and_set_bit(0,(lock)))
@@ -61,7 +61,7 @@
volatile unsigned int babble;
const char *module;
} spinlock_t;
-#define SPIN_LOCK_UNLOCKED { 0, 25, __BASE_FILE__ }
+#define SPIN_LOCK_UNLOCKED (spinlock_t) { 0, 25, __BASE_FILE__ }
#include <linux/kernel.h>
@@ -88,9 +88,16 @@
* can "mix" irq-safe locks - any writer needs to get a
* irq-safe write-lock, but readers can get non-irqsafe
* read-locks.
+ *
+ * Gcc-2.7.x has a nasty bug with empty initializers.
*/
-typedef struct { } rwlock_t;
-#define RW_LOCK_UNLOCKED { }
+#if (__GNUC__ > 2) || (__GNUC__ == 2 && __GNUC_MINOR__ >= 8)
+ typedef struct { } rwlock_t;
+ #define RW_LOCK_UNLOCKED (rwlock_t) { }
+#else
+ typedef struct { int gcc_is_buggy; } rwlock_t;
+ #define RW_LOCK_UNLOCKED (rwlock_t) { 0 }
+#endif
#define read_lock(lock) do { } while(0)
#define read_unlock(lock) do { } while(0)
@@ -120,7 +127,7 @@
volatile unsigned int lock;
} spinlock_t;
-#define SPIN_LOCK_UNLOCKED { 0 }
+#define SPIN_LOCK_UNLOCKED (spinlock_t) { 0 }
#define spin_lock_init(x) do { (x)->lock = 0; } while(0)
/*
@@ -188,7 +195,7 @@
unsigned long previous;
} rwlock_t;
-#define RW_LOCK_UNLOCKED { 0, 0 }
+#define RW_LOCK_UNLOCKED (rwlock_t) { 0, 0 }
/*
* On x86, we implement read-write locks as a 32-bit counter
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen, slshen@lbl.gov