Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
[sfrench/cifs-2.6.git] / include / linux / mlx4 / device.h
index 89c0e7f7cd9b674ad4716ea4aea92ab2fab8c82e..b0a57e043fa398b9133b3a9c207e0d72273348f3 100644 (file)
@@ -429,6 +429,12 @@ enum mlx4_steer_type {
        MLX4_NUM_STEERS
 };
 
+enum mlx4_resource_usage {
+       MLX4_RES_USAGE_NONE,
+       MLX4_RES_USAGE_DRIVER,
+       MLX4_RES_USAGE_USER_VERBS,
+};
+
 enum {
        MLX4_NUM_FEXCH          = 64 * 1024,
 };
@@ -754,6 +760,7 @@ struct mlx4_cq {
        } tasklet_ctx;
        int             reset_notify_added;
        struct list_head        reset_notify;
+       u8                      usage;
 };
 
 struct mlx4_qp {
@@ -763,6 +770,7 @@ struct mlx4_qp {
 
        atomic_t                refcount;
        struct completion       free;
+       u8                      usage;
 };
 
 struct mlx4_srq {
@@ -1126,7 +1134,7 @@ int mlx4_cq_alloc(struct mlx4_dev *dev, int nent, struct mlx4_mtt *mtt,
                  unsigned vector, int collapsed, int timestamp_en);
 void mlx4_cq_free(struct mlx4_dev *dev, struct mlx4_cq *cq);
 int mlx4_qp_reserve_range(struct mlx4_dev *dev, int cnt, int align,
-                         int *base, u8 flags);
+                         int *base, u8 flags, u8 usage);
 void mlx4_qp_release_range(struct mlx4_dev *dev, int base_qpn, int cnt);
 
 int mlx4_qp_alloc(struct mlx4_dev *dev, int qpn, struct mlx4_qp *qp);
@@ -1424,7 +1432,7 @@ int mlx4_get_phys_port_id(struct mlx4_dev *dev);
 int mlx4_wol_read(struct mlx4_dev *dev, u64 *config, int port);
 int mlx4_wol_write(struct mlx4_dev *dev, u64 config, int port);
 
-int mlx4_counter_alloc(struct mlx4_dev *dev, u32 *idx);
+int mlx4_counter_alloc(struct mlx4_dev *dev, u32 *idx, u8 usage);
 void mlx4_counter_free(struct mlx4_dev *dev, u32 idx);
 int mlx4_get_default_counter_index(struct mlx4_dev *dev, int port);