STRUCT XA_LIMIT(9)
π struct xa_limit(9) β like, the whole manual, bestie
okay so first things first: this is a page out of the Kernel API Manual, and the star of the show is struct xa_limit. it lives in the kernel, it's fancy, it's giving "ID bouncer at the club" energy. let's get into it π«Ά
β¨ NAME β¨
struct xa_limit β literally just represents a range of IDs. that's it. that's the whole vibe. π
πΈ SYNOPSIS πΈ
struct xa_limit {
u32 max;
u32 min;
};
yes bestie, that's the entire struct. two little u32s and a dream. π
π¦ Members π¦
maxβ the maximum ID you're allowed to allocate, and it's inclusive (so like,maxitself gets an invite to the party too, no cap).minβ the lowest ID you're allowed to allocate, also inclusive (yesminis invited as well, it's only fair β¨).
π DESCRIPTION π
so the way this works: this structure gets used either directly or via the XA_LIMIT macro to communicate the range of IDs that are valid for allocation. that's its whole job and it does it slayfully. π
and here's the good part β three common ranges are already predefined for you, no assembly required:
xa_limit_32bβ[0 - UINT_MAX]xa_limit_31bβ[0 - INT_MAX]xa_limit_16bβ[0 - USHRT_MAX]
three little presets, all iconic, all just sitting there waiting for you. π₯
π SEE ALSO π
okay this next part is a lot but we don't skip, we don't scroll past, we read every single one. it's all in the kernel file ./include/linux/xarray.h, and honestly the whole xarray friend group showed up:
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 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_prev(9)xas_next(9)
like I said. everyone came. π§
ngl bestie, remember the inclusive thing onminandmaxβ both endpoints get allocated, that's the whole point of the range π
and that's the page!! sourced from ./include/linux, dated October 2026, and published under the struct xa_limit(9) banner in the Kernel API Manual π go read your xarray docs, ily, bye!! πβ
π¦ 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