Lines Matching +full:0 +full:xa
45 * @xa: xarray holds the IOASID space
52 #define IOASID_ALLOCATOR_CUSTOM BIT(0) /* Needs framework to track results */
54 struct xarray xa; member
71 .flags = 0,
72 .xa = XARRAY_INIT(ioasid_xa, XA_FLAGS_ALLOC),
81 if (xa_alloc(&default_allocator.xa, &id, opaque, XA_LIMIT(min, max), GFP_ATOMIC)) { in default_alloc()
93 ioasid_data = xa_erase(&default_allocator.xa, ioasid); in default_free()
106 xa_init_flags(&ia_data->xa, XA_FLAGS_ALLOC); in ioasid_alloc_allocator()
128 * are managed by IOASID framework similar to data stored in xa by default
142 int ret = 0; in ioasid_register_allocator()
160 if (xa_empty(&active_allocator->xa)) { in ioasid_register_allocator()
189 return 0; in ioasid_register_allocator()
229 WARN_ON(!xa_empty(&pallocator->xa)); in ioasid_unregister_allocator()
271 int ret = 0; in ioasid_set_data()
274 ioasid_data = xa_load(&active_allocator->xa, ioasid); in ioasid_set_data()
331 xa_alloc(&active_allocator->xa, &id, data, XA_LIMIT(id, id), GFP_ATOMIC)) { in ioasid_alloc()
357 ioasid_data = xa_load(&active_allocator->xa, ioasid); in ioasid_free()
364 /* Custom allocator needs additional steps to free the xa element */ in ioasid_free()
366 ioasid_data = xa_erase(&active_allocator->xa, ioasid); in ioasid_free()
398 ioasid_data = xa_load(&idata->xa, ioasid); in ioasid_find()