Android 4.2 Shutdown procedure

The shutdown procedure within Linux (based on BSP v13.05):
        1.     Android call __reboot( LINUX_REBOOT_MAGIC1,
                                                            LINUX_REBOOT_MAGIC2,
                                                            mode,
                                                            NULL);

              /bionic/libc/unistd/reboot.c
                 to pass parameters and target mode to Linux.
                 
        2.    Linux receivs parameters and mode(cmd) in
                /kernel/kernel/sys.c
                SYSCALL_DEFINE4(reboot,
                                                int, magic1,
                                                int, magic2,
                                                unsigned int, cmd, //cmd is the mode in Android
                                                void __user *, arg)

                                                
                if the cmd is LINUX_REBOOT_CMD_POWER_OFF, call:
                
        3.    kernel_power_off() in /kernel/kernel/sys.c
                this function will call below functions in a row:
                a.    kernel_shutdown_prepare()    ///kernel/kernel/sys.c
                        --> device_shutdown()            ///kernel/drivers/base/core.c
                    
                b.    machine_power_off()                ///arch/arm/kernel/process.c                                      
        
                                                                                    
                                
        To understand the complete shutdown procedure, reference:
        http//blog.csdn.net/hufik/article/details/8964674
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章