Lines Matching refs:bmap

39 			struct qed_bmap *bmap, u32 max_count, char *name)  in qed_rdma_bmap_alloc()  argument
43 bmap->max_count = max_count; in qed_rdma_bmap_alloc()
45 bmap->bitmap = kcalloc(BITS_TO_LONGS(max_count), sizeof(long), in qed_rdma_bmap_alloc()
47 if (!bmap->bitmap) in qed_rdma_bmap_alloc()
50 snprintf(bmap->name, QED_RDMA_MAX_BMAP_NAME, "%s", name); in qed_rdma_bmap_alloc()
57 struct qed_bmap *bmap, u32 *id_num) in qed_rdma_bmap_alloc_id() argument
59 *id_num = find_first_zero_bit(bmap->bitmap, bmap->max_count); in qed_rdma_bmap_alloc_id()
60 if (*id_num >= bmap->max_count) in qed_rdma_bmap_alloc_id()
63 __set_bit(*id_num, bmap->bitmap); in qed_rdma_bmap_alloc_id()
66 bmap->name, *id_num); in qed_rdma_bmap_alloc_id()
72 struct qed_bmap *bmap, u32 id_num) in qed_bmap_set_id() argument
74 if (id_num >= bmap->max_count) in qed_bmap_set_id()
77 __set_bit(id_num, bmap->bitmap); in qed_bmap_set_id()
81 struct qed_bmap *bmap, u32 id_num) in qed_bmap_release_id() argument
85 if (id_num >= bmap->max_count) in qed_bmap_release_id()
88 b_acquired = test_and_clear_bit(id_num, bmap->bitmap); in qed_bmap_release_id()
91 bmap->name, id_num); in qed_bmap_release_id()
96 bmap->name, id_num); in qed_bmap_release_id()
100 struct qed_bmap *bmap, u32 id_num) in qed_bmap_test_id() argument
102 if (id_num >= bmap->max_count) in qed_bmap_test_id()
105 return test_bit(id_num, bmap->bitmap); in qed_bmap_test_id()
108 static bool qed_bmap_is_empty(struct qed_bmap *bmap) in qed_bmap_is_empty() argument
110 return bmap->max_count == find_first_bit(bmap->bitmap, bmap->max_count); in qed_bmap_is_empty()
320 struct qed_bmap *bmap, bool check) in qed_rdma_bmap_free() argument
322 int weight = bitmap_weight(bmap->bitmap, bmap->max_count); in qed_rdma_bmap_free()
323 int last_line = bmap->max_count / (64 * 8); in qed_rdma_bmap_free()
325 DIV_ROUND_UP(bmap->max_count % (64 * 8), 64); in qed_rdma_bmap_free()
326 u64 *pmap = (u64 *)bmap->bitmap; in qed_rdma_bmap_free()
335 bmap->name, bmap->max_count, weight); in qed_rdma_bmap_free()
352 if ((bmap->max_count % (64 * 8)) && in qed_rdma_bmap_free()
354 bmap->max_count - item * 64))) { in qed_rdma_bmap_free()
363 kfree(bmap->bitmap); in qed_rdma_bmap_free()
364 bmap->bitmap = NULL; in qed_rdma_bmap_free()
1743 struct qed_bmap *bmap; in qed_rdma_destroy_srq() local
1767 bmap = qed_rdma_get_srq_bmap(p_hwfn, in_params->is_xrc); in qed_rdma_destroy_srq()
1771 qed_bmap_release_id(p_hwfn, bmap, in_params->srq_id - offset); in qed_rdma_destroy_srq()
1792 struct qed_bmap *bmap; in qed_rdma_create_srq() local
1797 bmap = qed_rdma_get_srq_bmap(p_hwfn, in_params->is_xrc); in qed_rdma_create_srq()
1799 rc = qed_rdma_bmap_alloc_id(p_hwfn, bmap, &returned_id); in qed_rdma_create_srq()
1862 qed_bmap_release_id(p_hwfn, bmap, returned_id); in qed_rdma_create_srq()