summaryrefslogtreecommitdiffstats
path: root/drivers/staging/csr/oska/spinlock.h
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/staging/csr/oska/spinlock.h')
-rw-r--r--drivers/staging/csr/oska/spinlock.h43
1 files changed, 43 insertions, 0 deletions
diff --git a/drivers/staging/csr/oska/spinlock.h b/drivers/staging/csr/oska/spinlock.h
new file mode 100644
index 000000000000..157b350107ae
--- /dev/null
+++ b/drivers/staging/csr/oska/spinlock.h
@@ -0,0 +1,43 @@
+/*
+ * OSKA Linux implementation -- spinlocks
+ *
+ * Copyright (C) 2007 Cambridge Silicon Radio Ltd.
+ *
+ * Refer to LICENSE.txt included with this source code for details on
+ * the license terms.
+ */
+#ifndef __OSKA_LINUX_SPINLOCK_H
+#define __OSKA_LINUX_SPINLOCK_H
+
+#include <linux/kernel.h>
+#include <linux/spinlock.h>
+
+typedef spinlock_t os_spinlock_t;
+typedef unsigned long os_int_status_t;
+
+static inline void os_spinlock_init(os_spinlock_t *lock)
+{
+ spinlock_t *l = (spinlock_t *)lock;
+ spin_lock_init(l);
+}
+
+static inline void os_spinlock_destroy(os_spinlock_t *lock)
+{
+ /* no op */
+}
+
+static inline void os_spinlock_lock_intsave(os_spinlock_t *lock,
+ os_int_status_t *int_state)
+{
+ spinlock_t *l = (spinlock_t *)lock;
+ spin_lock_irqsave(l, *int_state);
+}
+
+static inline void os_spinlock_unlock_intrestore(os_spinlock_t *lock,
+ os_int_status_t *int_state)
+{
+ spinlock_t *l = (spinlock_t *)lock;
+ spin_unlock_irqrestore(l, *int_state);
+}
+
+#endif /* #ifndef __OSKA_LINUX_SPINLOCK_H */