reboot.c里的kernel_power_off 有如下代码: kernel_shutdown_prepare(SYSTEM_POWER_OFF); migrate_to_reboot__cpu(); syscore_shutdonw(); kmsg_dump(KMSSG__DUMP_POWEROFF); machiine_power_off(); 这里是如何调用到我之前说的那个.shutdown = smb5_shutdown的?
时间: 2023-09-02 09:15:03 浏览: 232
用shutdown命令设置关机
在`kernel/power/shutdown.c`文件中,`kernel_power_off()`函数会调用`kernel_shutdown_prepare()`函数,该函数会触发系统关机的准备工作,其中就包括了遍历所有设备驱动程序中的`.shutdown`函数。`kernel_shutdown_prepare()`函数会调用`device_shutdown()`函数,该函数会遍历所有已注册的设备驱动程序中的`.shutdown`函数,并将它们全部调用一遍。因此,当系统关机或重启时,内核会自动调用`smb5_shutdown`函数,这是由内核中的`device_shutdown()`函数触发的,而不是由具体的系统关机代码直接调用的。
阅读全文