函数逻辑报告 |
Source Code:kernel\irq\manage.c |
Create Date:2022-07-27 11:09:57 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:Internal function to unregister an irqaction - used to free* regular and special interrupts that are part of the architecture.
函数原型:static struct irqaction *__free_irq(struct irq_desc *desc, void *dev_id)
返回类型:struct irqaction
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct irq_desc * | desc | |
| void * | dev_id |
| 1678 | WARN(in_interrupt(), "Trying to free IRQ %d from IRQ context!\n", irq) |
| 1680 | mutex_lock( & request_mutex) |
| 1681 | 总线上锁 |
| 1682 | raw_spin_lock_irqsave( & 自旋锁, flags) |
| 1688 | action_ptr等于中断服务例程链表 |
| 1689 | 循环 |
| 1690 | action等于action_ptr |
| 1692 | 如果非action则 |
| 1702 | action_ptr等于下一个共享中断 |
| 1706 | action_ptr等于下一个共享中断 |
| 1708 | irq_pm_remove_action(desc, action) |
| 1711 | 如果非中断服务例程链表则 |
| 1714 | irq_shutdown(desc) |
| 1723 | raw_spin_unlock_irqrestore( & 自旋锁, flags) |
| 1738 | 慢总线解锁 |
| 1740 | unregister_handler_proc(irq, action) |
| 1747 | __synchronize_hardirq(desc, true) |
| 1771 | 如果中断线程则 |
| 1781 | 如果非中断服务例程链表则 |
| 1786 | 总线上锁 |
| 1791 | raw_spin_lock_irqsave( & 自旋锁, flags) |
| 1792 | irq_domain_deactivate_irq( & irq_data) |
| 1793 | raw_spin_unlock_irqrestore( & 自旋锁, flags) |
| 1795 | irq_release_resources(desc) |
| 1796 | 慢总线解锁 |
| 1797 | irq_remove_timings(desc) |
| 1803 | module_put(owner) |
| 1804 | 释放内存 |
| 1805 | 返回:action |
| 名称 | 描述 |
|---|---|
| remove_irq | move_irq - free an interrupt*@irq: Interrupt line to free*@act: irqaction for the interrupt* Used to remove interrupts statically setup by the early boot process. |
| free_irq | _irq - free an interrupt allocated with request_irq*@irq: Interrupt line to free*@dev_id: Device identity to free* Remove an interrupt handler |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |