struct softirq_action
时间: 2023-09-06 17:08:20 浏览: 105
这是一个用于 Linux 内核的数据结构,表示软中断处理程序的动作。软中断是一种异步的事件处理机制,当某些特定事件发生时,内核会生成一个对应的软中断请求,这个请求会被放到一个队列中,等待相应的软中断处理程序来处理。
softirq_action 结构体定义如下:
```
struct softirq_action {
void (*action)(struct softirq_action *);
};
```
其中,`action` 是一个函数指针,指向实际的软中断处理程序。当该软中断被触发时,内核会调用该函数指针所指向的处理程序来处理该事件。
相关问题
softirq_action 结构体
softirq_action 结构体是用来描述一个软中断处理程序的数据结构,它定义在 include/linux/interrupt.h 头文件中。softirq 是一种特殊的中断,它是由内核自己触发的,用于处理一些与硬件无关的操作,例如网络数据包的处理、定时器的处理等。
softirq_action 结构体的定义如下:
```
struct softirq_action {
void (*action)(struct softirq_action *);
};
```
其中,action 是一个函数指针,指向软中断处理程序的处理函数。当该软中断被触发时,内核会调用 action 指向的函数来处理软中断。
struct extcon_dev
该结构体是 Linux 内核中用于表示 USB 外部控制器设备的数据结构。它包含了设备的基本信息、设备的 I/O 请求队列、设备的状态等信息。
以下是该结构体的定义:
```
struct extcon_dev {
struct device dev;
struct list_head list;
struct extcon_devinfo *edev_info;
struct extcon_dev_notifier *notifier;
struct mutex lock;
spinlock_t wq_lock;
wait_queue_head_t wq;
unsigned long state;
struct list_head events;
struct notifier_block nb;
struct kobject *kobj;
struct attribute_group **attr_groups;
struct work_struct work;
struct workqueue_struct *wq_io;
struct extcon_devmon *monitor;
int (*extcon_set_state)(struct extcon_dev *edev, unsigned int id, bool state);
int (*extcon_get_state)(struct extcon_dev *edev, unsigned int id);
void *driver_data;
};
```
阅读全文