中断API之set_handle_irq
来源:互联网 发布:微屏软件 排行 编辑:程序博客网 时间:2024/06/05 06:16
void __init set_handle_irq(void (*handle_irq)(struct pt_regs *)) 用于给全局变量handle_arch_irq 赋值。其使用的例程如下:void __init icu_init_irq(void){int irq;for (irq = 0; irq < 64; irq++) {icu_mask_irq(irq_get_irq_data(irq));irq_set_chip_and_handler(irq, &icu_irq_chip, handle_level_irq);}irq_set_default_host(icu_data[0].domain);set_handle_irq(mmp_handle_irq);}其源码分析如下:void __init set_handle_irq(void (*handle_irq)(struct pt_regs *)){if (handle_arch_irq)return;handle_arch_irq = handle_irq;}可见set_handle_irq 主要是给全局变量handle_arch_irq 赋值,且不能重复赋值,这里有判断,如果handle_arch_irq 不为null的话则set_handle_irq 就直接返回了.
阅读全文