/linux-master/lib/ |
H A D | xarray.c | 21 * @xas is the 'xarray operation state'. It may be either a pointer to 38 static inline void xas_lock_type(struct xa_state *xas, unsigned int lock_type) argument 41 xas_lock_irq(xas); 43 xas_lock_bh(xas); 45 xas_lock(xas); 48 static inline void xas_unlock_type(struct xa_state *xas, unsigned int lock_type) argument 51 xas_unlock_irq(xas); 53 xas_unlock_bh(xas); 55 xas_unlock(xas); 121 * @xas 126 xas_squash_marks(const struct xa_state *xas) argument 149 xas_set_offset(struct xa_state *xas) argument 155 xas_move_index(struct xa_state *xas, unsigned long offset) argument 162 xas_next_offset(struct xa_state *xas) argument 168 set_bounds(struct xa_state *xas) argument 181 xas_start(struct xa_state *xas) argument 203 xas_descend(struct xa_state *xas, struct xa_node *node) argument 235 xas_load(struct xa_state *xas) argument 268 xas_destroy(struct xa_state *xas) argument 298 xas_nomem(struct xa_state *xas, gfp_t gfp) argument 331 xas_destroy(xas); variable 351 xas_update(struct xa_state *xas, struct xa_node *node) argument 359 xas_alloc(struct xa_state *xas, unsigned int shift) argument 401 xas_size(const struct xa_state *xas) argument 413 xas_max(struct xa_state *xas) argument 437 xas_shrink(struct xa_state *xas) argument 481 xas_delete_node(struct xa_state *xas) argument 523 xas_free_nodes(struct xa_state *xas, struct xa_node *top) argument 559 xas_expand(struct xa_state *xas, void *head) argument 639 xas_create(struct xa_state *xas, bool allow_root) argument 704 xas_create_range(struct xa_state *xas) argument 747 update_node(struct xa_state *xas, struct xa_node *node, int count, int values) argument 775 xas_store(struct xa_state *xas, void *entry) argument 857 xas_get_mark(const struct xa_state *xas, xa_mark_t mark) argument 876 xas_set_mark(const struct xa_state *xas, xa_mark_t mark) argument 905 xas_clear_mark(const struct xa_state *xas, xa_mark_t mark) argument 939 xas_init_marks(const struct xa_state *xas) argument 1003 xas_split_alloc(struct xa_state *xas, void *entry, unsigned int order, gfp_t gfp) argument 1054 xas_split(struct xa_state *xas, void *entry, unsigned int order) argument 1120 xas_pause(struct xa_state *xas) argument 1150 __xas_prev(struct xa_state *xas) argument 1189 __xas_next(struct xa_state *xas) argument 1237 xas_find(struct xa_state *xas, unsigned long max) argument 1306 xas_find_marked(struct xa_state *xas, unsigned long max, xa_mark_t mark) argument 1394 xas_find_conflict(struct xa_state *xas) argument 1471 xas_result(struct xa_state *xas, void *curr) argument 1667 xas_set_range(struct xa_state *xas, unsigned long first, unsigned long last) argument 2038 xas_sibling(struct xa_state *xas) argument 2098 xas_extract_present(struct xa_state *xas, void **dst, unsigned long max, unsigned int n) argument 2117 xas_extract_marked(struct xa_state *xas, void **dst, unsigned long max, unsigned int n, xa_mark_t mark) argument 2187 struct xa_state xas = { local [all...] |
H A D | test_xarray.c | 74 XA_STATE_ORDER(xas, xa, index, order); 78 xas_lock(&xas); 79 curr = xas_store(&xas, entry); 80 xas_unlock(&xas); 81 } while (xas_nomem(&xas, gfp)); 104 XA_STATE(xas, xa, 0); 111 XA_BUG_ON(xa, xas_find(&xas, ULONG_MAX) != xa_mk_value(0)); 113 XA_BUG_ON(xa, !xa_is_retry(xas_reload(&xas))); 114 XA_BUG_ON(xa, xas_retry(&xas, NULL)); 115 XA_BUG_ON(xa, xas_retry(&xas, xa_mk_valu [all...] |
H A D | idr.c | 383 XA_STATE(xas, &ida->xa, min / IDA_BITMAP_BITS); 395 xas_lock_irqsave(&xas, flags); 397 bitmap = xas_find_marked(&xas, max / IDA_BITMAP_BITS, XA_FREE_MARK); 398 if (xas.xa_index > min / IDA_BITMAP_BITS) 400 if (xas.xa_index * IDA_BITMAP_BITS + bit > max) 408 if (xas.xa_index * IDA_BITMAP_BITS + bit > max) 412 xas_store(&xas, xa_mk_value(tmp)); 422 xas_store(&xas, bitmap); 423 if (xas_error(&xas)) { 431 if (xas [all...] |
/linux-master/include/linux/ |
H A D | xarray.h | 1358 * We encode errnos in the xas->xa_node. If an error has happened, we need to 1380 * @name: Name of this operation state (usually xas). 1391 * @name: Name of this operation state (usually xas). 1406 #define xas_marked(xas, mark) xa_marked((xas)->xa, (mark)) 1407 #define xas_trylock(xas) xa_trylock((xas)->xa) 1408 #define xas_lock(xas) xa_lock((xas)->xa) 1409 #define xas_unlock(xas) xa_unloc 1425 xas_error(const struct xa_state *xas) argument 1439 xas_set_err(struct xa_state *xas, long err) argument 1450 xas_invalid(const struct xa_state *xas) argument 1461 xas_valid(const struct xa_state *xas) argument 1472 xas_is_node(const struct xa_state *xas) argument 1505 xas_reset(struct xa_state *xas) argument 1522 xas_retry(struct xa_state *xas, const void *entry) argument 1559 xas_split(struct xa_state *xas, void *entry, unsigned int order) argument 1565 xas_split_alloc(struct xa_state *xas, void *entry, unsigned int order, gfp_t gfp) argument 1585 xas_reload(struct xa_state *xas) argument 1614 xas_set(struct xa_state *xas, unsigned long index) argument 1630 xas_advance(struct xa_state *xas, unsigned long index) argument 1644 xas_set_order(struct xa_state *xas, unsigned long index, unsigned int order) argument 1667 xas_set_update(struct xa_state *xas, xa_update_node_t update) argument 1672 xas_set_lru(struct xa_state *xas, struct list_lru *lru) argument 1688 xas_next_entry(struct xa_state *xas, unsigned long max) argument 1713 xas_find_chunk(struct xa_state *xas, bool advance, xa_mark_t mark) argument 1745 xas_next_marked(struct xa_state *xas, unsigned long max, xa_mark_t mark) argument 1844 xas_prev(struct xa_state *xas) argument 1873 xas_next(struct xa_state *xas) argument [all...] |
H A D | iov_iter.h | 154 XA_STATE(xas, iter->xarray, index); 157 xas_for_each(&xas, folio, ULONG_MAX) { 160 if (xas_retry(&xas, folio))
|
/linux-master/tools/testing/radix-tree/ |
H A D | iteration_check.c | 23 XA_STATE(xas, xa, index); 28 xas_lock(&xas); 30 xas_set_order(&xas, index, order); 32 if (xas_find_conflict(&xas)) 34 xas_store(&xas, item); 35 xas_set_mark(&xas, TAG); 38 xas_unlock(&xas); 39 if (xas_nomem(&xas, GFP_KERNEL)) 69 XA_STATE(xas, &array, 0); 75 xas_set(&xas, [all...] |
H A D | multiorder.c | 18 XA_STATE_ORDER(xas, xa, index, order); 22 xas_lock(&xas); 23 xas_store(&xas, item); 24 xas_unlock(&xas); 25 } while (xas_nomem(&xas, GFP_KERNEL)); 27 if (!xas_error(&xas)) 31 return xas_error(&xas); 36 XA_STATE(xas, xa, 0); 56 xas_set(&xas, j); 57 xas_for_each(&xas, ite [all...] |
H A D | iteration_check_2.c | 15 XA_STATE(xas, arg, 0); 21 xas_set(&xas, 0); 23 xas_for_each_marked(&xas, entry, ULONG_MAX, XA_MARK_0) 26 assert(xas.xa_index >= 100);
|
H A D | test.c | 176 XA_STATE(xas, xa, start); 183 xas_lock_irq(&xas); 184 xas_for_each_marked(&xas, item, end, iftag) { 185 xas_set_mark(&xas, thentag); 189 xas_pause(&xas); 190 xas_unlock_irq(&xas); 192 xas_lock_irq(&xas); 194 xas_unlock_irq(&xas); 257 XA_STATE(xas, xa, 0); 260 xas_for_each(&xas, entr [all...] |
H A D | regression1.c | 82 XA_STATE(xas, &mt_tree, start); 87 xas_for_each(&xas, page, ULONG_MAX) { 88 if (xas_retry(&xas, page)) 99 if (unlikely(page != xas_reload(&xas))) 108 xas_reset(&xas);
|
/linux-master/fs/ |
H A D | dax.c | 143 static wait_queue_head_t *dax_entry_waitqueue(struct xa_state *xas, argument 147 unsigned long index = xas->xa_index; 156 key->xa = xas->xa; 159 hash = hash_long((unsigned long)xas->xa ^ index, DAX_WAIT_TABLE_BITS); 181 static void dax_wake_entry(struct xa_state *xas, void *entry, argument 187 wq = dax_entry_waitqueue(xas, entry, &key); 209 static void *get_unlocked_entry(struct xa_state *xas, unsigned int order) argument 219 entry = xas_find_conflict(xas); 227 wq = dax_entry_waitqueue(xas, entry, &ewait.key); 230 xas_unlock_irq(xas); 243 wait_entry_unlocked(struct xa_state *xas, void *entry) argument 264 put_unlocked_entry(struct xa_state *xas, void *entry, enum dax_wake_mode mode) argument 276 dax_unlock_entry(struct xa_state *xas, void *entry) argument 292 dax_lock_entry(struct xa_state *xas, void *entry) argument 573 grab_mapping_entry(struct xa_state *xas, struct address_space *mapping, unsigned int order) argument 869 dax_insert_entry(struct xa_state *xas, struct vm_fault *vmf, const struct iomap_iter *iter, void *entry, pfn_t pfn, unsigned long flags) argument 926 dax_writeback_one(struct xa_state *xas, struct dax_device *dax_dev, struct address_space *mapping, void *entry) argument 1186 dax_load_hole(struct xa_state *xas, struct vm_fault *vmf, const struct iomap_iter *iter, void **entry) argument 1202 dax_pmd_load_hole(struct xa_state *xas, struct vm_fault *vmf, const struct iomap_iter *iter, void **entry) argument 1254 dax_pmd_load_hole(struct xa_state *xas, struct vm_fault *vmf, const struct iomap_iter *iter, void **entry) argument 1642 dax_fault_iter(struct vm_fault *vmf, const struct iomap_iter *iter, pfn_t *pfnp, struct xa_state *xas, void **entry, bool pmd) argument 1774 dax_fault_check_fallback(struct vm_fault *vmf, struct xa_state *xas, pgoff_t max_pgoff) argument [all...] |
/linux-master/fs/netfs/ |
H A D | misc.c | 19 XA_STATE_ORDER(xas, xa, index, folio_order(folio)); 22 xas_lock(&xas); 24 xas_store(&xas, folio); 25 if (!xas_error(&xas)) 27 xas_unlock(&xas); 28 if (!xas_nomem(&xas, gfp_mask)) 29 return xas_error(&xas); 34 xas_set_mark(&xas, NETFS_BUF_PUT_MARK); 36 xas_set_mark(&xas, NETFS_BUF_PAGECACHE_MARK); 37 xas_unlock(&xas); [all...] |
H A D | buffered_write.c | 646 XA_STATE(xas, &mapping->i_pages, wreq->start / PAGE_SIZE); 653 xas_for_each(&xas, folio, last) { 688 xas_pause(&xas); 706 xas_advance(&xas, folio_next_index(folio) - 1); 771 struct xa_state *xas, 797 xas_for_each(xas, folio, ULONG_MAX) { 799 if (xas_retry(xas, folio)) 804 xas_reset(xas); 809 xas_reset(xas); 814 if (unlikely(folio != xas_reload(xas))) { 769 netfs_extend_writeback(struct address_space *mapping, struct netfs_group *group, struct xa_state *xas, long *_count, loff_t start, loff_t max_len, bool caching, size_t *_len, size_t *_top) argument 892 netfs_write_back_from_locked_folio(struct address_space *mapping, struct writeback_control *wbc, struct netfs_group *group, struct xa_state *xas, struct folio *folio, unsigned long long start, unsigned long long end) argument 998 netfs_writepages_begin(struct address_space *mapping, struct writeback_control *wbc, struct netfs_group *group, struct xa_state *xas, unsigned long long *_start, unsigned long long end) argument [all...] |
H A D | iterator.c | 160 XA_STATE(xas, iter->xarray, index); 169 xas_for_each(&xas, folio, ULONG_MAX) { 171 if (xas_retry(&xas, folio))
|
/linux-master/mm/ |
H A D | memfd.c | 38 static void memfd_tag_pins(struct xa_state *xas) argument 45 xas_lock_irq(xas); 46 xas_for_each(xas, folio, ULONG_MAX) { 48 xas_set_mark(xas, MEMFD_TAG_PINNED); 54 xas_pause(xas); 55 xas_unlock_irq(xas); 57 xas_lock_irq(xas); 59 xas_unlock_irq(xas); 73 XA_STATE(xas, &mapping->i_pages, 0); 77 memfd_tag_pins(&xas); [all...] |
H A D | list_lru.c | 366 XA_STATE(xas, &lru->xa, 0); 372 xas_lock_irq(&xas); 373 xas_for_each(&xas, mlru, ULONG_MAX) { 375 xas_store(&xas, NULL); 377 xas_unlock_irq(&xas); 471 XA_STATE(xas, &lru->xa, 0); 500 xas_lock_irqsave(&xas, flags); 505 xas_set(&xas, index); 507 if (unlikely(index < 0 || xas_error(&xas) || xas_load(&xas))) { [all...] |
H A D | filemap.c | 127 static void mapping_set_update(struct xa_state *xas, argument 132 xas_set_update(xas, workingset_update_node); 133 xas_set_lru(xas, &shadow_nodes); 139 XA_STATE(xas, &mapping->i_pages, folio->index); 142 mapping_set_update(&xas, mapping); 144 xas_set_order(&xas, folio->index, folio_order(folio)); 149 xas_store(&xas, shadow); 150 xas_init_marks(&xas); 289 XA_STATE(xas, &mapping->i_pages, fbatch->folios[0]->index); 294 mapping_set_update(&xas, mappin 1959 find_get_entry(struct xa_state *xas, pgoff_t max, xa_mark_t mark) argument 2932 folio_seek_hole_data(struct xa_state *xas, struct address_space *mapping, struct folio *folio, loff_t start, loff_t end, bool seek_data) argument 2965 seek_folio_size(struct xa_state *xas, struct folio *folio) argument 3436 next_uptodate_folio(struct xa_state *xas, struct address_space *mapping, pgoff_t end_pgoff) argument [all...] |
H A D | swap_state.c | 93 XA_STATE_ORDER(xas, &address_space->i_pages, idx, folio_order(folio)); 97 xas_set_update(&xas, workingset_update_node); 108 xas_lock_irq(&xas); 109 xas_create_range(&xas); 110 if (xas_error(&xas)) 113 VM_BUG_ON_FOLIO(xas.xa_index != idx + i, folio); 115 old = xas_load(&xas); 119 xas_store(&xas, folio); 120 xas_next(&xas); 126 xas_unlock_irq(&xas); [all...] |
H A D | khugepaged.c | 1806 XA_STATE_ORDER(xas, &mapping->i_pages, start, HPAGE_PMD_ORDER); 1829 xas_lock_irq(&xas); 1830 xas_create_range(&xas); 1831 if (!xas_error(&xas)) 1833 xas_unlock_irq(&xas); 1834 if (!xas_nomem(&xas, GFP_KERNEL)) { 1841 xas_set(&xas, index); 1842 page = xas_load(&xas); 1844 VM_BUG_ON(index != xas.xa_index); 1853 if (!xas_next_entry(&xas, en [all...] |
H A D | page-writeback.c | 2344 XA_STATE(xas, &mapping->i_pages, start); 2348 xas_lock_irq(&xas); 2349 xas_for_each_marked(&xas, page, end, PAGECACHE_TAG_DIRTY) { 2350 xas_set_mark(&xas, PAGECACHE_TAG_TOWRITE); 2354 xas_pause(&xas); 2355 xas_unlock_irq(&xas); 2357 xas_lock_irq(&xas); 2359 xas_unlock_irq(&xas); 3049 XA_STATE(xas, &mapping->i_pages, folio_index(folio)); 3055 xas_lock_irqsave(&xas, flag [all...] |
/linux-master/fs/cachefiles/ |
H A D | ondemand.c | 15 XA_STATE(xas, &cache->reqs, 0); 22 xas_for_each_marked(&xas, req, ULONG_MAX, CACHEFILES_REQ_NEW) { 26 xas_store(&xas, NULL); 189 XA_STATE(xas, &cache->reqs, 0); 199 xas_lock(&xas); 200 xas_for_each(&xas, req, ULONG_MAX) 201 xas_set_mark(&xas, CACHEFILES_REQ_NEW); 202 xas_unlock(&xas); 273 static struct cachefiles_req *cachefiles_ondemand_select_req(struct xa_state *xas, argument 280 xas_for_each_marked(xas, re [all...] |
/linux-master/drivers/infiniband/core/ |
H A D | ib_core_uverbs.c | 268 XA_STATE(xas, &ucontext->mmap_xa, min_pgoff); 294 xas_find_marked(&xas, max_pgoff, XA_FREE_MARK); 295 if (xas.xa_node == XAS_RESTART) 298 xa_first = xas.xa_index; 308 xas_next_entry(&xas, xa_last - 1); 309 if (xas.xa_node == XAS_BOUNDS || xas.xa_index >= xa_last)
|
/linux-master/drivers/infiniband/sw/rxe/ |
H A D | rxe_mr.c | 96 XA_STATE(xas, &mr->page_list, 0); 106 xas_lock(&xas); 112 xas_set_err(&xas, -EINVAL); 116 xas_store(&xas, page); 117 if (xas_error(&xas)) 119 xas_next(&xas); 123 xas_unlock(&xas); 124 } while (xas_nomem(&xas, GFP_KERNEL)); 126 return xas_error(&xas); 161 XA_STATE(xas, [all...] |
/linux-master/drivers/iommu/iommufd/ |
H A D | pages.c | 523 XA_STATE(xas, xa, start_index); 528 entry = xas_next(&xas); 529 if (xas_retry(&xas, entry)) 544 XA_STATE(xas, xa, start_index); 547 xas_lock(&xas); 549 entry = xas_next(&xas); 550 if (xas_retry(&xas, entry)) 555 xas_store(&xas, NULL); 560 xas_unlock(&xas); 566 XA_STATE(xas, x [all...] |
/linux-master/arch/x86/kernel/cpu/sgx/ |
H A D | encl.c | 530 XA_STATE(xas, &encl->page_array, PFN_DOWN(start)); 545 xas_lock(&xas); 546 xas_for_each(&xas, page, PFN_DOWN(end - 1)) { 554 xas_pause(&xas); 555 xas_unlock(&xas); 561 xas_lock(&xas); 564 xas_unlock(&xas); 708 XA_STATE(xas, &encl->page_array, PFN_DOWN(encl->base)); 710 xas_lock(&xas); 711 xas_for_each(&xas, entr [all...] |