Lines Matching refs:rsrc

128 int rvu_alloc_rsrc(struct rsrc_bmap *rsrc)  in rvu_alloc_rsrc()  argument
132 if (!rsrc->bmap) in rvu_alloc_rsrc()
135 id = find_first_zero_bit(rsrc->bmap, rsrc->max); in rvu_alloc_rsrc()
136 if (id >= rsrc->max) in rvu_alloc_rsrc()
139 __set_bit(id, rsrc->bmap); in rvu_alloc_rsrc()
144 int rvu_alloc_rsrc_contig(struct rsrc_bmap *rsrc, int nrsrc) in rvu_alloc_rsrc_contig() argument
148 if (!rsrc->bmap) in rvu_alloc_rsrc_contig()
151 start = bitmap_find_next_zero_area(rsrc->bmap, rsrc->max, 0, nrsrc, 0); in rvu_alloc_rsrc_contig()
152 if (start >= rsrc->max) in rvu_alloc_rsrc_contig()
155 bitmap_set(rsrc->bmap, start, nrsrc); in rvu_alloc_rsrc_contig()
159 static void rvu_free_rsrc_contig(struct rsrc_bmap *rsrc, int nrsrc, int start) in rvu_free_rsrc_contig() argument
161 if (!rsrc->bmap) in rvu_free_rsrc_contig()
163 if (start >= rsrc->max) in rvu_free_rsrc_contig()
166 bitmap_clear(rsrc->bmap, start, nrsrc); in rvu_free_rsrc_contig()
169 bool rvu_rsrc_check_contig(struct rsrc_bmap *rsrc, int nrsrc) in rvu_rsrc_check_contig() argument
173 if (!rsrc->bmap) in rvu_rsrc_check_contig()
176 start = bitmap_find_next_zero_area(rsrc->bmap, rsrc->max, 0, nrsrc, 0); in rvu_rsrc_check_contig()
177 if (start >= rsrc->max) in rvu_rsrc_check_contig()
183 void rvu_free_rsrc(struct rsrc_bmap *rsrc, int id) in rvu_free_rsrc() argument
185 if (!rsrc->bmap) in rvu_free_rsrc()
188 __clear_bit(id, rsrc->bmap); in rvu_free_rsrc()
191 int rvu_rsrc_free_count(struct rsrc_bmap *rsrc) in rvu_rsrc_free_count() argument
195 if (!rsrc->bmap) in rvu_rsrc_free_count()
198 used = bitmap_weight(rsrc->bmap, rsrc->max); in rvu_rsrc_free_count()
199 return (rsrc->max - used); in rvu_rsrc_free_count()
202 bool is_rsrc_free(struct rsrc_bmap *rsrc, int id) in is_rsrc_free() argument
204 if (!rsrc->bmap) in is_rsrc_free()
207 return !test_bit(id, rsrc->bmap); in is_rsrc_free()
210 int rvu_alloc_bitmap(struct rsrc_bmap *rsrc) in rvu_alloc_bitmap() argument
212 rsrc->bmap = kcalloc(BITS_TO_LONGS(rsrc->max), in rvu_alloc_bitmap()
214 if (!rsrc->bmap) in rvu_alloc_bitmap()
219 void rvu_free_bitmap(struct rsrc_bmap *rsrc) in rvu_free_bitmap() argument
221 kfree(rsrc->bmap); in rvu_free_bitmap()