xas_advance(9)
β¨ xas_advance β¨
Hey bestie π welcome to the xas_advance(9) page β that's a kernel API manual situation, and yes we're gonna get through it together. Grab a lil snack π, this one's actually short and sweet.
πΈ NAME πΈ
xas_advance β skip over sibling entries, no cap.
π SYNOPSIS π
void xas_advance (struct xa_state *xas , unsigned long index );
π¦ ARGUMENTS π¦
xasβ the XArray operation state. it's giving "the whole vibe of what we're doing rn" πindexβ the index of the last sibling entry. literally the last one in the group, periodt.
π DESCRIPTION π
Okay so here's the tea β β xas_advance moves the operation state so it refers to the last sibling entry. That's it, that's the whole move.
Why would you even want that? Because loops are main character energy π. Sometimes a loop normally wants to see all the sibling entries, but sometimes it lowkey wants to skip right past them. This is your function for that vibe check.
one thing tho π«Ά β if you're trying to move to an index that is not part of this entry, usexas_setinstead.xas_advanceis strictly for staying inside the family, iykyk. fr fr.
π SEE ALSO π
Kernel file ./include/linux/xarray.h β go look at it, it's iconic β¨
- value & pointer stuff:
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) - structs:
struct xa_limit(9),struct xarray(9) - defining your xarray:
DEFINE_XARRAY_FLAGS(9),DEFINE_XARRAY(9),DEFINE_XARRAY_ALLOC(9),DEFINE_XARRAY_ALLOC1(9) - init & basics:
xa_init_flags(9),xa_init(9),xa_empty(9),xa_marked(9) - iteration (the fun part π):
xa_for_each_range(9),xa_for_each_start(9),xa_for_each(9),xa_for_each_marked(9) - storing & erasing:
xa_store_bh(9),xa_store_irq(9),xa_erase_bh(9),xa_erase_irq(9) - compare & swap:
xa_cmpxchg(9),xa_cmpxchg_bh(9),xa_cmpxchg_irq(9) - inserting:
xa_insert(9),xa_insert_bh(9),xa_insert_irq(9) - allocating:
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) - reserve & release:
xa_reserve(9),xa_reserve_bh(9),xa_reserve_irq(9),xa_release(9) - checks & helpers:
xa_is_sibling(9),xa_is_retry(9),xa_is_advanced(9),xa_update_node_t(9) - state macros:
XA_STATE(9),XA_STATE_ORDER(9) - state error/invalid checks:
xas_error(9),xas_set_err(9),xas_invalid(9),xas_valid(9) - state node stuff:
xas_is_node(9),xas_reset(9),xas_retry(9),xas_reload(9) - state setters:
xas_set(9),xas_set_order(9),xas_set_update(9) - walking forward:
xas_next_entry(9),xas_next_marked(9),xas_for_each(9),xas_for_each_marked(9),xas_for_each_conflict(9) - walking back/forth:
xas_prev(9),xas_next(9)
Okay that's the whole page, you ate that π
β¨ Go forth and skip some siblings bestie, you got this. Big slay energy to whoever's reading this from ./include/linux β the docs live there, and this page was dated back in October 2026. ππ¦π
π¦ where this page comes from
- nixpkgs unstable: linux-manual 7.3.1
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms