psy->changed_work什么意思
时间: 2024-05-27 21:08:12 浏览: 157
`psy->changed_work` 这个语法看起来是一个指针变量 `psy` 中的成员变量 `changed_work`。但是,这个语法的具体含义要看上下文。一般来说,这种语法表示访问结构体或者类中的成员变量,`psy` 是一个结构体或者类的实例,`changed_work` 是一个成员变量的名称。所以,`psy->changed_work` 可能是指 `psy` 实例的 `changed_work` 成员变量被修改了。
相关问题
atomic_notifier_call_chain和psy_changed(&pd->psy_nb, PSY_EVENT_PROP_CHANGED, pd->usb_psy);已经定义好,怎么在其他驱动文件调用psy_changed
如果你已经在一个驱动文件中定义了 `atomic_notifier_call_chain` 和 `psy_changed` 函数,并且想要在其他驱动文件中调用 `psy_changed` 函数,可以按照以下步骤进行操作:
1. 在需要调用 `psy_changed` 函数的驱动文件中,包含定义了 `psy_changed` 函数的头文件。
```c
#include "path/to/psy_changed.h"
```
2. 在需要调用 `psy_changed` 函数的地方,调用函数并传递需要的参数。
```c
struct power_supply *psy = ...; // 设置需要传递的参数
psy_changed(&pd->psy_nb, PSY_EVENT_PROP_CHANGED, psy);
```
这样,在其他驱动文件中就可以调用 `psy_changed` 函数了。需要注意的是,如果 `psy_changed` 函数中依赖于其他函数或全局变量,也需要在当前驱动文件中包含相应的头文件或定义相应的变量。
另外,`atomic_notifier_call_chain` 函数是一个通用的函数,可以在任何驱动文件中使用,用于回调注册的通知链。如果你需要在其他驱动文件中回调通知链,可以使用类似以下的代码:
```c
struct notifier_block *nb = ...; // 设置需要回调的通知链
atomic_notifier_call_chain(¬ification_chain, event, data);
```
其中 `notification_chain` 是一个 `notifier_block` 类型的链表,存储了多个需要回调的通知链。`event` 和 `data` 分别是通知链回调函数的参数。
static int psy_changed(struct notifier_block *nb, unsigned long evt, void ptr) pd->psy_nb.notifier_call = psy_changed; ret = power_supply_reg_notifier(&pd->psy_nb); if (ret) goto del_inst; / *force read initial power_supply values */ psy_changed(&pd->psy_nb, PSY_EVENT_PROP_CHANGED, pd->usb_psy); atomic_notifier_call_chain(&power_supply_notifier, PSY_EVENT_PROP_CHANGED, psy); kobject_uevent(&psy->dev.kobj, KOBJ_CHANGE);代码之间的关系
这段代码中的关系如下:
1. 首先定义了一个名为psy_changed的函数,该函数会在电源供应设备的属性变化时被调用。
2. 在代码中,pd->psy_nb.notifier_call被设置为psy_changed函数,以便在电源供应设备的属性变化时被调用。
3. 接着调用power_supply_reg_notifier函数,将pd->psy_nb注册为电源供应设备的notifier。如果注册失败,则跳转到del_inst标签处。
4. 为了强制读取电源供应设备的初始值,调用psy_changed函数,并传递PSY_EVENT_PROP_CHANGED和pd->usb_psy作为参数。
5. 接下来,调用atomic_notifier_call_chain函数,该函数会依次调用power_supply_notifier链表中的所有notifier,并传递PSY_EVENT_PROP_CHANGED和psy作为参数。
6. 最后,调用kobject_uevent函数,该函数会向用户空间发送一个内核对象的事件通知,通知用户空间有关电源供应设备的属性发生了变化。
阅读全文
相关推荐
![-](https://img-home.csdnimg.cn/images/20210720083447.png)
![-](https://img-home.csdnimg.cn/images/20210720083447.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![-](https://img-home.csdnimg.cn/images/20241231045053.png)