Adding defines for backporting be2net
[~tnikolova/compat/.git] / config / rdma.m4
index 2b4fdd7..ffa6432 100644 (file)
@@ -671,6 +671,368 @@ AC_DEFUN([LINUX_CONFIG_COMPAT],
        ],[
                AC_MSG_RESULT(no)
        ])
+
+       AC_MSG_CHECKING([if if_vlan.h has __vlan_find_dev_deep_rcu])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/if_vlan.h>
+       ],[
+               __vlan_find_dev_deep_rcu(NULL, 0, 0);
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE___VLAN_FIND_DEV_DEEP_RCU, 1,
+                         [__vlan_find_dev_deep_rcu is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if ndo_select_queue has accel_priv])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/netdevice.h>
+       ],[
+               struct net_device_opts ndops;
+
+               static u16 select_queue(struct net_device *dev, struct sk_buff *skb,
+                                       void *accel_priv)
+               {
+                       return 0;
+               }
+
+               ndoops.ndo_select_queue = select_queue;
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(NDO_SELECT_QUEUE_HAS_ACCEL_PRIV, 1,
+                         [ndo_select_queue has accel_priv])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if drivers/net/bonding/bonding.h exists])
+       LB_LINUX_TRY_COMPILE([
+               #include "../drivers/net/bonding/bonding.h"
+       ],[
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_BONDING_H, 1,
+                         [drivers/net/bonding/bonding.h exists])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if bonding.h bond_for_each_slave has 3 parameters])
+       LB_LINUX_TRY_COMPILE([
+               #include "../drivers/net/bonding/bonding.h"
+       ],[
+               struct bonding *bond = NULL;
+               struct list_head *iter = NULL;
+               struct slave *slave = NULL;
+
+               bond_for_each_slave(bond, slave, iter) ;
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_BOND_FOR_EACH_SLAVE_3_PARAMS, 1,
+                         [bond_for_each_slave has 3 parameters])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+
+       AC_MSG_CHECKING([if u64_stats_sync.h has u64_stats_init])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/u64_stats_sync.h>
+       ],[
+               struct u64_stats_sync sync;
+               u64_stats_init(&sync);
+               };
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_U64_STATS_SYNC, 1,
+                         [u64_stats_sync is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if u64_stats_sync.h has u64_stats_fetch_begin_irq])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/u64_stats_sync.h>
+       ],[
+               struct u64_stats_sync sync;
+               u64_stats_fetch_begin_irq(&sync);
+               };
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_U64_STATS_FETCH_BEGIN_IRQ, 1,
+                         [u64_stats_fetch_begin_irq is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+       AC_MSG_CHECKING([if etherdevice.h has ether_addr_copy])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/etherdevice.h>
+       ],[
+               char dest[6], src[6];
+                       ether_addr_copy(&dest, &src);
+
+               };
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_ETHER_ADDR_COPY, 1,
+                         [ether_addr_copy is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if struct net_device_ops has *ndo_set_vf_rate])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/netdevice.h>
+       ],[
+               struct net_device_ops netdev_ops;
+               int set_vf_rate(struct net_device *dev, int vf, int min_tx_rate,
+                                                   int max_tx_rate)
+               {
+                       return 0;
+               }
+               netdev_ops.ndo_set_vf_rate = set_vf_rate;
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_SET_VF_RATE, 1,
+                         [ndo_set_vf_rate is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if struct net_device has priv_flags])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/netdevice.h>
+       ],[
+               struct net_device *netdev;
+               netdev->priv_flags = 0;
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_NET_DEVICE_PRIV_FLAGS, 1,
+                         [priv_flags is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if struct net_device_ops has *ndo_get_stats64])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/netdevice.h>
+       ],[
+               struct net_device_ops netdev_ops;
+               struct rtnl_link_stats64* get_stats_64(struct net_device *dev,
+                                                     struct rtnl_link_stats64 *storage)
+               {
+                       struct rtnl_link_stats64 stats_64;
+                       return &stats_64;
+               }
+
+               netdev_ops.ndo_get_stats64 = get_stats_64;
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_NDO_GET_STATS64, 1,
+                         [ndo_get_stats64 is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+       AC_MSG_CHECKING([if struct net_device_ops has ndo_bridge_set/getlink])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/netdevice.h>
+       ],[
+               struct net_device_ops netdev_ops =  {
+                       .ndo_bridge_setlink = NULL,
+                       .ndo_bridge_getlink = NULL,
+               };
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_NDO_BRIDGE_SET_GET_LINK, 1,
+                         [ndo_bridge_set/getlink is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if struct net_device_ops ndo_vlan_rx_add_vid has 3 parameters ])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/netdevice.h>
+       ],[
+               struct net_device_ops netdev_ops;
+               int vlan_rx_add_vid(struct net_device *dev,__be16 proto, u16 vid)
+               {
+                       return 0;
+               }
+               netdev_ops.ndo_vlan_rx_add_vid = vlan_rx_add_vid;
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_NDO_RX_ADD_VID_HAS_3_PARAMS, 1,
+                         [ndo_vlan_rx_add_vid has 3 parameters])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if netdevice.h netif_set_real_num_tx_queues returns int])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/netdevice.h>
+       ],[
+               struct net_device dev;
+               int ret;
+               ret = netif_set_real_num_tx_queues(&dev, 2);
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_RETURN_INT_FOR_SET_NUM_TX_QUEUES, 1,
+                         [netif_set_real_num_tx_queues returns int])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if struct ethtool_ops has set_phys_id])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/ethtool.h>
+       ],[
+               const struct ethtool_ops en_ethtool_ops = {
+                       .set_phys_id= NULL,
+               };
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_SET_PHYS_ID, 1,
+                         [set_phys_id is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if struct ethtool_ops has get/set_channels])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/ethtool.h>
+       ],[
+               const struct ethtool_ops en_ethtool_ops = {
+                       .get_channels = NULL,
+                       .set_channels = NULL,
+               };
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_GET_SET_CHANNELS, 1,
+                         [get/set_channels is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if netdevice.h has struct netdev_hw_addr])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/netdevice.h>
+       ],[
+               struct netdev_hw_addr addr;
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_NETDEV_HW_ADDR, 1,
+                         [netdev_hw_addr is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if pci.h has pci_vfs_assigned])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/pci.h>
+       ],[
+               struct pci_dev pdev;
+               pci_vfs_assigned(&pdev);
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_PCI_VF_ASSIGNED, 1,
+                         [pci_vfs_assigned is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+       AC_MSG_CHECKING([if __vlan_put_tag has 3 parameters])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/if_vlan.h>
+       ],[
+               struct sk_buff *skb;
+               __vlan_put_tag(skb, 0, 0);
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_3_PARAMS_FOR_VLAN_PUT_TAG, 1,
+                         [__vlan_put_tag has 3 parameters])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if __vlan_hwaccel_put_tag has 3 parameters])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/if_vlan.h>
+       ],[
+               struct sk_buff *skb;
+               __vlan_hwaccel_put_tag(skb, 0, 0);
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_3_PARAMS_FOR_VLAN_HWACCEL_PUT_TAG, 1,
+                         [__vlan_hwaccel_put_tag has 3 parameters])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if struct net_device has hw_features])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/netdevice.h>
+       ],[
+               struct net_device dev;
+               dev.hw_features = 0;
+
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_NETDEV_HW_FEATURES, 1,
+                         [hw_features is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+       AC_MSG_CHECKING([if if_vlan.h has vlan_hwaccel_receive_skb])
+       LB_LINUX_TRY_COMPILE([
+               #include <linux/if_vlan.h>
+       ],[
+               struct sk_buff *skb;
+               vlan_hwaccel_receive_skb(skb,0,0);
+               return 0;
+       ],[
+               AC_MSG_RESULT(yes)
+               AC_DEFINE(HAVE_VLAN_HWACCEL_RECEIVE_SKB, 1,
+                         [vlan_hwaccel_receive_skb is defined])
+       ],[
+               AC_MSG_RESULT(no)
+       ])
+
+
 ])
 #
 # COMPAT_CONFIG_HEADERS