Linux中断机制内核API

__set_irq_handler

头文件

#include <linux/irq.h>

功能

此函数用于为结构体 irq_desc 的字段 handle_irq 重新赋值,handle_irq是其对应的中断处理函数,函数将参数 handle 赋值给字段 handle_irq 。如果传入的参数 handle 为 NULL,函数将用系统自定义的函数 handle_bad_irq()为字段 handle_irq赋值。其中结构体 irq_desc 对应的变量是数组 irq_desc 中下标为参数 irq 的元素。函数还可以完成对结构体 irq_desc 变量的 name 字段的赋值,赋值为参数 name 的值。

__tasklet_hi_schedule

头文件

#include <linux/interrupt.h>

功能

将参数 t 代表的软中断添加到中断描述符表中。

__tasklet_schedule

头文件

#include <linux/interrupt.h>

功能

此函数用于将一个 tasklet_struct 结构体代表的软中断添加到 tasklet_vec 队列的尾部,并等待获取CPU资源,被调度执行。tasklet_vec是一个保存软中断的链表,与链表 tasklet_hi_vec中保存的软中断相比,其保存的软中断优先级较低。

disable_irq

头文件

#include <linux/interrupt.h>

功能

disable_irq_nosync

头文件

#include <linux/interrupt.h>

功能

disable_irq_wake

头文件

#include <linux/interrupt.h>

功能

用于在实现过程中调用函数 set_irq_wake()

enable_irq

头文件

#include <linux/interrupt.h>

功能

enable_irq_wake

头文件

#include <linux/interrupt.h>

功能

free_irq

头文件

#include <linux/interrupt.h>

kstat_irqs_cpu

头文件

#include <linux/kernel_stat.h>

功能

remove_irq

头文件

#include <linux/irq.h>

功能

request_irq

头文件

#include <linux/interrupt.h>

功能

request_threaded_irq

set_irq_chained_handler

set_irq_chip

set_irq_chip_data

set_irq_data

set_irq_handler

set_irq_type

set_irq_wake

setup_irq

tasklet_disable

tasklet_disable_nosync

tasklet_enable

tasklet_hi_enable

tasklet_hi_schedule

tasklet_init

tasklet_kill

tasklet_schedule

tasklet_trylock

tasklet_unlock