atomic_notifier_call_chain和psy_changed(&pd->psy_nb, PSY_EVENT_PROP_CHANGED, pd->usb_psy);已经定义好,怎么在其他驱动文件调用psy_changed
时间: 2023-08-15 10:07:15 浏览: 91
如果你已经在一个驱动文件中定义了 `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` 分别是通知链回调函数的参数。
阅读全文