xas_prev(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸŽ€ NAME πŸŽ€

okay so this is xas_prev(9) from the Kernel API Manual, and its whole name-line vibe is: xas_prev β€” Move iterator to previous index. bestie, it literally walks your iterator backward and I'm obsessed. πŸ’…

✨ SYNOPSIS ✨

the signature is giving exactly this, no edits:

void * xas_prev (struct xa_state *xas );

🫢 ARGUMENTS 🫢

  • xas β€” the XArray operation state. that's the little state bestie you're moving around. πŸ¦‹

🌈 DESCRIPTION 🌈

okay so picture your iterator state, the xas πŸ‘€. If the xas was in an error state, it will remain in an error state and this function will return NULL β€” no cap, it stays in its error-era. If the xas has never been walked, it will have the effect of calling xas_load. Otherwise, one will be subtracted from the index, and the state will be walked to the correct location in the array for the next operation. and if the iterator was referencing index 0, this function wraps around to ULONG_MAX β€” yes, the full wrap, periodt. πŸŒ€

πŸ”₯ RETURN πŸ”₯

The entry at the new index. This may be NULL or an internal entry. so like, don't assume it's always a cute little normal pointer β€” it can be NULL or an internal entry, iykyk. πŸ’€

πŸ‘‘ SEE ALSO πŸ‘‘

Kernel file ./include/linux/xarray.h is home base, and the full SEE ALSO roll call is: xa_mk_value(9), xa_to_value(9), xa_is_value(9), xa_tag_pointer(9), xa_untag_pointer(9), xa_pointer_tag(9), xa_is_zero(9), xa_is_err(9), xa_err(9), struct xa_limit(9), struct xarray(9), DEFINE_XARRAY_FLAGS(9), DEFINE_XARRAY(9), DEFINE_XARRAY_ALLOC(9), DEFINE_XARRAY_ALLOC1(9), xa_init_flags(9), xa_init(9), xa_empty(9), xa_marked(9), xa_for_each_range(9), xa_for_each_start(9), xa_for_each(9), xa_for_each_marked(9), xa_store_bh(9), xa_store_irq(9), xa_erase_bh(9), xa_erase_irq(9), xa_cmpxchg(9), xa_cmpxchg_bh(9), xa_cmpxchg_irq(9), xa_insert(9), xa_insert_bh(9), xa_insert_irq(9), xa_alloc(9), xa_alloc_bh(9), xa_alloc_irq(9), xa_alloc_cyclic(9), xa_alloc_cyclic_bh(9), xa_alloc_cyclic_irq(9), xa_reserve(9), xa_reserve_bh(9), xa_reserve_irq(9), xa_release(9), xa_is_sibling(9), xa_is_retry(9), xa_is_advanced(9), xa_update_node_t(9), XA_STATE(9), XA_STATE_ORDER(9), xas_error(9), xas_set_err(9), xas_invalid(9), xas_valid(9), xas_is_node(9), xas_reset(9), xas_retry(9), xas_reload(9), xas_set(9), xas_advance(9), xas_set_order(9), xas_set_update(9), xas_next_entry(9), xas_next_marked(9), xas_for_each(9), xas_for_each_marked(9), xas_for_each_conflict(9), xas_next(9). 🫢✨


πŸ’– source/version: ./include/linux Β· date: October 2026 β€” mwah, that's the whole xas_prev(9) story, bestie πŸ’–

πŸ“¦ where this page comes from