本文共 734 字,大约阅读时间需要 2 分钟。
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);}
转载地址:http://qdnmi.baihongyu.com/