summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--include/dahdi/kernel.h13
1 files changed, 10 insertions, 3 deletions
diff --git a/include/dahdi/kernel.h b/include/dahdi/kernel.h
index 69f883e..33b19cd 100644
--- a/include/dahdi/kernel.h
+++ b/include/dahdi/kernel.h
@@ -1381,9 +1381,16 @@ typedef u32 __bitwise pm_message_t;
#endif
#ifndef DEFINE_MUTEX
-#define DEFINE_MUTEX DEFINE_SEMAPHORE
-#define mutex_lock(_x) down(_x)
-#define mutex_unlock(_x) up(_x)
+struct mutex {
+ struct semaphore sem;
+};
+#define DEFINE_MUTEX(name) \
+ struct mutex name = { \
+ .sem = __SEMAPHORE_INITIALIZER((name).sem, 1), \
+ }
+#define mutex_lock(_x) down(&(_x)->sem)
+#define mutex_unlock(_x) up(&(_x)->sem)
+#define mutex_init(_x) sema_init(&(_x)->sem, 1)
#endif
#ifndef DEFINE_PCI_DEVICE_TABLE