Lines Matching refs:rsrc

123 int rvu_alloc_rsrc(struct rsrc_bmap *rsrc)  in rvu_alloc_rsrc()  argument
127 if (!rsrc->bmap) in rvu_alloc_rsrc()
130 id = find_first_zero_bit(rsrc->bmap, rsrc->max); in rvu_alloc_rsrc()
131 if (id >= rsrc->max) in rvu_alloc_rsrc()
134 __set_bit(id, rsrc->bmap); in rvu_alloc_rsrc()
139 int rvu_alloc_rsrc_contig(struct rsrc_bmap *rsrc, int nrsrc) in rvu_alloc_rsrc_contig() argument
143 if (!rsrc->bmap) in rvu_alloc_rsrc_contig()
146 start = bitmap_find_next_zero_area(rsrc->bmap, rsrc->max, 0, nrsrc, 0); in rvu_alloc_rsrc_contig()
147 if (start >= rsrc->max) in rvu_alloc_rsrc_contig()
150 bitmap_set(rsrc->bmap, start, nrsrc); in rvu_alloc_rsrc_contig()
154 static void rvu_free_rsrc_contig(struct rsrc_bmap *rsrc, int nrsrc, int start) in rvu_free_rsrc_contig() argument
156 if (!rsrc->bmap) in rvu_free_rsrc_contig()
158 if (start >= rsrc->max) in rvu_free_rsrc_contig()
161 bitmap_clear(rsrc->bmap, start, nrsrc); in rvu_free_rsrc_contig()
164 bool rvu_rsrc_check_contig(struct rsrc_bmap *rsrc, int nrsrc) in rvu_rsrc_check_contig() argument
168 if (!rsrc->bmap) in rvu_rsrc_check_contig()
171 start = bitmap_find_next_zero_area(rsrc->bmap, rsrc->max, 0, nrsrc, 0); in rvu_rsrc_check_contig()
172 if (start >= rsrc->max) in rvu_rsrc_check_contig()
178 void rvu_free_rsrc(struct rsrc_bmap *rsrc, int id) in rvu_free_rsrc() argument
180 if (!rsrc->bmap) in rvu_free_rsrc()
183 __clear_bit(id, rsrc->bmap); in rvu_free_rsrc()
186 int rvu_rsrc_free_count(struct rsrc_bmap *rsrc) in rvu_rsrc_free_count() argument
190 if (!rsrc->bmap) in rvu_rsrc_free_count()
193 used = bitmap_weight(rsrc->bmap, rsrc->max); in rvu_rsrc_free_count()
194 return (rsrc->max - used); in rvu_rsrc_free_count()
197 bool is_rsrc_free(struct rsrc_bmap *rsrc, int id) in is_rsrc_free() argument
199 if (!rsrc->bmap) in is_rsrc_free()
202 return !test_bit(id, rsrc->bmap); in is_rsrc_free()
205 int rvu_alloc_bitmap(struct rsrc_bmap *rsrc) in rvu_alloc_bitmap() argument
207 rsrc->bmap = kcalloc(BITS_TO_LONGS(rsrc->max), in rvu_alloc_bitmap()
209 if (!rsrc->bmap) in rvu_alloc_bitmap()
214 void rvu_free_bitmap(struct rsrc_bmap *rsrc) in rvu_free_bitmap() argument
216 kfree(rsrc->bmap); in rvu_free_bitmap()