37 #ifndef __EC_LOCKS_H__ 38 #define __EC_LOCKS_H__ 42 #if LINUX_VERSION_CODE >= KERNEL_VERSION(2, 6, 27) 43 #include <linux/semaphore.h> 45 #include <asm/semaphore.h> 52 #include <linux/rtmutex.h> 54 typedef struct rt_mutex ec_lock_t;
56 static inline void ec_lock_init(ec_lock_t *sem) { rt_mutex_init(sem); }
57 static inline void ec_lock_down(ec_lock_t *sem) { rt_mutex_lock(sem); }
58 #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 14, 34) 59 static inline int ec_lock_down_interruptible(ec_lock_t *sem) {
return rt_mutex_lock_interruptible(sem); }
61 static inline int ec_lock_down_interruptible(ec_lock_t *sem) {
return rt_mutex_lock_interruptible(sem, 1); }
63 static inline void ec_lock_up(ec_lock_t *sem) { rt_mutex_unlock(sem); }
67 typedef struct semaphore ec_lock_t;
69 static inline void ec_lock_init(ec_lock_t *sem) { sema_init(sem, 1); }
70 static inline void ec_lock_down(ec_lock_t *sem) { down(sem); }
71 static inline int ec_lock_down_interruptible(ec_lock_t *sem) {
return down_interruptible(sem); }
72 static inline void ec_lock_up(ec_lock_t *sem) { up(sem); }
Global definitions and macros.