int acpi_notifier_call_chain(struct acpi_device *dev, u32 type, u32 data)
这个函数用于用形参组建一个acpi_bus_event,并开始执行acpi_chain_head 这个通知链
其源码分析如下:
int acpi_notifier_call_chain(struct acpi_device *dev, u32 type, u32 data)
{
#定义一个用于acpi_chain_head中通知链执行的event
struct acpi_bus_event event;
#给event赋值
strcpy(event.device_class, dev->pnp.device_class);
strcpy(event.bus_id, dev->pnp.bus_id);
event.type = type;
event.data = data;
#用这个event作为参数执行acpi_chain_head 中所有的通知链
return (blocking_notifier_call_chain(&acpi_chain_head, 0, (void *)&event)
== NOTIFY_BAD) ? -EINVAL : 0;
}
用户可以通过下面的函数就自己添加到acpi_chain_head这个通知链中
int register_acpi_notifier(struct notifier_block *nb)
{
return blocking_notifier_chain_register(&acpi_chain_head, nb);
}
内核ACPI函数API之acpi_notifier_call_chain
最新推荐文章于 2023-11-08 10:31:28 发布