Files
@ d0a14f973771
Branch filter:
Location: vmkdrivers/vmkdrivers/src_9/drivers/net/s2io/kcompat.h
d0a14f973771
5.7 KiB
text/x-chdr
ESXi-5.0-U1
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 | /*
* Portions Copyright 2008 VMware, Inc.
*/
#ifndef _KCOMPAT_H_
#define _KCOMPAT_H_
#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,16))
#include <linux/config.h>
#endif
#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0)
#include<linux/tqueue.h>
#else
#include <linux/moduleparam.h>
#include<linux/workqueue.h>
#endif
/* VENDOR and DEVICE ID of XENA. */
#ifndef PCI_VENDOR_ID_S2IO
#define PCI_VENDOR_ID_S2IO 0x17D5
#define PCI_DEVICE_ID_S2IO_WIN 0x5731
#define PCI_DEVICE_ID_S2IO_UNI 0x5831
#endif
#ifndef PCI_DEVICE_ID_HERC_WIN
#define PCI_DEVICE_ID_HERC_WIN 0x5732
#define PCI_DEVICE_ID_HERC_UNI 0x5832
#endif
#ifndef PCI_DEVICE_ID_TITAN
#define PCI_DEVICE_ID_TITAN_WIN 0x5733
#define PCI_DEVICE_ID_TITAN_UNI 0x5833
#endif
#ifndef PCI_DEVICE_ID_AMD_8132_BRIDGE
#define PCI_DEVICE_ID_AMD_8132_BRIDGE 0x7458
#endif
/* Ethtool related variables and Macros. */
#ifndef SET_ETHTOOL_OPS
static int s2io_ethtool(struct net_device *dev, struct ifreq *rq);
#define SPEED_10000 10000
#endif
#ifndef DMA_ERROR_CODE
#define DMA_ERROR_CODE (~(dma_addr_t)0x0)
#endif
/*
* Macros for msleep and msleep_interruptible for kernel versions in which
* they are not defined.
*/
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,8) )
#define msleep(x) do { set_current_state(TASK_UNINTERRUPTIBLE); \
schedule_timeout((x * HZ)/1000 + 2); \
} while(0)
#endif
/* #define proc_net init_net.proc_net */
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9) )
#define msleep_interruptible(x) do {set_current_state(TASK_INTERRUPTIBLE); \
schedule_timeout((x * HZ)/1000); \
} while(0)
#endif
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,5) )
#define pci_dma_sync_single_for_cpu(pdev, dma_addr, len, dir) \
pci_dma_sync_single((pdev), (dma_addr), (len), (dir))
#define pci_dma_sync_single_for_device(pdev, dma_addr, len, dir) \
pci_dma_sync_single((pdev), (dma_addr), (len), (dir))
#endif
/* pci_save_state */
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10))
#define pci_save_state(x,y) pci_save_state(x)
#endif
/* pci_restore_state */
#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,10))
#define pci_restore_state(x,y) pci_restore_state(x);
#endif
/* synchronize_irq */
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,5,28))
#define s2io_synchronize_irq(x) synchronize_irq()
#else
#define s2io_synchronize_irq(x) synchronize_irq(x)
#endif
/* pci_dev_put */
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0))
#define pci_dev_put(x)
#endif
/* Macros to ensure the code is backward compatible with 2.4.x kernels. */
#ifndef NET_IP_ALIGN
#define NET_IP_ALIGN 2
#endif
#ifndef SET_NETDEV_DEV
#define SET_NETDEV_DEV(a, b) do {} while(0)
#endif
#ifndef HAVE_FREE_NETDEV
#define free_netdev(x) kfree(x)
#endif
#ifndef IRQ_NONE
typedef void irqreturn_t;
#define IRQ_NONE
#define IRQ_HANDLED
#define IRQ_RETVAL(x)
#endif
#ifdef INIT_TQUEUE
#define schedule_work schedule_task
#define flush_scheduled_work flush_scheduled_tasks
#define INIT_WORK INIT_TQUEUE
#endif
#ifndef __iomem
#define __iomem
#endif
#ifndef DMA_64BIT_MASK
#define DMA_64BIT_MASK 0xffffffffffffffffULL
#define DMA_32BIT_MASK 0x00000000ffffffffULL
#endif
#ifndef S2IO_ALIGN
#define S2IO_ALIGN(x,a) (((x)+(a)-1)&~((a)-1))
#endif
#if ( LINUX_VERSION_CODE < KERNEL_VERSION(2,6,0) )
#define GET_SOCK_SLEEP_CALLBACK(sk) sk->sleep
#define GET_SOCK_SOCKET_DESC(sk) sk->socket
#else
#define GET_SOCK_SLEEP_CALLBACK(sk) sk->sk_sleep
#define GET_SOCK_SOCKET_DESC(sk) sk->sk_socket
#endif
#ifndef module_param
#define S2IO_PARM_INT(X, def_val) \
static unsigned int X = def_val;\
MODULE_PARM(X, "i");
#endif
#ifndef SKB_GSO_TCPV4
#define SKB_GSO_TCPV4 0x1
#endif
#ifndef SKB_GSO_UDP
#define SKB_GSO_UDP 0x2
#endif
#ifndef SKB_GSO_UDPV4
#define SKB_GSO_UDPV4 0x2
#endif
#ifndef SKB_GSO_TCPV6
#define SKB_GSO_TCPV6 0x10
#endif
#ifndef NETIF_F_GSO
#ifdef NETIF_F_TSO
#define s2io_tcp_mss(skb) skb_shinfo(skb)->tso_size
#else
#define s2io_tcp_mss(skb) 0
#endif
#ifdef NETIF_F_UFO
#define s2io_udp_mss(skb) skb_shinfo(skb)->ufo_size
#else
#define s2io_udp_mss(skb) 0
#endif
inline int s2io_offload_type(struct sk_buff *skb)
{
#ifdef NETIF_F_TSO
if (skb_shinfo(skb)->tso_size)
return SKB_GSO_TCPV4;
#endif
#ifdef NETIF_F_UFO
else if(skb_shinfo(skb)->ufo_size)
return SKB_GSO_UDP;
#endif
return 0;
}
#endif
#ifndef NETIF_F_TSO6
#define s2io_ethtool_op_get_tso ethtool_op_get_tso
#define s2io_ethtool_op_set_tso ethtool_op_set_tso
#endif
#ifndef IRQF_SHARED
#define IRQF_SHARED SA_SHIRQ
#endif
#if (LINUX_VERSION_CODE <= KERNEL_VERSION(2,6,15))
#undef CONFIG_PM
#endif
#ifndef CHECKSUM_PARTIAL
#define CHECKSUM_PARTIAL CHECKSUM_HW
#endif
/* Macros to ensure the code is backward compatible with 2.6.5 kernels. */
#ifndef spin_trylock_irqsave
#define spin_trylock_irqsave(lock, flags) \
({ \
local_irq_save(flags); \
spin_trylock(lock) ? \
1 : ({ local_irq_restore(flags); 0; }); \
})
#ifndef NETDEV_TX_LOCKED
#define NETDEV_TX_LOCKED -1 /* driver tx lock was already taken */
#endif
#endif
#ifndef NETDEV_TX_BUSY
#define NETDEV_TX_BUSY 1
#endif
#define S2IO_SKB_INIT_TAIL(frag_list, val) \
frag_list->tail = (void *) (unsigned long)val
/*skb_reset_tail_pointer(frag_list)*/
#define S2IO_PCI_FIND_DEVICE(_a, _b, _c) \
pci_get_device(_a, _b, _c)
#define S2IO_PCI_PUT_DEVICE(_a) \
pci_dev_put(_a)
#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,9))
#ifndef __be32
#define __be32 u32
#endif
#endif
inline u16 s2io_get_tx_priority(struct sk_buff *skb, u16 vlan_tag)
{
u16 ret = 0;
ret = (skb->priority & 0x7);
return ret;
}
#if defined(__VMKLNX__)
#define pci_channel_offline(a) 0
#endif // defined(__VMKLNX__)
#endif /* _KCOMPAT_H_ */
|