Go to the source code of this file.
|
| static irq_t * | irq_get (irq_virt_t virt) |
| |
| static uint64_t | irq_update (irq_t *irq) |
| |
| static irq_domain_t * | irq_domain_lookup (irq_phys_t phys) |
| |
| static uint64_t | irq_domain_rebind_orphaned_irqs (irq_domain_t *newDomain) |
| |
| void | irq_init (void) |
| | Initialize the IRQ subsystem.
|
| |
| void | irq_dispatch (interrupt_frame_t *frame, cpu_t *self) |
| | Dispatch an IRQ.
|
| |
| uint64_t | irq_virt_alloc (irq_virt_t *out, irq_phys_t phys, irq_flags_t flags, cpu_t *cpu) |
| | Allocate a virtual IRQ mapped to the given physical IRQ.
|
| |
| void | irq_virt_free (irq_virt_t virt) |
| | Free a previously allocated virtual IRQ.
|
| |
| uint64_t | irq_virt_set_affinity (irq_virt_t virt, cpu_t *cpu) |
| | Change the CPU responsible for an IRQ.
|
| |
| uint64_t | irq_chip_register (irq_chip_t *chip, irq_phys_t start, irq_phys_t end, void *private) |
| | Register an IRQ chip for a range of physical IRQs.
|
| |
| void | irq_chip_unregister (irq_chip_t *chip, irq_phys_t start, irq_phys_t end) |
| | Unregister all instances of the given IRQ chip within the specified range.
|
| |
| uint64_t | irq_chip_amount (void) |
| | Get the number of registered IRQ chips.
|
| |
| uint64_t | irq_handler_register (irq_virt_t virt, irq_func_t func, void *private) |
| | Register an IRQ handler for a virtual IRQ.
|
| |
| void | irq_handler_unregister (irq_func_t func, irq_virt_t virt) |
| | Unregister an IRQ handler.
|
| |
◆ irq_get()
Definition at line 23 of file irq.c.
◆ irq_update()
Definition at line 33 of file irq.c.
◆ irq_domain_lookup()
Definition at line 50 of file irq.c.
◆ irq_domain_rebind_orphaned_irqs()
Definition at line 64 of file irq.c.
◆ irqs
Definition at line 17 of file irq.c.
◆ domains
- Todo:
- Optimize domain lookup?
Definition at line 20 of file irq.c.
◆ domainsLock
Definition at line 21 of file irq.c.