Lines Matching refs:objects
5 * iommufd provides control over the IOMMU HW objects created by IOMMU kernel
6 * drivers. IOMMU HW objects revolve around IO page tables that map incoming DMA
36 * destruction. Expect for special kernel-only objects there is no in-kernel way
37 * to reliably destroy a single object. Thus all APIs that are creating objects
44 XA_STATE(xas, &ictx->objects, obj->id);
47 xa_lock(&ictx->objects);
49 xa_unlock(&ictx->objects);
57 XA_STATE(xas, &ictx->objects, obj->id);
60 xa_lock(&ictx->objects);
62 xa_unlock(&ictx->objects);
89 xa_lock(&ictx->objects);
90 obj = xa_load(&ictx->objects, id);
94 xa_unlock(&ictx->objects);
124 XA_STATE(xas, &ictx->objects, id);
130 * destruction of objects used by external drivers and destroyed by this
147 xa_lock(&ictx->objects);
173 xa_unlock(&ictx->objects);
194 xa_unlock(&ictx->objects);
226 xa_init_flags(&ictx->objects, XA_FLAGS_ALLOC1 | XA_FLAGS_ACCOUNT);
244 * The objects in the xarray form a graph of "users" counts, and we have
245 * to destroy them in a depth first manner. Leaf objects will reduce the
246 * users count of interior objects when they are destroyed.
248 * Repeatedly destroying all the "1 users" leaf objects will progress
252 while (!xa_empty(&ictx->objects)) {
256 xa_for_each(&ictx->objects, index, obj) {
260 xa_erase(&ictx->objects, index);