函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |