X-Git-Url: http://rtime.felk.cvut.cz/gitweb/lincan.git/blobdiff_plain/91dfab84182937b62ef64cb12d8e4f89e6d5c3ec..b34a548a5dfd2f0b068fd835a4cd51680d851068:/lincan/include/can_sysdep.h diff --git a/lincan/include/can_sysdep.h b/lincan/include/can_sysdep.h index 0297e21..1de1454 100644 --- a/lincan/include/can_sysdep.h +++ b/lincan/include/can_sysdep.h @@ -1,6 +1,14 @@ #ifndef _CAN_SYSDEP_H #define _CAN_SYSDEP_H +#ifdef CAN_WITH_RTL +#include +#include +#include +#include +#include +#endif /*CAN_WITH_RTL*/ + /*#define __NO_VERSION__*/ /*#include */ @@ -13,6 +21,7 @@ #include #include #include + #include #include #include @@ -54,13 +63,24 @@ #endif /* Linux kernel < 2.5.7 or >= 2.6.0 */ - +#ifndef CAN_WITH_RTL #if ((LINUX_VERSION_CODE < KERNEL_VERSION(2,5,68)) && !defined(IRQ_RETVAL)) - typedef void irqreturn_t; - #define IRQ_NONE - #define IRQ_HANDLED - #define IRQ_RETVAL(x) + typedef void can_irqreturn_t; + #define CAN_IRQ_NONE + #define CAN_IRQ_HANDLED + #define CAN_IRQ_RETVAL(x) +#else /* <=2.5.67 */ + typedef irqreturn_t can_irqreturn_t; + #define CAN_IRQ_NONE IRQ_NONE + #define CAN_IRQ_HANDLED IRQ_HANDLED + #define CAN_IRQ_RETVAL IRQ_RETVAL #endif /* <=2.5.67 */ +#else /*CAN_WITH_RTL*/ + typedef int can_irqreturn_t; + #define CAN_IRQ_NONE 0 + #define CAN_IRQ_HANDLED 1 + #define CAN_IRQ_RETVAL(x) ((x) != 0) +#endif /*CAN_WITH_RTL*/ #if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,33)) #define can_synchronize_irq(irqnum) synchronize_irq() @@ -75,6 +95,7 @@ #define CAN_ENABLE_KERN_FASYNC #ifndef CAN_WITH_RTL +/* Standard LINUX kernel */ #define can_spinlock_t spinlock_t #define can_spin_irqflags_t unsigned long @@ -84,6 +105,19 @@ #define can_spin_unlock_irqrestore spin_unlock_irqrestore #define can_spin_lock_init spin_lock_init +#if defined(CONFIG_PREEMPT) || (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,0)) +#define can_preempt_disable preempt_disable +#define can_preempt_enable preempt_enable +#else /*CONFIG_PREEMPT*/ +#define can_preempt_disable() do { } while (0) +#define can_preempt_enable() do { } while (0) +#endif /*CONFIG_PREEMPT*/ + +#define can_enable_irq enable_irq +#define can_disable_irq disable_irq + +#define can_printk printk + #else /*CAN_WITH_RTL*/ #define can_spinlock_t rtl_spinlock_t @@ -94,6 +128,14 @@ #define can_spin_unlock_irqrestore rtl_spin_unlock_irqrestore #define can_spin_lock_init rtl_spin_lock_init +#define can_preempt_disable() do { } while (0) +#define can_preempt_enable() do { } while (0) + +#define can_enable_irq rtl_hard_enable_irq +#define can_disable_irq rtl_hard_disable_irq + +#define can_printk rtl_printf + #endif /*CAN_WITH_RTL*/ #endif /*_CAN_SYSDEP_H*/