本文共 594 字,大约阅读时间需要 1 分钟。
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 就直接返回了.
转载地址:http://zrjmi.baihongyu.com/