Home
last modified time | relevance | path

Searched refs:xa (Results 1 – 25 of 185) sorted by relevance

12345678

/linux/lib/
H A Dtest_xarray.c20 void xa_dump(const struct xarray *xa) { } in xa_dump() argument
23 #define XA_BUG_ON(xa, x) do { \ argument
27 xa_dump(xa); \
40 static void *xa_store_index(struct xarray *xa, unsigned long index, gfp_t gfp) in xa_store_index() argument
42 return xa_store(xa, index, xa_mk_index(index), gfp); in xa_store_index()
45 static void xa_insert_index(struct xarray *xa, unsigned long index) in xa_insert_index() argument
47 XA_BUG_ON(xa, xa_insert(xa, index, xa_mk_index(index), in xa_insert_index()
51 static void xa_alloc_index(struct xarray *xa, unsigned long index, gfp_t gfp) in xa_alloc_index() argument
55 XA_BUG_ON(xa, xa_alloc(xa, &id, xa_mk_index(index), xa_limit_32b, in xa_alloc_index()
57 XA_BUG_ON(xa, id != index); in xa_alloc_index()
[all …]
H A Dxarray.c33 static inline unsigned int xa_lock_type(const struct xarray *xa) in xa_lock_type() argument
35 return (__force unsigned int)xa->xa_flags & 3; in xa_lock_type()
58 static inline bool xa_track_free(const struct xarray *xa) in xa_track_free() argument
60 return xa->xa_flags & XA_FLAGS_TRACK_FREE; in xa_track_free()
63 static inline bool xa_zero_busy(const struct xarray *xa) in xa_zero_busy() argument
65 return xa->xa_flags & XA_FLAGS_ZERO_BUSY; in xa_zero_busy()
68 static inline void xa_mark_set(struct xarray *xa, xa_mark_t mark) in xa_mark_set() argument
70 if (!(xa->xa_flags & XA_FLAGS_MARK(mark))) in xa_mark_set()
71 xa->xa_flags |= XA_FLAGS_MARK(mark); in xa_mark_set()
74 static inline void xa_mark_clear(struct xarray *xa, xa_mark_t mark) in xa_mark_clear() argument
[all …]
H A Didr.c385 XA_STATE(xas, &ida->xa, min / IDA_BITMAP_BITS); in ida_alloc_range()
508 xa_lock_irqsave(&ida->xa, flags); in ida_find_first_range()
510 entry = xa_find(&ida->xa, &index, max / IDA_BITMAP_BITS, XA_PRESENT); in ida_find_first_range()
534 xa_unlock_irqrestore(&ida->xa, flags); in ida_find_first_range()
543 xa_unlock_irqrestore(&ida->xa, flags); in ida_find_first_range()
558 XA_STATE(xas, &ida->xa, id / IDA_BITMAP_BITS); in ida_free()
612 XA_STATE(xas, &ida->xa, 0); in ida_destroy()
663 struct xarray *xa = &ida->xa; in ida_dump() local
664 pr_debug("ida: %p node %p free %d\n", ida, xa->xa_head, in ida_dump()
665 xa->xa_flags >> ROOT_TAG_SHIFT); in ida_dump()
[all …]
/linux/include/linux/
H A Dxarray.h363 void *xa_find(struct xarray *xa, unsigned long *index,
365 void *xa_find_after(struct xarray *xa, unsigned long *index,
382 static inline void xa_init_flags(struct xarray *xa, gfp_t flags) in xa_init_flags() argument
384 spin_lock_init(&xa->xa_lock); in xa_init_flags()
385 xa->xa_flags = flags; in xa_init_flags()
386 xa->xa_head = NULL; in xa_init_flags()
397 static inline void xa_init(struct xarray *xa) in xa_init() argument
399 xa_init_flags(xa, 0); in xa_init()
409 static inline bool xa_empty(const struct xarray *xa) in xa_empty() argument
411 return xa->xa_head == NULL; in xa_empty()
[all …]
H A Didr.h264 struct xarray xa; member
270 .xa = XARRAY_INIT(name, IDA_INIT_FLAGS) \
334 xa_init_flags(&ida->xa, IDA_INIT_FLAGS); in ida_init()
339 return xa_empty(&ida->xa); in ida_is_empty()
/linux/rust/kernel/
H A Dxarray.rs58 xa: Opaque<bindings::xarray>, field
75 unsafe { bindings::xa_destroy(self.xa.get()) }; in drop()
98 xa <- Opaque::ffi_init(|xa| unsafe { in new()
99 bindings::xa_init_flags(xa, flags) in new()
110 bindings::xa_find(self.xa.get(), &mut index, usize::MAX, bindings::XA_PRESENT) in iter()
115 bindings::xa_find_after(self.xa.get(), &mut index, usize::MAX, bindings::XA_PRESENT) in iter()
124 if (unsafe { bindings::xa_trylock(self.xa.get()) } != 0) { in try_lock()
126 xa: self, in try_lock()
137 unsafe { bindings::xa_lock(self.xa.get()) }; in lock()
140 xa: self, in lock()
[all …]
/linux/rust/helpers/
H A Dxarray.c10 __rust_helper void rust_helper_xa_init_flags(struct xarray *xa, gfp_t flags) in rust_helper_xa_init_flags() argument
12 return xa_init_flags(xa, flags); in rust_helper_xa_init_flags()
15 __rust_helper int rust_helper_xa_trylock(struct xarray *xa) in rust_helper_xa_trylock() argument
17 return xa_trylock(xa); in rust_helper_xa_trylock()
20 __rust_helper void rust_helper_xa_lock(struct xarray *xa) in rust_helper_xa_lock() argument
22 return xa_lock(xa); in rust_helper_xa_lock()
25 __rust_helper void rust_helper_xa_unlock(struct xarray *xa) in rust_helper_xa_unlock() argument
27 return xa_unlock(xa); in rust_helper_xa_unlock()
/linux/drivers/infiniband/core/
H A Drestrack.c35 xa_init_flags(&rt[i].xa, XA_FLAGS_ALLOC); in rdma_restrack_init()
50 struct xarray *xa = &dev->res[i].xa; in rdma_restrack_clean() local
52 WARN_ON(!xa_empty(xa)); in rdma_restrack_clean()
53 xa_destroy(xa); in rdma_restrack_clean()
69 XA_STATE(xas, &rt->xa, 0); in rdma_restrack_count()
72 xa_lock(&rt->xa); in rdma_restrack_count()
74 if (xa_get_mark(&rt->xa, e->id, RESTRACK_DD) && !show_details) in rdma_restrack_count()
78 xa_unlock(&rt->xa); in rdma_restrack_count()
205 ret = xa_insert(&rt->xa, res->id, res, GFP_KERNEL); in rdma_restrack_add()
210 xa_set_mark(&rt->xa, res->id, RESTRACK_DD); in rdma_restrack_add()
[all …]
/linux/include/trace/events/
H A Dxdp.h306 TP_PROTO(const struct xdp_mem_allocator *xa),
308 TP_ARGS(xa),
311 __field(const struct xdp_mem_allocator *, xa)
318 __entry->xa = xa;
319 __entry->mem_id = xa->mem.id;
320 __entry->mem_type = xa->mem.type;
321 __entry->allocator = xa->allocator;
333 TP_PROTO(const struct xdp_mem_allocator *xa,
336 TP_ARGS(xa, rxq),
339 __field(const struct xdp_mem_allocator *, xa)
[all …]
/linux/drivers/gpu/drm/xe/
H A Dxe_reg_sr.c32 xa_for_each(&sr->xa, reg, entry) in reg_sr_fini()
35 xa_destroy(&sr->xa); in reg_sr_fini()
40 xa_init(&sr->xa); in xe_reg_sr_init()
76 struct xe_reg_sr_entry *pentry = xa_load(&sr->xa, idx); in xe_reg_sr_add()
99 ret = xa_err(xa_store(&sr->xa, idx, pentry, GFP_KERNEL)); in xe_reg_sr_add()
169 if (xa_empty(&sr->xa)) in xe_reg_sr_apply_mmio()
183 xa_for_each(&sr->xa, reg, entry) in xe_reg_sr_apply_mmio()
197 if (!sr->name || xa_empty(&sr->xa)) in xe_reg_sr_dump()
201 xa_for_each(&sr->xa, reg, entry) in xe_reg_sr_dump()
/linux/net/core/
H A Dxdp.c55 const struct xdp_mem_allocator *xa = ptr; in xdp_mem_id_cmp() local
58 return xa->mem.id != mem_id; in xdp_mem_id_cmp()
75 struct xdp_mem_allocator *xa; in __xdp_mem_allocator_rcu_free() local
77 xa = container_of(rcu, struct xdp_mem_allocator, rcu); in __xdp_mem_allocator_rcu_free()
80 ida_free(&mem_id_pool, xa->mem.id); in __xdp_mem_allocator_rcu_free()
82 kfree(xa); in __xdp_mem_allocator_rcu_free()
85 static void mem_xa_remove(struct xdp_mem_allocator *xa) in mem_xa_remove() argument
87 trace_mem_disconnect(xa); in mem_xa_remove()
89 if (!rhashtable_remove_fast(mem_id_ht, &xa->node, mem_id_rht_params)) in mem_xa_remove()
90 call_rcu(&xa->rcu, __xdp_mem_allocator_rcu_free); in mem_xa_remove()
[all …]
/linux/tools/testing/radix-tree/
H A Diteration_check_2.c35 struct xarray *xa = arg; in throbber() local
43 xa_store(xa, i, xa_mk_value(i), GFP_KERNEL); in throbber()
44 xa_set_mark(xa, i, XA_MARK_0); in throbber()
47 xa_erase(xa, i); in throbber()
H A Dtest.c79 int item_delete_rcu(struct xarray *xa, unsigned long index) in item_delete_rcu() argument
81 struct item *item = xa_erase(xa, index); in item_delete_rcu()
173 int tag_tagged_items(struct xarray *xa, unsigned long start, unsigned long end, in tag_tagged_items() argument
176 XA_STATE(xas, xa, start); in tag_tagged_items()
255 void item_kill_tree(struct xarray *xa) in item_kill_tree() argument
257 XA_STATE(xas, xa, 0); in item_kill_tree()
267 assert(xa_empty(xa)); in item_kill_tree()
/linux/arch/arm64/boot/dts/qcom/
H A Dpmr735d_a.dtsi37 reg = <0xa SPMI_USID>;
44 interrupts = <0xa 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
H A Dhamoa-pmics.dtsi292 interrupts = <0x1 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
330 interrupts = <0x2 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
355 interrupts = <0x3 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
379 interrupts = <0x4 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
403 interrupts = <0x5 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
427 interrupts = <0x6 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
452 interrupts = <0x8 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
477 interrupts = <0x9 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
527 reg = <0xa SPMI_USID>;
H A Dlemans-pmics.dtsi111 interrupts-extended = <&spmi_bus 0x0 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
177 interrupts-extended = <&spmi_bus 0x2 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
201 interrupts-extended = <&spmi_bus 0x4 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
225 interrupts-extended = <&spmi_bus 0x6 0xa 0x0 IRQ_TYPE_EDGE_BOTH>;
/linux/io_uring/
H A Dtctx.c59 xa_for_each(&tctx->xa, index, node) { in __io_uring_free()
102 xa_init(&tctx->xa); in io_uring_alloc_task_context()
141 if (!xa_load(&tctx->xa, (unsigned long)ctx)) { in __io_uring_add_tctx_node()
148 ret = xa_err(xa_store(&tctx->xa, (unsigned long)ctx, in __io_uring_add_tctx_node()
188 node = xa_erase(&tctx->xa, index); in io_uring_del_tctx_node()
203 if (xa_empty(&tctx->xa) && tctx->io_wq) in io_uring_del_tctx_node()
213 xa_for_each(&tctx->xa, index, node) { in io_uring_clean_tctx()
/linux/drivers/gpu/drm/panthor/
H A Dpanthor_heap.c97 struct xarray xa; member
232 heap = xa_erase(&pool->xa, handle); in panthor_heap_destroy_locked()
332 ret = xa_alloc(&pool->xa, &id, heap, in panthor_heap_create()
384 heap = xa_load(&pool->xa, heap_id); in panthor_heap_return_chunk()
448 heap = xa_load(&pool->xa, heap_id); in panthor_heap_grow()
497 xa_destroy(&pool->xa); in panthor_heap_pool_release()
554 xa_init_flags(&pool->xa, XA_FLAGS_ALLOC); in panthor_heap_pool_create()
604 xa_for_each(&pool->xa, i, heap) in panthor_heap_pool_destroy()
/linux/drivers/iommu/amd/
H A Dnested.c62 static void *gdom_info_load_or_alloc_locked(struct xarray *xa, unsigned long index) in gdom_info_load_or_alloc_locked() argument
66 elm = xa_load(xa, index); in gdom_info_load_or_alloc_locked()
70 xa_unlock(xa); in gdom_info_load_or_alloc_locked()
72 xa_lock(xa); in gdom_info_load_or_alloc_locked()
76 res = __xa_cmpxchg(xa, index, NULL, elm, GFP_KERNEL); in gdom_info_load_or_alloc_locked()
/linux/arch/powerpc/boot/dts/fsl/
H A Dp2020ds.dtsi221 0x8800 0x0 0x0 0x2 &i8259 0xa 0x2
225 0x8900 0x0 0x0 0x2 &i8259 0xa 0x2
229 0x8a00 0x0 0x0 0x2 &i8259 0xa 0x2
233 0x8b00 0x0 0x0 0x2 &i8259 0xa 0x2
237 0x8c00 0x0 0x0 0x2 &i8259 0xa 0x2
241 0x8d00 0x0 0x0 0x2 &i8259 0xa 0x2
245 0x8e00 0x0 0x0 0x2 &i8259 0xa 0x2
249 0x8f00 0x0 0x0 0x2 &i8259 0xa 0x2
/linux/drivers/cxl/core/
H A Dcdat.c390 static void discard_dsmas(struct xarray *xa) in discard_dsmas() argument
395 xa_for_each(xa, index, ent) { in discard_dsmas()
396 xa_erase(xa, index); in discard_dsmas()
399 xa_destroy(xa); in discard_dsmas()
723 static void free_perf_xa(struct xarray *xa) in free_perf_xa() argument
728 if (!xa) in free_perf_xa()
731 xa_for_each(xa, index, ctx) in free_perf_xa()
733 xa_destroy(xa); in free_perf_xa()
734 kfree(xa); in free_perf_xa()
862 static struct xarray *cxl_rp_gather_bandwidth(struct xarray *xa) in cxl_rp_gather_bandwidth() argument
[all …]
/linux/mm/
H A Dlist_lru.c56 struct list_lru_memcg *mlru = xa_load(&lru->xa, idx); in list_lru_from_memcg_idx()
370 xa_for_each(&lru->xa, index, mlru) { in list_lru_walk_node()
423 xa_init_flags(&lru->xa, XA_FLAGS_LOCK_IRQ); in memcg_init_list_lru()
429 XA_STATE(xas, &lru->xa, 0); in memcg_destroy_list_lru()
475 XA_STATE(xas, &lru->xa, memcg->kmemcg_id); in memcg_reparent_list_lrus()
510 return idx < 0 || xa_load(&lru->xa, idx); in memcg_list_lru_allocated()
519 XA_STATE(xas, &lru->xa, 0); in memcg_list_lru_alloc()
/linux/kernel/irq/
H A Dmsi.c106 struct xarray *xa = &md->__domains[domid].store; in msi_insert_desc() local
117 ret = xa_alloc(xa, &index, desc, limit, GFP_KERNEL); in msi_insert_desc()
130 ret = xa_insert(xa, index, desc, GFP_KERNEL); in msi_insert_desc()
201 struct xarray *xa; in msi_domain_free_descs() local
209 xa = &dev->msi.data->__domains[ctrl->domid].store; in msi_domain_free_descs()
210 xa_for_each_range(xa, idx, desc, ctrl->first, ctrl->last) { in msi_domain_free_descs()
211 xa_erase(xa, idx); in msi_domain_free_descs()
375 struct xarray *xa = &md->__domains[domid].store; in msi_find_desc() local
378 xa_for_each_start(xa, md->__iter_idx, desc, md->__iter_idx) { in msi_find_desc()
457 struct xarray *xa; in msi_domain_get_virq() local
[all …]
/linux/drivers/gpu/drm/amd/amdgpu/
H A Damdgpu_userq_fence.c124 static void amdgpu_userq_walk_and_drop_fence_drv(struct xarray *xa) in amdgpu_userq_walk_and_drop_fence_drv() argument
129 if (xa_empty(xa)) in amdgpu_userq_walk_and_drop_fence_drv()
132 xa_lock(xa); in amdgpu_userq_walk_and_drop_fence_drv()
133 xa_for_each(xa, index, fence_drv) { in amdgpu_userq_walk_and_drop_fence_drv()
134 __xa_erase(xa, index); in amdgpu_userq_walk_and_drop_fence_drv()
138 xa_unlock(xa); in amdgpu_userq_walk_and_drop_fence_drv()
191 struct xarray *xa = &adev->userq_xa; in amdgpu_userq_fence_driver_destroy() local
209 xa_lock_irqsave(xa, flags); in amdgpu_userq_fence_driver_destroy()
210 xa_for_each(xa, index, xa_fence_drv) in amdgpu_userq_fence_driver_destroy()
212 __xa_erase(xa, index); in amdgpu_userq_fence_driver_destroy()
[all …]
/linux/drivers/infiniband/hw/hns/
H A Dhns_roce_srq.c17 xa_lock(&srq_table->xa); in hns_roce_srq_event()
18 srq = xa_load(&srq_table->xa, srqn & (hr_dev->caps.num_srqs - 1)); in hns_roce_srq_event()
21 xa_unlock(&srq_table->xa); in hns_roce_srq_event()
125 ret = xa_err(xa_store_irq(&srq_table->xa, srq->srqn, srq, GFP_KERNEL)); in alloc_srqc()
138 xa_erase_irq(&srq_table->xa, srq->srqn); in alloc_srqc()
156 xa_erase_irq(&srq_table->xa, srq->srqn); in free_srqc()
544 xa_init(&srq_table->xa); in hns_roce_init_srq_table()

12345678