1.el0_irq
SYM_CODE_START_LOCAL_NOALIGN(el0_irq)
kernel_entry 0
el0_irq_naked:
el0_interrupt_handler handle_arch_irq
b ret_to_user
SYM_CODE_END(el0_irq)
kernel_entry 的代码解读已经在下面链接里详细介绍,后面传入的参数代表异常等级ARMv8 异常处理之保存现场kernel_entry详解_sym_code_start_local_noalign-优快云博客
2.el0_interrupt_handler
.macro el0_interrupt_handler, handler:req
user_exit_irqoff
enable_da_f //使能daf允许这些类型的异常被触发。
tbz x22, #55, 1f //根据 x22 寄存器的第 55 位的值来判断是否跳转到标号 1f 处
bl do_el0_irq_bp_hardening //和breakpoint相关,暂时不关注
1:
irq_handler \handler
.