STRUCT IRQ_COMMON_DATA(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct irq_common_data(9) β€” Kernel API Manual, bestie edition

okay so picture this: it's giving kernel internals, it's giving shared data, and it lives in the Kernel API Manual. we're talking struct irq_common_data β€” the per irq data that every single irqchip gets to share. no cap, it's a communal vibe. 🫢


✨ NAME ✨

struct irq_common_data β€” per irq data shared by all irqchips 🌸


πŸŽ€ SYNOPSIS πŸŽ€

struct irq_common_data {
    unsigned int            state_use_accessors;
  #ifdef CONFIG_NUMA;
    unsigned int            node;
  #endif;
    void *handler_data;
    struct msi_desc         *msi_desc;
  #ifdef CONFIG_SMP;
    cpumask_var_t affinity;
  #endif;
  #ifdef CONFIG_GENERIC_IRQ_EFFECTIVE_AFF_MASK;
    cpumask_var_t effective_affinity;
  #endif;
  #ifdef CONFIG_GENERIC_IRQ_IPI;
    unsigned int            ipi_offset;
  #endif;
 };

like yes, those #ifdefs are real and you cannot just pretend they aren't there, the struct literally changes shape depending on your config. main character energy fr fr. ✨


πŸ’œ Members πŸ’œ

  • state_use_accessors β€” status information for irq chip functions. do NOT touch it directly, use the accessor functions to deal with it, ok? it's literally in the name bestie πŸ’…
  • node β€” node index, useful for balancing βš–οΈ
  • handler_data β€” per-IRQ data for the irq_chip methods
  • msi_desc β€” MSI descriptor
  • affinity β€” IRQ affinity on SMP. and here's the cute part: if this is an IPI related irq, then this is the mask of the CPUs to which an IPI can be sent πŸ“¨
  • effective_affinity β€” the effective IRQ affinity on SMP, because some irq chips do not allow multi CPU destinations. it's a subset of affinity. iykyk πŸ¦‹
  • ipi_offset β€” offset of first IPI target cpu in affinity. optional 😌

πŸ”₯ SEE ALSO πŸ”₯

  • Kernel file ./include/linux/irq.h β€” that's the home base, go read it
  • struct irq_data(9)
  • struct irq_chip(9)
  • struct irq_chip_regs(9)
  • struct irq_chip_type(9)
  • struct irq_chip_generic(9)
  • enum irq_gc_flags(9)
  • struct irq_domain_chip_generic_info(9)

like, the whole friend group honestly πŸ‘‘πŸ’–


okay that's the whole page, go slay your irq game 🧚 and remember: this icon was brought to you by ./include/linux, dated October 2026. periodt. πŸ’€βœ¨

πŸ“¦ where this page comes from