xa_init(9)
π xa_init(9) β like, the Kernel API Manual, bestie
okay so real talk, this one is from the Kernel API Manual and it's genuinely the smallest little function and it's iconic for it. no cap. let's go π
β¨ NAME β¨
xa_init β initialise an empty XArray. that's it. that's the whole job. she's a fresh start, a blank slate, main character energy π¦
β¨ SYNOPSIS β¨
void xa_init (struct xarray *xa );
literally one line. one argument. no return value. she does not miss π
β¨ ARGUMENTS β¨
xaβ the XArray. yes, that's the entire description. the whole thing. the docs said "XArray." and honestly? respect. π
β¨ DESCRIPTION β¨
An empty XArray is full of NULL entries.
and that's not a typo, bestie, that's the point β "empty" doesn't mean "nothing in there", it means every single slot is holding a NULL. it's giving freshly-cleaned-room vibes. the room exists, the furniture is just... NULL. empty but structured. periodt β¨
β¨ CONTEXT β¨
Any context.
fr fr β any. no locks required, no sleep rules, no "only from process context" caveats. she works anywhere. calls from anywhere. zero drama, which is honestly so rare in this kernel, we stan a low-maintenance queen π
π SEE ALSO π
Kernel file ./include/linux/xarray.h β and, like, the entire extended universe of XArray lore. every single one, i'm not skipping any, you know i'd never gatekeep:
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_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_prev(9)xas_next(9)
like, the whole friend group. go read them, iykyk π«Ά
π reminder bestie: this page lives in./include/linuxand it's dated October 2026 β so yes, it's gonna be relevant for a while.xa_init(9), out. slay, stay hydrated, and initialise responsibly β¨πΈπ§ββοΈ
π¦ 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