irq_domain_xlate_onetwocell(9)
π irq_domain_xlate_onetwocell(9) β like, the whole vibe
okay so bestie, welcome to the Kernel API Manual β¨ we're literally looking at irq_domain_xlate_onetwocell(9) today and honestly? she's a niche little queen but she serves π
πΈ NAME πΈ
irq_domain_xlate_onetwocell β the generic xlate for one-or-two cell bindings, no cap π«
β¨ SYNOPSIS β¨
int irq_domain_xlate_onetwocell (struct irq_domain *d , struct
device_node *ctrlr , const u32 *intspec , unsigned int intsize ,
unsigned long *out_hwirq , unsigned int *out_type );
like, that's the whole signature β she takes six things and hands you back an int π«Ά
π¦ ARGUMENTS π¦
dβ the interrupt domain that's involved in the translation. your main character domain fr πctrlrβ the device tree node for the device whose interrupt is being translated. iykyk πintspecβ the interrupt specifier data from the device tree. the raw tea βintsizeβ the number of entries inintspec. like, how many cells we're working with π§out_hwirqβ pointer to storage for the hardware interrupt number. this is where the hwirq goes to live πout_typeβ pointer to storage for the interrupt type. the vibe check destination π
π₯ DESCRIPTION π₯
so this is a Device Tree IRQ specifier translation function πβ¨ and she works with either one or two cell bindings β emphasis on either, bestie β where the cell values map directly to the hwirq number and the linux irq flags. like, direct. no middleman. no drama. periodt π
β NOTE β
π¨ ok this is the important part, listen up: don't use this function unless your interrupt controller explicitly supports both one and two cell bindings. For the majority of controllers, the_onecellor_twocellvariants above should be used. like, don't be out here using the flexible one just because she's flexible ππ
π SEE ALSO π
Kernel file ./kernel/irq/irqdomain.c β and literally the whole extended friend group π«Ά:
__irq_domain_alloc_fwnode(9)irq_domain_free_fwnode(9)irq_domain_instantiate(9)irq_domain_remove(9)irq_domain_create_simple(9)irq_find_matching_fwspec(9)irq_set_default_domain(9)irq_get_default_domain(9)irq_create_direct_mapping(9)irq_create_mapping_affinity(9)irq_dispose_mapping(9)__irq_resolve_mapping(9)irq_domain_xlate_onecell(9)irq_domain_xlate_twocell(9)irq_domain_xlate_twothreecell(9)irq_domain_translate_onecell(9)irq_domain_translate_twocell(9)irq_domain_translate_twothreecell(9)irq_domain_reset_irq_data(9)irq_domain_disconnect_hierarchy(9)irq_domain_get_irq_data(9)irq_domain_set_hwirq_and_chip(9)irq_domain_set_info(9)irq_domain_free_irqs_common(9)irq_domain_free_irqs_top(9)__irq_domain_alloc_irqs(9)irq_domain_push_irq(9)irq_domain_pop_irq(9)irq_domain_free_irqs(9)irq_domain_alloc_irqs_parent(9)irq_domain_free_irqs_parent(9)irq_domain_activate_irq(9)irq_domain_deactivate_irq(9)
and that's the page, bestie π this one came from ./kernel/irq, dated October 2026, and she's filed under irq_domain_xlate_onetwocell(9) β slay, go translate some interrupts 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