BNX2X: Semaphore compatibility
authorBarret Rhoden <brho@cs.berkeley.edu>
Wed, 4 Feb 2015 18:40:36 +0000 (13:40 -0500)
committerBarret Rhoden <brho@cs.berkeley.edu>
Mon, 2 Mar 2015 16:59:08 +0000 (11:59 -0500)
Going with #defines, to keep down_interruptible and down_timeout.  Might need
those in the future.

kern/drivers/net/bnx2x/akaros_compat.h

index 1131f9b..3477d5d 100644 (file)
@@ -5,9 +5,6 @@
 #ifndef ROS_KERN_AKAROS_COMPAT_H
 #define ROS_KERN_AKAROS_COMPAT_H
 
-#define __rcu
-typedef unsigned long dma_addr_t;
-
 /* Common headers that most driver files will need */
 
 #include <assert.h>
@@ -24,4 +21,19 @@ typedef unsigned long dma_addr_t;
 #include <mii.h>
 #include <umem.h>
 
+#define __rcu
+typedef unsigned long dma_addr_t;
+
+#define DEFINE_SEMAPHORE(name)  \
+    struct semaphore name = SEMAPHORE_INITIALIZER_IRQSAVE(name, 1)
+#define sema_init(sem, val) sem_init_irqsave(sem, val)
+#define up(sem) sem_up(sem)
+#define down(sem) sem_down(sem)
+#define down_trylock(sem) ({!sem_trydown(sem);})
+/* In lieu of spatching, I wanted to keep the distinction between down and
+ * down_interruptible/down_timeout.  Akaros doesn't have the latter. */
+#define down_interruptible(sem) ({sem_down(sem); 0;})
+#define down_timeout(sem, timeout) ({sem_down(sem); 0;})
+
+
 #endif /* ROS_KERN_AKAROS_COMPAT_H */