分类: LINUX
2008-09-07 16:08:03
Irq 分析
in the /kernel/irq/manage.c 中
一
int request_irq(unsigned int irq, irq_handler_t handler,
unsigned long irqflags, const char *devname, void *dev_id) {
}
*request_irq - allocate an interrupt line
* @irq: Interrupt line to allocate
* @handler: Function to be called when the IRQ occurs
* @irqflags: Interrupt type flags
* @devname: An ascii name for the claiming device
@dev_id: A cookie passed back to the handler function
This call allocates interrupt resources and enables the interrupt line and IRQ handling .
二
void free_irq(unsigned int irq, void *dev_id)
{
}
free_irq - free an interrupt
* @irq: Interrupt line to free
* @dev_id: Device identity to free
Remove an interrupt handler . The handler is removed an if the interrupt line is no longer in use by any driver int is disabled.
三
int setup_irq(unsigned int irq, struct irqaction *new)
{
}
internal function to register an irqaction – typically used to allocate special interrupts that are part of the architecture
四
linux/arch/arm/kernel/irq.c
This file contains the code used by various IRQ handling routines: installing new handlers should be easier
linux/arch/arm/kernel/fiq.c
set_fiq_handler
set_fiq_regs
get_fiq_regs
release_fiq
enable_fiq