*
*/
+#include <linux/version.h>
+#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,33))
+#include <generated/autoconf.h>
+#else
#include <linux/autoconf.h>
+#endif
#include <linux/module.h>
-#include <linux/version.h>
#include <linux/sched.h>
#include <linux/kernel.h> /* printk() */
#include <linux/slab.h>
#include <linux/init.h>
#include <asm/uaccess.h>
#include <asm/checksum.h>
+#if LINUX_VERSION_CODE > KERNEL_VERSION(2,6,0)
#include <net/ip6_checksum.h>
+#endif
#include <linux/in6.h>
#include "siit.h"
static struct header_ops siit_header_ops ____cacheline_aligned;
#endif
+#if !(defined CONFIG_COMPAT_NET_DEV_OPS) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)
+static const struct net_device_ops siit_netdev_ops = {
+ .ndo_open = siit_open,
+ .ndo_stop = siit_release,
+ .ndo_start_xmit = siit_xmit,
+};
+#endif
+
/*
* The init function initialize of the SIIT device..
* It is invoked by register_netdev()
*/
+
static void
siit_init(struct net_device *dev)
{
/*
* Assign device function.
*/
+#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,30)
dev->open = siit_open;
dev->stop = siit_release;
dev->hard_start_xmit = siit_xmit;
+#else
+#if !(defined CONFIG_COMPAT_NET_DEV_OPS) && LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,30)
+ dev->netdev_ops = &siit_netdev_ops;
+#endif
+#endif
dev->flags |= IFF_NOARP; /* ARP not used */
dev->tx_queue_len = 10;