函数逻辑报告 |
Source Code:arch\x86\kernel\nmi.c |
Create Date:2022-07-27 08:34:40 |
| Last Modify:2022-05-22 06:29:32 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:default_do_nmi
函数原型:static void default_do_nmi(struct pt_regs *regs)
返回类型:void
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct pt_regs * | regs |
| 312 | reason等于0 |
| 314 | bool b2b = false |
| 329 | 如果ip恒等于Operations for contexts that are safe from preemption/interrupts. These* operations verify that preemption is disabled.(last_nmi_rip)则b2b = true |
| 331 | 否则__this_cpu_write(swallow_nmi, false) |
| 334 | __this_cpu_write(last_nmi_rip, ip) |
| 336 | handled等于nmi_handle(NMI_LOCAL, regs) |
| 337 | __this_cpu_add(normal, handled) |
| 338 | 如果handled则 |
| 347 | 如果handled大于1则__this_cpu_write(swallow_nmi, true) |
| 349 | 返回 |
| 362 | cpu_relax() |
| 365 | reason等于get_nmi_reason() |
| 367 | 如果reason按位与NMI_REASON_MASK则 |
| 368 | 如果reason按位与NMI_REASON_SERR则pci_serr_error(reason, regs) |
| 370 | 否则如果reason按位与NMI_REASON_IOCHK则io_check_error(reason, regs) |
| 377 | reassert_nmi() |
| 379 | __this_cpu_add(external, 1) |
| 380 | raw_spin_unlock( & Prevent NMI reason port (0x61) being accessed simultaneously, can* only be used in NMI handler.) |
| 381 | 返回 |
| 383 | raw_spin_unlock( & Prevent NMI reason port (0x61) being accessed simultaneously, can* only be used in NMI handler.) |
| 415 | 如果b2b且Operations for contexts that are safe from preemption/interrupts. These* operations verify that preemption is disabled.(swallow_nmi)则__this_cpu_add(swallow, 1) |
| 417 | 否则unknown_nmi_error(reason, regs) |
| 名称 | 描述 |
|---|---|
| do_nmi |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |