diff options
author | Roland McGrath <roland@gnu.org> | 2000-02-04 03:21:18 +0000 |
---|---|---|
committer | Roland McGrath <roland@gnu.org> | 2000-02-04 03:21:18 +0000 |
commit | 9fd51e9b0ad33a89a83fdbbb66bd20d85f7893fb (patch) | |
tree | 8845b79f170028cb4380045c50277bbf075b5b7d /pfinet/linux-src/include/linux/isdn_compat.h | |
download | hurd-9fd51e9b0ad33a89a83fdbbb66bd20d85f7893fb.tar.gz hurd-9fd51e9b0ad33a89a83fdbbb66bd20d85f7893fb.tar.bz2 hurd-9fd51e9b0ad33a89a83fdbbb66bd20d85f7893fb.zip |
Import of Linux 2.2.12 subset (ipv4 stack and related)
Diffstat (limited to 'pfinet/linux-src/include/linux/isdn_compat.h')
-rw-r--r-- | pfinet/linux-src/include/linux/isdn_compat.h | 108 |
1 files changed, 108 insertions, 0 deletions
diff --git a/pfinet/linux-src/include/linux/isdn_compat.h b/pfinet/linux-src/include/linux/isdn_compat.h new file mode 100644 index 00000000..db002c41 --- /dev/null +++ b/pfinet/linux-src/include/linux/isdn_compat.h @@ -0,0 +1,108 @@ +#ifdef __KERNEL__ +/* Compatibility for various Linux kernel versions */ + +#ifndef _LINUX_ISDN_COMPAT_H +#define _LINUX_ISDN_COMPAT_H + +#ifndef LINUX_VERSION_CODE +#include <linux/version.h> +#endif + +#ifndef KERNEL_VERSION +#define KERNEL_VERSION(x,y,z) (((x)<<16)+((y)<<8)+(z)) +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,1,0) +#include <linux/mm.h> + +#define ioremap vremap +#define ioremap_nocache vremap +#define iounmap vfree + +static inline unsigned long copy_from_user(void *to, const void *from, unsigned long n) +{ + int i; + if ((i = verify_area(VERIFY_READ, from, n)) != 0) + return i; + memcpy_fromfs(to, from, n); + return 0; +} + +static inline unsigned long copy_to_user(void *to, const void *from, unsigned long n) +{ + int i; + if ((i = verify_area(VERIFY_WRITE, to, n)) != 0) + return i; + memcpy_tofs(to, from, n); + return 0; +} + +#define GET_USER(x, addr) ( x = get_user(addr) ) +#ifdef __alpha__ /* needed for 2.0.x with alpha-patches */ +#define RWTYPE long +#define LSTYPE long +#define RWARG unsigned long +#else +#define RWTYPE int +#define LSTYPE int +#define RWARG int +#endif +#define LSARG off_t +#else +#include <asm/uaccess.h> +#define GET_USER get_user +#define PUT_USER put_user +#define RWTYPE long +#define LSTYPE long long +#define RWARG unsigned long +#define LSARG long long +#endif /* LINUX_VERSION_CODE */ + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,1,15) +#define SET_SKB_FREE(x) ( x->free = 1 ) +#define idev_kfree_skb(a,b) dev_kfree_skb(a,b) +#else +#define SET_SKB_FREE(x) +#define idev_kfree_skb(a,b) dev_kfree_skb(a) +#endif + +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,1,18) +#define COMPAT_HAS_NEW_SYMTAB +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,1,31) +#define CLOSETYPE void +#define CLOSEVAL +#else +#define CLOSETYPE int +#define CLOSEVAL (0) +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,1,37) +#define test_and_clear_bit clear_bit +#define test_and_set_bit set_bit +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,1,81) +#define kstat_irqs( PAR ) kstat.interrupts[PAR] +#endif + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,1,91) +#define COMPAT_HAS_NEW_PCI +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,3,13) +#define get_pcibase(ps, nr) ps->base_address[nr] +#else +#define get_pcibase(ps, nr) ps->resource[nr].start +#endif +#endif + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,1,127) +#define schedule_timeout(a) current->timeout = jiffies + (a); schedule (); +#endif + +#if LINUX_VERSION_CODE > KERNEL_VERSION(2,3,0) +#define COMPAT_HAS_NEW_WAITQ +#endif + +#endif /* __KERNEL__ */ +#endif /* _LINUX_ISDN_COMPAT_H */ |