3477d5d4bf44d5c1d7644c291c24c0b6611f79dc
[akaros.git] / kern / drivers / net / bnx2x / akaros_compat.h
1 /* Copyright (c) 2015 Google Inc.
2  *
3  * Dumping ground for converting between Akaros and other OSs. */
4
5 #ifndef ROS_KERN_AKAROS_COMPAT_H
6 #define ROS_KERN_AKAROS_COMPAT_H
7
8 /* Common headers that most driver files will need */
9
10 #include <assert.h>
11 #include <error.h>
12 #include <ip.h>
13 #include <kmalloc.h>
14 #include <kref.h>
15 #include <pmap.h>
16 #include <slab.h>
17 #include <smp.h>
18 #include <stdio.h>
19 #include <string.h>
20 #include <bitmap.h>
21 #include <mii.h>
22 #include <umem.h>
23
24 #define __rcu
25 typedef unsigned long dma_addr_t;
26
27 #define DEFINE_SEMAPHORE(name)  \
28     struct semaphore name = SEMAPHORE_INITIALIZER_IRQSAVE(name, 1)
29 #define sema_init(sem, val) sem_init_irqsave(sem, val)
30 #define up(sem) sem_up(sem)
31 #define down(sem) sem_down(sem)
32 #define down_trylock(sem) ({!sem_trydown(sem);})
33 /* In lieu of spatching, I wanted to keep the distinction between down and
34  * down_interruptible/down_timeout.  Akaros doesn't have the latter. */
35 #define down_interruptible(sem) ({sem_down(sem); 0;})
36 #define down_timeout(sem, timeout) ({sem_down(sem); 0;})
37
38
39 #endif /* ROS_KERN_AKAROS_COMPAT_H */