最終更新:2014-06-05 (木) 16:53:11 (3606d)  

kernel.org/doc/htmldocs/genericirq
Top / kernel.org / doc / htmldocs / genericirq

https://www.kernel.org/doc/htmldocs/genericirq

目次

1. Introduction

2. Rationale

3. Known Bugs And Assumptions

4. Abstraction layers

  • Interrupt control flow
  • High-level Driver API
  • High-level IRQ flow handlers
  • Default flow implementations
  • Default flow handler implementations
  • Quirks and optimizations
  • Delayed interrupt disable
  • Chip-level hardware encapsulation

5. __do_IRQ? entry point

6. Locking on SMP

7. Generic interrupt chip

  • irq_gc_mask_set_bit? — Mask chip via setting bit in mask register
  • irq_gc_mask_clr_bit? — Mask chip via clearing bit in mask register
  • irq_gc_ack_set_bit? — Ack pending interrupt via setting bit
  • irq_alloc_generic_chip? — Allocate a generic chip and initialize it
  • irq_alloc_domain_generic_chips? — Allocate generic chips for an irq domain
  • irq_get_domain_generic_chip? — Get a pointer to the generic chip of a hw_irq
  • irq_setup_generic_chip? — Setup a range of interrupts with a generic chip
  • irq_setup_alt_chip? — Switch to alternative chip
  • irq_remove_generic_chip? — Remove a chip

8. Structures

  • irq_data? — per irq and irq chip data passed down to chip functions
  • irq_chip? — hardware interrupt chip descriptor
  • irq_chip_regs? — register offsets for struct irq_gci
  • irq_chip_type? — Generic interrupt chip instance for a flow type
  • irq_chip_generic? — Generic irq chip data structure
  • irq_gc_flags? — Initialization flags for generic irq chips
  • irqaction? — per interrupt action descriptor
  • irq_set_affinity? — Set the irq affinity of a given irq
  • irq_force_affinity? — Force the irq affinity of a given irq
  • irq_affinity_notify? — context for notification of IRQ affinity changes

9. Public Functions Provided

  • synchronize_hardirq? — wait for pending hard IRQ handlers (on other CPUs)
  • synchronize_irq? — wait for pending IRQ handlers (on other CPUs)
  • irq_set_affinity_notifier? — control notification of IRQ affinity changes
  • disable_irq_nosync? — disable an irq without waiting
  • disable_irq — disable an irq and wait for completion
  • enable_irq? — enable handling of an irq
  • irq_set_irq_wake? — control irq power management wakeup
  • irq_wake_thread? — wake the irq thread for the action identified by dev_id
  • setup_irq? — setup an interrupt
  • remove_irq? — free an interrupt
  • free_irq? — free an interrupt allocated with request_irq
  • request_threaded_irq — allocate an interrupt line
  • request_any_context_irq? — allocate an interrupt line
  • irq_set_chip? — set the irq chip for an irq
  • irq_set_irq_type? — set the irq trigger type for an irq
  • irq_set_handler_data? — set irq handler data for an irq
  • irq_set_chip_data? — set irq chip data for an irq
  • handle_simple_irq? — Simple and software-decoded IRQs.
  • handle_level_irq? — Level type irq handler
  • handle_edge_irq? — edge type IRQ handler

10. Internal Functions Provided

  • irq_reserve_irqs? — mark irqs allocated
  • irq_get_next_irq? — get next allocated irq number
  • dynamic_irq_cleanup? — cleanup a dynamically allocated irq
  • handle_bad_irq? — handle spurious and unhandled irqs
  • irq_set_msi_desc_off? — set MSI descriptor data for an irq at offset
  • irq_set_msi_desc? — set MSI descriptor data for an irq
  • irq_disable? — Mark interrupt disabled
  • handle_fasteoi_irq? — irq handler for transparent controllers
  • handle_edge_eoi_irq? — edge eoi type IRQ handler
  • handle_percpu_irq? — Per CPU local irq handler
  • handle_percpu_devid_irq? — Per CPU local irq handler with per cpu dev ids
  • irq_cpu_online? — Invoke all irq_cpu_online functions.
  • irq_cpu_offline? — Invoke all irq_cpu_offline functions.

関連