STRUCT TI_SCI_RM_IRQ_OPS(9)

πŸ“¦ version 7.3.1, in nixpkgs unstable

πŸ’… struct ti_sci_rm_irq_ops(9) πŸ’…

okay bestie, this is a page from the Kernel API Manual and it's literally all about struct ti_sci_rm_irq_ops β€” the IRQ management operations struct. yes, the whole thing. let's get into it 🫢


✨ NAME ✨

struct ti_sci_rm_irq_ops β€” IRQ management operations

like... the operations. for managing IRQs. it's giving "the plug for your interrupts" energy πŸ’…


🌸 SYNOPSIS 🌸

here's the whole struct, no cap, every function pointer exactly as it lives:

struct ti_sci_rm_irq_ops {
    int (*set_irq)(const struct ti_sci_handle *handle, u16 src_id, u16
src_index, u16 dst_id, u16 dst_host_irq);
    int (*set_event_map)(const struct ti_sci_handle *handle, u16 src_id,
u16 src_index, u16 ia_id, u16 vint, u16 global_event, u8
vint_status_bit);
    int (*free_irq)(const struct ti_sci_handle *handle, u16 src_id, u16
src_index, u16 dst_id, u16 dst_host_irq);
    int (*free_event_map)(const struct ti_sci_handle *handle, u16
src_id, u16 src_index, u16 ia_id, u16 vint, u16 global_event, u8
vint_status_bit);
 };

four function pointers, all returning int, all taking const struct ti_sci_handle *handle first because obviously the handle is the main character ✨


πŸŽ€ Members πŸŽ€

okay so here's the cast, one by one:

  • set_irq β€” Set an IRQ route between the requested source and destination. that's it, that's the vibe: source ➑️ destination, route established πŸ”₯
  • set_event_map β€” Set an Event based peripheral irq to Interrupt Aggregator. event-based peripheral irq, meet the Interrupt Aggregator. you're gonna be mapped together πŸ’–
  • free_irq β€” Free an IRQ route between the requested source and destination. yes with the period, it's very final about it πŸ’€ the route? gone. released. bye bestie πŸ‘‹
  • free_event_map β€” Free an event based peripheral irq to Interrupt Aggregator. also with a period. also very final. the event map gets freed, no notes πŸ™ˆ

πŸ¦‹ SEE ALSO πŸ¦‹

if you're obsessed (and you should be), the kernel file lives at ./include/linux/soc/ti/ti_sci_protocol.h β€” go read it, iykyk πŸ“–

and here's the whole friend group of related structs, all in one big SEE ALSO group hug 🫢:

  • struct ti_sci_version_info(9)
  • struct ti_sci_core_ops(9)
  • struct ti_sci_dev_ops(9)
  • struct ti_sci_clk_ops(9)
  • struct ti_sci_pm_ops(9)
  • struct ti_sci_resource_desc(9)
  • struct ti_sci_rm_core_ops(9)
  • struct ti_sci_msg_rm_ring_cfg(9)
  • struct ti_sci_rm_ringacc_ops(9)
  • struct ti_sci_rm_psil_ops(9)
  • struct ti_sci_rm_udmap_ops(9)
  • struct ti_sci_proc_ops(9)
  • struct ti_sci_ops(9)
  • struct ti_sci_handle(9)
  • struct ti_sci_resource(9)

ngl the whole ti_sci family is a lot of structs and that's okay β€” read them all, slay, periodt πŸ‘‘

🌈 that's the page!! sourced from ./include/linux/soc/ti, dated October 2026, and honestly? iconic. go map some interrupts bestie, you got this πŸ’œπŸŽ€βœ¨

πŸ“¦ where this page comes from