xa_err(9)
π xa_err(9) β the Kernel API Manual, but make it make sense
okay so bestie, welcome to xa_err, from the Kernel API Manual β¨ this is the lil function that turns an XArray result into an errno, and honestly? it's giving translator. it's giving "i speak pointer, you speak errno." let's get into it π«Ά
β¨ NAME β¨
xa_err β Turn an XArray result into an errno. that's it. that's the whole job. slay π
πΈ SYNOPSIS πΈ
int xa_err (void *entry );
yes bestie, that's the whole signature. one pointer in, one int out. iconic behavior honestly β¨
π ARGUMENTS π
entryβ Result from calling an XArray function. literally just hand over whatever the XArray op gave you back and letxa_errdo its thing π
π¦ DESCRIPTION π¦
okay so here's the vibe: when an XArray operation can't complete an operation, it does not just give up β it returns a special pointer value which encodes an errno. sneaky? a little. genius? absolutely π₯
This function extracts the errno from the pointer value, or returns 0 if the pointer does not represent an errno. so it's basically a vibe check for error pointers: errno in, errno out; not-an-errno in, 0 out. no cap πβ¨
π CONTEXT π
Any context. literally any. no restrictions, no "only in atomic," no "only at 3am on a tuesday." go off queen π
β RETURN β
A negative errno or 0. that's the whole menu, bestie β negative means "yeah something went wrong, here's the number," 0 means "no errno here, we're chilling" π
real talk though: this returns 0, not a positive value, when there's no errno encoded. don't go treating 0 like "success code #0xDEADBEEF" or whatever. it's just zero π
π₯ SEE ALSO π₯
Kernel file ./include/linux/xarray.h β and like, a lot of friends. buckle up bestie, this is the whole group chat π
:
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),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)- and the
xas_girlies: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 i said. whole group chat. mwah π
k bye bestie, go forth and decode those pointers π§π
this lil page lives in ./include/linux, dated October 2026, and it's filed under xa_err(9) β see you in the man pages, diva πβ¨
π¦ 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