]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - drivers/infiniband/core/core_priv.h
IB/core: Allow setting create flags in QP init attribute
[karo-tx-linux.git] / drivers / infiniband / core / core_priv.h
index 87d1936f5c1caa93e188af91e9aefb1e6484902b..70bb36ebb03b8e91ff2cf89445b0a8f52329e591 100644 (file)
@@ -43,12 +43,58 @@ int  ib_device_register_sysfs(struct ib_device *device,
                                                   u8, struct kobject *));
 void ib_device_unregister_sysfs(struct ib_device *device);
 
-int  ib_sysfs_setup(void);
-void ib_sysfs_cleanup(void);
-
-int  ib_cache_setup(void);
+void ib_cache_setup(void);
 void ib_cache_cleanup(void);
 
 int ib_resolve_eth_l2_attrs(struct ib_qp *qp,
                            struct ib_qp_attr *qp_attr, int *qp_attr_mask);
+
+typedef void (*roce_netdev_callback)(struct ib_device *device, u8 port,
+             struct net_device *idev, void *cookie);
+
+typedef int (*roce_netdev_filter)(struct ib_device *device, u8 port,
+            struct net_device *idev, void *cookie);
+
+void ib_enum_roce_netdev(struct ib_device *ib_dev,
+                        roce_netdev_filter filter,
+                        void *filter_cookie,
+                        roce_netdev_callback cb,
+                        void *cookie);
+void ib_enum_all_roce_netdevs(roce_netdev_filter filter,
+                             void *filter_cookie,
+                             roce_netdev_callback cb,
+                             void *cookie);
+
+int ib_cache_gid_find_by_port(struct ib_device *ib_dev,
+                             const union ib_gid *gid,
+                             u8 port, struct net_device *ndev,
+                             u16 *index);
+
+enum ib_cache_gid_default_mode {
+       IB_CACHE_GID_DEFAULT_MODE_SET,
+       IB_CACHE_GID_DEFAULT_MODE_DELETE
+};
+
+void ib_cache_gid_set_default_gid(struct ib_device *ib_dev, u8 port,
+                                 struct net_device *ndev,
+                                 enum ib_cache_gid_default_mode mode);
+
+int ib_cache_gid_add(struct ib_device *ib_dev, u8 port,
+                    union ib_gid *gid, struct ib_gid_attr *attr);
+
+int ib_cache_gid_del(struct ib_device *ib_dev, u8 port,
+                    union ib_gid *gid, struct ib_gid_attr *attr);
+
+int ib_cache_gid_del_all_netdev_gids(struct ib_device *ib_dev, u8 port,
+                                    struct net_device *ndev);
+
+int roce_gid_mgmt_init(void);
+void roce_gid_mgmt_cleanup(void);
+
+int roce_rescan_device(struct ib_device *ib_dev);
+
+int ib_cache_setup_one(struct ib_device *device);
+void ib_cache_cleanup_one(struct ib_device *device);
+void ib_cache_release_one(struct ib_device *device);
+
 #endif /* _CORE_PRIV_H */