• Home
  • Raw
  • Download

Lines Matching full:fl

218 util_sparse_array_free_list_init(struct util_sparse_array_free_list *fl,  in util_sparse_array_free_list_init()  argument
223 fl->head = sentinel; in util_sparse_array_free_list_init()
224 fl->arr = arr; in util_sparse_array_free_list_init()
225 fl->sentinel = sentinel; in util_sparse_array_free_list_init()
226 fl->next_offset = next_offset; in util_sparse_array_free_list_init()
236 util_sparse_array_free_list_push(struct util_sparse_array_free_list *fl, in util_sparse_array_free_list_push() argument
240 assert(items[0] != fl->sentinel); in util_sparse_array_free_list_push()
241 void *last_elem = util_sparse_array_get(fl->arr, items[0]); in util_sparse_array_free_list_push()
242 uint32_t *last_next = (uint32_t *)((char *)last_elem + fl->next_offset); in util_sparse_array_free_list_push()
245 assert(items[i] != fl->sentinel); in util_sparse_array_free_list_push()
246 last_elem = util_sparse_array_get(fl->arr, items[i]); in util_sparse_array_free_list_push()
247 last_next = (uint32_t *)((char *)last_elem + fl->next_offset); in util_sparse_array_free_list_push()
251 old_head = p_atomic_read(&fl->head); in util_sparse_array_free_list_push()
256 old_head = p_atomic_cmpxchg(&fl->head, current_head, new_head); in util_sparse_array_free_list_push()
261 util_sparse_array_free_list_pop_idx(struct util_sparse_array_free_list *fl) in util_sparse_array_free_list_pop_idx() argument
265 current_head = p_atomic_read(&fl->head); in util_sparse_array_free_list_pop_idx()
267 if ((uint32_t)current_head == fl->sentinel) in util_sparse_array_free_list_pop_idx()
268 return fl->sentinel; in util_sparse_array_free_list_pop_idx()
271 void *head_elem = util_sparse_array_get(fl->arr, head_idx); in util_sparse_array_free_list_pop_idx()
272 uint32_t *head_next = (uint32_t *)((char *)head_elem + fl->next_offset); in util_sparse_array_free_list_pop_idx()
274 uint64_t old_head = p_atomic_cmpxchg(&fl->head, current_head, new_head); in util_sparse_array_free_list_pop_idx()
282 util_sparse_array_free_list_pop_elem(struct util_sparse_array_free_list *fl) in util_sparse_array_free_list_pop_elem() argument
286 current_head = p_atomic_read(&fl->head); in util_sparse_array_free_list_pop_elem()
288 if ((uint32_t)current_head == fl->sentinel) in util_sparse_array_free_list_pop_elem()
292 void *head_elem = util_sparse_array_get(fl->arr, head_idx); in util_sparse_array_free_list_pop_elem()
293 uint32_t *head_next = (uint32_t *)((char *)head_elem + fl->next_offset); in util_sparse_array_free_list_pop_elem()
295 uint64_t old_head = p_atomic_cmpxchg(&fl->head, current_head, new_head); in util_sparse_array_free_list_pop_elem()